설명선

콜아웃 광고 확장 만들기

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;     }   } }