Display

  • Learn how to add a website placement to an existing ad group using the addPlacementToAdGroup function, specifying the ad group name, URL, and an optional CPC bid.

  • Discover how to retrieve all topic targeting for a specific ad group within a campaign using the getAllTopics function.

  • Understand how to log performance statistics for all audience targeting within an ad group, including clicks, impressions, and cost, using the logAudienceStats function.

Add a placement to an existing ad group

function addPlacementToAdGroup(adGroupName, url, cpc) {  const adGroups = AdsApp.adGroups()  .withCondition(`ad_group.name = '${adGroupName}'`)  .get();  if (!adGroups.hasNext()) {  throw new Error(`No ad group with the name '${adGroupName}' was found.`);  }  const adGroup = adGroups.next();  if (adGroups.totalNumEntities() > 1) {  console.warn(`Found ${adGroups.totalNumEntities()} ad groups with the ` +  `name '${adGroupName}'. Adding placement to the ad group in campaign ` +  `'${adGroup.getCampaign().getName()}'.`);  }  // Other display criteria can be built in a similar manner using the  // corresponding builder method in the AdsApp.CampaignDisplay or  // AdsApp.AdGroupDisplay class.  const placementBuilder = adGroup.display()  .newPlacementBuilder()  .withUrl(url); // required  if (cpc) {  placementBuilder.withCpc(cpc); // optional  }  const operation = placementBuilder.build();  if (operation.getStatus() == 'SUCCESS') {  const placement = operation.getResult();  console.log(`Placement with id = ${placement.getId()} and url = ${placement.getUrl()} was created.`);  } else {  console.warn(`Failed to create placement. Errors = ${operation.getErrors().join(', ')}`);  } }

Retrieve all topics in an existing ad group

function getAllTopics(campaignName, adGroupName) {  return AdsApp.display()  .topics()  .withCondition(`campaign.name = '${campaignName}'`)  .withCondition(`ad_group.name = '${adGroupName}'`); }

Log stats for all audiences in an existing ad group

function logAudienceStats(campaignName, adGroupName, dateRange = 'LAST_MONTH') {  // Other display criteria can be retrieved in a similar manner using  // the corresponding selector methods in the AdsApp.Display,  // AdsApp.CampaignDisplay or AdsApp.AdGroupDisplay class.  const audienceIterator = AdsApp.display()  .audiences()  .withCondition(`campaign.name = '${campaignName}'`)  .withCondition(`ad_group.name = '${adGroupName}'`)  .get();  console.log('ID, Audience ID, Clicks, Impressions, Cost');  for (const audience of audienceIterator) {  const stats = audience.getStatsFor(dateRange);  // User List IDs (List IDs) are available on the details page of  // a User List (found under the Audiences section of the Shared  // Library)  console.log(`${audience.getId().toFixed(0)}, ${audience.getAudienceId()}, `  + `${stats.getClicks()}, ${stats.getImpressions()}, ${stats.getCost()}`);  } }