Создайте уточнение
function createCallout() { // For full details on creating a new callout extension, see: // https://developers.google.com/google-ads/scripts/docs/reference/adsapp/adsapp_calloutbuilder const newCallout = AdsApp.extensions().newCalloutBuilder() // Replace the values below with your text, and mobile preferred .withText('Free Shipping') // required .withMobilePreferred(true) // optional .build() .getResult(); // Add callout to a campaign const campaignIterator = AdsApp.campaigns() .withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"') .get(); if (campaignIterator.hasNext()) { const campaign = campaignIterator.next(); campaign.addCallout(newCallout); } // Add callout to an ad group const adGroupIterator = AdsApp.adGroups() .withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"') .withCondition('ad_group.name = "INSERT_AD_GROUP_NAME_HERE"') .get(); if (adGroupIterator.hasNext()) { const adGroup = adGroupIterator.next(); adGroup.addCallout(newCallout); } // Add callout to an account const account = AdsApp.currentAccount(); account.addCallout(newCallout); }
Записывать сведения об уточнениях для кампании
function logCalloutDetails() { // Get a campaign. const campaignIterator = AdsApp.campaigns() .withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"') .get(); if (!campaignIterator.hasNext()) { throw new Error('Campaign not found.'); } const campaign = campaignIterator.next(); // Retrieve the campaign's callouts. Retrieving an ad group's and // account's calloutss is similar. const calloutIterator = campaign.extensions().callouts().get(); for (const callout of calloutIterator) { // You can also request reports for pre-defined date ranges. See // https://developers.google.com/adwords/api/docs/guides/awql, // DateRangeLiteral section for possible values. const stats = callout.getStatsFor('LAST_MONTH'); console.log(`Callout text : ${ callout.getText() }`); console.log(`mobile preferred : ${ callout.isMobilePreferred() }`); console.log(`clicks : ${ stats.getClicks() }`); console.log(`impressions : ${ stats.getImpressions() }`); console.log('======='); } console.log(`${calloutIterator.totalNumEntities()} callouts in the campaign`); }
Настройка расписания уточнений в кампании
function setCalloutSchedule() { // Get a campaign. const campaignIterator = AdsApp.campaigns() .withCondition('campaign.name = "INSERT_CAMPAIGN_NAME_HERE"') .get(); if (!campaignIterator.hasNext()) { throw new Error('Campaign not found.'); } const campaign = campaignIterator.next(); // Retrieve the campaign's callouts. Retrieving an ad group's and // account's saitelinks is similar. const calloutIterator = campaign.extensions().callouts().get(); for (const callout of calloutIterator) { if (callout.getText() == 'Free Shipping') { // Set callout extension schedule to run only on Mondays and Tuesdays, // 9 AM to 6 PM. You can follow a similar approach to set schedules for // other ad extension types. const monday = { dayOfWeek: 'MONDAY', startHour: 9, startMinute: 0, endHour: 18, endMinute: 0 }; const tuesday = { dayOfWeek: 'TUESDAY', startHour: 9, startMinute: 0, endHour: 18, endMinute: 0 }; callout.setSchedules([monday, tuesday]); return; } } }