广告类型

Google Ads 支持各种类型的广告,例如文字广告、图片广告和移动广告。本指南介绍了如何使用 Google Ads 脚本创建广告、检索广告和生成广告报告。 有关 Google Ads 支持的所有广告类型的概述,请参阅 API 指南

创建

脚本可以使用 AdGroup 实例上的 newAd() 方法创建广告。此方法会返回一个 AdBuilderSpace,用于为支持的广告类型创建 builder

以下代码段演示了如何创建自适应搜索广告:

let adOperation = adGroup.newAd().responsiveSearchAdBuilder()
    .withHeadlines(["Headline 1", "Headline 2", "Headline 3"])
    .withDescriptions(["Description 1", "Description 2"])
    .withFinalUrl("http://www.example.com")
    .withPath1("path1")
    .withPath2("path2")
    .build();

检查

与所有广告类型相关联的某些信息可立即通过 Ad 获取,例如广告的 ID 和审批状态。此外,您还可以暂停、启用或移除任何广告。

如需访问特定于广告类型的字段(例如自适应搜索广告的标题),请使用 asType() 方法创建 AdViewSpace。这可提供对 Ad 的扩展版本的访问权限,该版本会公开特定于类型的方法。

以下代码段可获取每个自适应搜索广告的标题:

const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
  let ad = iterator.next();
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
}

请注意,条件 Type = RESPONSIVE_SEARCH_AD 可确保迭代器中的每个广告都是自适应搜索广告。尝试查看类型不正确的广告会导致错误,从而停止脚本的执行,因此仅当广告的类型已知时,查看特定于类型的字段才非常重要。

以下代码段展示了如何使用 Ad.isType() 方法来确定广告是否属于正确的类型:

if (ad.isType().responsiveSearchAd()) {
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
  let descriptions = responsiveSearchAd.getDescriptions();
}

虽然您无法使用标准选择器按广告标题文字过滤广告,但可以在检索广告后在 JavaScript 中过滤:

const iterator = AdsApp.ads().withCondition("Type = RESPONSIVE_SEARCH_AD").get();
while (iterator.hasNext()) {
  let ad = iterator.next();
  let responsiveSearchAd = ad.asType().responsiveSearchAd();
  let headlines = responsiveSearchAd.getHeadlines();
  // Filter for ads containing a specific headline.
  if (headlines.some(h => h.getText().includes("Special Offer"))) {
    console.log(`Found ad with ID ${ad.getId()}`);
  }
}

报告

除了常规统计信息外,您还可以使用 ad_group_ad 视图查询广告字段。例如,您可以使用 ad_group_ad.ad.type 按广告类型进行过滤。 以下代码段展示了如何检索所有自适应搜索广告的统计信息:

const results = AdsApp.search(
  "SELECT ad_group_ad.ad_group.id, " +
          "ad_group_ad.ad.id, " +
          "metrics.clicks, " +
          "metrics.impressions, " +
          "metrics.cost " +
  "FROM ad_group_ad " +
  "WHERE ad_group_ad.ad.type = 'RESPONSIVE_SEARCH_AD' " +
    "AND segments.date DURING LAST_7_DAYS");

while (results.hasNext()) {
  let row = results.next();
  let adId = row.adGroupAd.ad.id;
  let clicks = row.metrics.clicks;
  ...
}

按资源内容过滤

如需大规模按自适应搜索广告的标题或说明内容过滤这些广告,请使用 ad_group_ad_asset_view 资源。此视图会将每个标题和广告内容描述视为单独的一行,以便您按素材资源的文字进行过滤。

以下代码段用于检索包含特定标题的所有自适应搜索广告的统计信息:

const results = AdsApp.search(
  "SELECT ad_group_ad.ad.id, " +
          "asset.text_asset.text, " +
          "metrics.clicks, " +
          "metrics.impressions " +
  "FROM ad_group_ad_asset_view " +
  "WHERE asset.text_asset.text LIKE '%Special Offer%' " +
    "AND ad_group_ad_asset_view.field_type = 'HEADLINE'");

while (results.hasNext()) {
  let row = results.next();
  let adId = row.adGroupAd.ad.id;
  let text = row.asset.textAsset.text;
  let clicks = row.metrics.clicks;
  console.log(`Ad ID ${adId} with headline "${text}" had ${clicks} clicks.`);
}

如需详细了解如何在脚本中生成报告,请参阅报告指南