Google Ads 支持多种广告类型,例如文字广告、图片广告和移动广告。本指南介绍了如何使用 Google Ads 脚本创建、检索广告以及生成广告报告。 如需大致了解 Google Ads 支持的所有广告类型,请参阅 API 指南。
创建
脚本可以使用
newAd()
方法创建广告,该方法位于
AdGroup
实例上。此方法会返回一个
AdBuilderSpace
,用于为
受支持的广告类型创建构建器。
以下代码段演示了如何创建自适应搜索广告:
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.`);
}
如需详细了解如何在脚本中生成报告,请参阅报告指南。