“Ad customizer” is a feature that will automatically feed designated data such as a text string or a fixed value into the title or description of the ad.
It is also possible to use the countdown function to display a countdown of the time until the end of the sale.
For more information about the Ad Customizer, please refer to the following help pages.
・Ad customizer
・What is Responsive Ads for Search
The Search Ads API uses the following Service to use the Ad Customizer.
You can get/add/remove customizer attributes by using this.
When adding configuration information between account/campaign/ad group/keywords and customizer attributes, please add the customizer attributes first.
You can get/add/remove configuration information between account and customizer attributes by using this.
You can get/add/remove configuration information between campaign and customizer attributes by using this.
You can get/add/remove configuration information between ad groups and customizer attributes by using this.
You can get/add/remove configuration information between keywords and customizer attributes by using this.
You can get/add/remove information related to advertisements that insert registered data (ads with functions for data insertion) by using this.
As part of their promotional campaign, Company A is plannning to create the following dataset with the Search Ads API.
| Account Name (AccountId) |
Campaign Name (CampaignId) |
Ad Group Name (AdGroupId) |
Keyword (CriterionId) |
Product (TEXT) |
Lowest Price (PRICE) |
Number of Models (NUMBER) |
Discount Rate (PERCENT) |
|---|---|---|---|---|---|---|---|
| Test 150 (111111) |
Newest Models | $100 | 50 | 10% | |||
| Test 150 (111111) |
Electronics Sale (222222) |
Affordable Electronics | $80 | 100 | 10% | ||
| Test 150 (111111) |
Electronics Sale (222222) |
TVs (333333) |
Popular TVs | $500 | 30 | 20% | |
| Test 150 (111111) |
Electronics Sale (222222) |
TVs (333333) |
4K (444444) |
4K TVs | $800 | 8 | 30% |
*For each account, up to 40 attribute names can be registered.
*In the case where different attribute values are registered with the same attribute name at the account/campaign/ad group/keyword level, the settings of the lower-level entity take priority during delivery.
Add customizer attributes with CustomizerAttributeService:add.
{
"accountId": 111111,
"operand": [
{
"name": "Product",
"type": "TEXT"
},
{
"name": "LowestPrice",
"type": "PRICE"
},
{
"name": "NumberOfModels",
"type": "NUMBER"
},
{
"name": "DiscountRate",
"type": "PERCENT"
}
]
}
{
"errors": null,
"rid": "23eed375ce1c2d467d88ecaebc22b68c",
"rval": {
"values": [
{
"errors": null,
"customizerAttribute": {
"accountId": 111111,
"customizerAttributeId": 555555,
"name": "Product",
"type": "TEXT"
},
"operationSucceeded": true
},
{
"errors": null,
"customizerAttribute": {
"accountId": 111111,
"customizerAttributeId": 666666,
"name": "LowestPrice",
"type": "PRICE"
},
"operationSucceeded": true
},
{
"errors": null,
"customizerAttribute": {
"accountId": 111111,
"customizerAttributeId": 777777,
"name": "NumberOfModels",
"type": "NUMBER"
},
"operationSucceeded": true
},
{
"errors": null,
"customizerAttribute": {
"accountId": 111111,
"customizerAttributeId": 888888,
"name": "DiscountRate",
"type": "PERCENT"
},
"operationSucceeded": true
}
]
}
}
Add configuration information between an account and Customizer attributes with AccountCustomizerService:add.
{
"accountId": 111111,
"operand": [
{
"customizerAttributeId": 555555,
"value": "Newest Models"
},
{
"customizerAttributeId": 666666,
"value": "$100"
},
{
"customizerAttributeId": 777777,
"value": "50"
},
{
"customizerAttributeId": 888888,
"value": "10%"
}
]
}
{
"errors": null,
"rid": "a10c6dd1f72911dc3a1cf2c3ac525790",
"rval": {
"values": [
{
"errors": null,
"accountCustomizer": {
"accountId": 111111,
"customizerAttributeId": 555555,
"value": "Newest Models",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"accountCustomizer": {
"accountId": 111111,
"customizerAttributeId": 666666,
"value": "$100",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"accountCustomizer": {
"accountId": 111111,
"customizerAttributeId": 777777,
"value": "50",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"accountCustomizer": {
"accountId": 111111,
"customizerAttributeId": 888888,
"value": "10%",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
}
]
}
}
Add configuration information between a campaign and Customizer attributes with CampaignCustomizerService:add.
{
"accountId": 111111,
"operand": [
{
"campaignId": 222222,
"customizerAttributeId": 555555,
"value": "Affordable Electronics"
},
{
"campaignId": 222222,
"customizerAttributeId": 666666,
"value": "$80"
},
{
"campaignId": 222222,
"customizerAttributeId": 777777,
"value": "100"
},
{
"campaignId": 222222,
"customizerAttributeId": 888888,
"value": "10%"
}
]
}
{
"errors": null,
"rid": "ffde17246767f62feff67e26de6c8a79",
"rval": {
"values": [
{
"errors": null,
"campaignCustomizer": {
"accountId": 111111,
"campaignId": 222222,
"customizerAttributeId": 555555,
"value": "Affordable Electronics",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"campaignCustomizer": {
"accountId": 111111,
"campaignId": 222222,
"customizerAttributeId": 666666,
"value": "$80",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"campaignCustomizer": {
"accountId": 111111,
"campaignId": 222222,
"customizerAttributeId": 777777,
"value": "100",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"campaignCustomizer": {
"accountId": 111111,
"campaignId": 222222,
"customizerAttributeId": 888888,
"value": "10%",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
}
]
}
}
Add configuration information between an ad group and Customizer attributes with AdGroupCustomizerService:add.
{
"accountId": 111111,
"operand": [
{
"adGroupId": 333333,
"customizerAttributeId": 555555,
"value": "Popular TVs"
},
{
"adGroupId": 333333,
"customizerAttributeId": 666666,
"value": "$500"
},
{
"adGroupId": 333333,
"customizerAttributeId": 777777,
"value": "30"
},
{
"adGroupId": 333333,
"customizerAttributeId": 888888,
"value": "20%"
}
]
}
{
"errors": null,
"rid": "07651bf1409e00247ad811ffd1004bb3",
"rval": {
"values": [
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"adGroupId": 333333,
"customizerAttributeId": 555555,
"value": "Popular TVs",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"adGroupId": 333333,
"customizerAttributeId": 666666,
"value": "$500",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"adGroupId": 333333,
"customizerAttributeId": 777777,
"value": "30",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"adGroupId": 333333,
"customizerAttributeId": 888888,
"value": "20%",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
}
]
}
}
Add configuration information between a keyword and Customizer attributes with AdGroupCriterionCustomizerService:add.
{
"accountId": 111111,
"operand": [
{
"criterionId": 444444,
"customizerAttributeId": 555555,
"value": "4K TVs"
},
{
"criterionId": 444444,
"customizerAttributeId": 666666,
"value": "$800"
},
{
"criterionId": 444444,
"customizerAttributeId": 777777,
"value": "8"
},
{
"criterionId": 444444,
"customizerAttributeId": 888888,
"value": "30%"
}
]
}
{
"errors": null,
"rid": "080fded16a1a522fce1c4432dc3b13b7",
"rval": {
"values": [
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"criterionId": 444444,
"customizerAttributeId": 555555,
"value": "4K TVs",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"criterionId": 444444,
"customizerAttributeId": 666666,
"value": "$800",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"criterionId": 444444,
"customizerAttributeId": 777777,
"value": "8",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
},
{
"errors": null,
"adGroupCustomizer": {
"accountId": 111111,
"criterionId": 444444,
"customizerAttributeId": 888888,
"value": "30%",
"approvalStatus": null,
"disapprovalReasonCodes": null
},
"operationSucceeded": true
}
]
}
}
Add an ad that inserts registered data (using a function for data insertion) with AdGroupAdService:add.
By using the countdown function, you can display the remaining time until the end of a sale or campaign within the ad. The asset containing the countdown will become inactive once the countdown is finished.
Therefore, assets with the countdown function should not be counted towards the minimum number of Headlines and Descriptions. However, they should still count towards the maximum number. For example, while a minimum of two Descriptions are required, and a maximum of four Descriptions are allowed, this includes both Descriptions with the countdown function (minimum two) and Descriptions without any countdown (maximum four).
For more details on the countdown function for Responsive Search Ads, please refer to the following help documentation.
・COUNTDOWN function (for Responsive Ads for Search)
{
"accountId": 111111,
"operand": [
{
"ad": {
"adType": "RESPONSIVE_SEARCH_AD",
"finalUrl": "http://www.example.jp",
"responsiveSearchAd": {
"headlines": [
{
"text": "{CUSTOMIZER.Product:Default Value} is a great deal",
"pinnedField": "HEADLINE1"
},
{
"text": "{CUSTOMIZER.LowestPrice:Default Value} at a reasonable price",
"pinnedField": "HEADLINE2"
},
{
"text": "Now {CUSTOMIZER.DisctountRate:Default Value} Off",
"pinnedField": "HEADLINE3"
},
{
"text": "Only {COUNTDOWN(2022-06-01 00:00:00,30)} left",
"pinnedField": "UNSPECIFIED"
}
],
"descriptions": [
{
"text": "For a limited time only, get the latest model of {CUSTOMIZER.Product:Default Value} for just {CUSTOMIZER.LowestPrice:Default Value}!",
"pinnedField": "DESCRIPTION1"
},
{
"text": "All models of {CUSTOMIZER.NumberOfModels:Default Value} are {CUSTOMIZER.DiscountRate:Default Value} off or more",
"pinnedField": "DESCRIPTION2"
},
{
"text": "Only {COUNTDOWN(2022-06-01 00:00:00,30)} left, so don't miss out!",
"pinnedField": "UNSPECIFIED"
}
]
}
},
"adGroupId": 333333,
"adName": "Auto Ads",
"campaignId": 222222,
"userStatus": "ACTIVE"
}
]
}
{
"errors": null,
"rid": "50ec2df1d0bc693de9289fef50bd9045",
"rval": {
"values": [
{
"adGroupAd": {
"accountId": 111111,
"ad": {
"adType": "RESPONSIVE_SEARCH_AD",
"smartphoneFinalUrl": null,
"finalUrl": "http://www.example.jp",
"appAd": null,
"customParameters": null,
"description1": null,
"devicePreference": null,
"displayUrl": "www.example.jp",
"extendedTextAd": null,
"responsiveSearchAd": {
"headlines": [
{
"text": "{CUSTOMIZER.Product:Default Value} is a great deal",
"pinnedField": "HEADLINE1",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
{
"text": "{CUSTOMIZER.LowestPrice:Default Value} at a reasonable price",
"pinnedField": "HEADLINE2",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
{
"text": "Now {CUSTOMIZER.DisctountRate:Default Value} Off",
"pinnedField": "HEADLINE3",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
{
"text": "Only {COUNTDOWN(2022-06-01 00:00:00,30)} left",
"pinnedField": "UNSPECIFIED",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
}
],
"descriptions": [
{
"text": "For a limited time only, get the latest model of {CUSTOMIZER.Product:Default Value} for just {CUSTOMIZER.LowestPrice:Default Value}!",
"pinnedField": "DESCRIPTION1",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
{
"text": "All models of {CUSTOMIZER.NumberOfModels:Default Value} are {CUSTOMIZER.DiscountRate:Default Value} off or more",
"pinnedField": "DESCRIPTION2",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
},
{
"text": "Only {COUNTDOWN(2022-06-01 00:00:00,30)} left, so don't miss out!",
"pinnedField": "UNSPECIFIED",
"approvalStatus": "REVIEW",
"disapprovalReasonCodes": null
}
],
"path1": null,
"path2": null
},
"headline1": null,
"textAd2": null,
"dynamicSearchLinkedAd": null,
"trackingUrl": null,
"url": null
},
"adGroupId": 333333,
"adGroupName": "TVs",
"adGroupTrackId": 134525846777,
"adId": 999999,
"adName": "Auto Ads",
"adTrackId": 0,
"approvalStatus": "REVIEW",
"campaignId": 222222,
"campaignName": "Electronics Sale",
"campaignTrackId": 17246010137,
"disapprovalReasonCodes": null,
"feedId": null,
"invalidedTrademarks": null,
"labels": null,
"trademarkStatus": "NO_RESTRICTION",
"userStatus": "ACTIVE",
"createdDate": "20220513"
},
"errors": null,
"operationSucceeded": true
}
]
}
}