설명선
    
    
      
    
    
      
      컬렉션을 사용해 정리하기
    
    
      
      내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
    
  
    
  
      
    
  
  
  
  
  
    
    
    
  
  
    
    
    
콜아웃 광고 확장 만들기
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;
    }
  }
}
  
  
  
  
    
  
 
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
  최종 업데이트: 2025-08-21(UTC)
  
  
  
    
      [[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-21(UTC)"],[],[]]