广告附加信息

Google Ads 脚本支持以下广告附加信息:

如需详细了解广告附加信息,请访问帮助中心

借助 Google Ads 脚本,您可以访问账号中受支持的广告附加信息。 例如,以下代码段会访问站内链接:

const sitelinkIterator = AdsApp.extensions().sitelinks().get();
for (const sitelink of sitelinkIterator) {
  // Do something with each sitelink
}

您可以采用类似的方式检索其他受支持的广告附加信息,只需使用它们各自的迭代器即可。

恣意创作

借助 Google Ads 脚本,您可以制作受支持的广告附加信息。例如,以下代码段使用电话号码构建器在您的账号中创建电话号码:

const phoneNumberBuilder = AdsApp.extensions().newPhoneNumberBuilder();
const newPhoneNumber = phoneNumberBuilder
  .withCountry("US")
  .withPhoneNumber("6502530000")
  .withCallOnly(false)
  .build()
  .getResult();

调用 build() 后,系统会在账号中创建电话号码,但该号码暂时不会随任何广告一起显示。您需要先将其添加到广告系列或广告组:

// Add a phone number to a campaign.
campaign.addPhoneNumber(newPhoneNumber);

// Add a phone number to an ad group.
adGroup.addPhoneNumber(newPhoneNumber);

您可以使用各自的构建工具以相同的方式创建其他受支持的广告附加信息,并将其与广告系列或广告组相关联。

获取统计信息

借助 Google Ads 脚本,您可以在账号、广告系列或广告组一级查看受支持的广告附加信息的统计信息。

例如,要获得附加链接统计数据:

// Account-level stats
// Get a sitelink in the account.
const sitelinkIterator = AdsApp.extensions().sitelinks().get();
const sitelink = sitelinkIterator.next();
const sitelinkStats = sitelink.getStatsFor("LAST_30_DAYS");
console.log(sitelinkStats.getClicks());

// Campaign-level stats.
// Get a sitelink in a campaign.
const campaignSitelinkIterator = campaign.extensions().sitelinks().get();
const campaignSitelink = campaignSitelinkIterator.next();
const campaignSitelinkStats = campaignSitelink.getStatsFor("LAST_30_DAYS");
console.log(campaignSitelinkStats.getClicks());

// Ad-group-level stats.
// Get a sitelink in an ad group.
const adGroupSitelinkIterator = adGroup.extensions().sitelinks().get();
const adGroupSitelink = adGroupSitelinkIterator.next();
const adGroupSitelinkStats = adGroupSitelink.getStatsFor("LAST_30_DAYS");
console.log(adGroupSitelinkStats.getClicks());

采用类似方式也可以访问其他受支持广告附加信息的统计数据。

修改广告附加信息

您可以使用 Google Ads 脚本修改现有的受支持广告附加信息。例如,以下代码段将修改一个现有的附加链接:

// Get a sitelink in the account.
const sitelinkIterator = AdsApp.extensions().sitelinks().get();
const sitelink = sitelinkIterator.next();
console.log(sitelink.getLinkText()); // "original text"

// Get a sitelink from a campaign. Assume it's the same one as above.
const campaignSitelinkIterator = campaign.extensions().sitelinks().get();
const campaignSitelink = campaignSitelinkIterator.next();
console.log(campaignSitelink.getLinkText()); // "original text"

// Get a sitelink from an ad group. Assume it's the same one as above.
const adGroupSitelinkIterator = adGroup.extensions().sitelinks().get();
const adGroupSitelink = adGroupSitelinkIterator.next();
console.log(adGroupSitelink.getLinkText()); // "original text"

// Change the sitelink's link text. This change will affect all the campaigns
// and ad groups to which the sitelink belongs.
campaignSitelink.setLinkText("new link text");

// Same text!
console.log(campaignSitelink.getLinkText()); // "new link text"
console.log(adGroupSitelink.getLinkText()); // "new link text"
console.log(sitelink.getLinkText()); // "new link text"

同样的情况也适用于其他受支持的广告附加信息。

访问广告组级别的广告附加信息

借助 Google Ads 脚本,您可以访问广告组级的广告附加信息。下列方法调用将返回已经明确添加到广告组中的电话号码。请注意,如果已向广告组所属的广告系列添加电话号码,则即使这些电话号码符合在该广告组投放的广告中显示的条件,以下方法调用也不会返回这些电话号码。

// This will return phone numbers that have been explicitly added to this
// ad group.
const adGroupPhoneNumberIterator = adGroup.extensions().phoneNumbers().get();

您也可以通过类似的方式在广告组一级访问其他受支持的广告附加信息。

访问账户级别的广告附加信息

借助 Google Ads 脚本,您可以访问账号级广告附加信息。宣传信息、移动应用和评价可以作为账号级广告附加信息添加,但账号级附加链接和电话号码不可用。以下方法调用将返回已明确添加到您账号中的宣传信息。

// This will return callouts that have been explicitly added to your account.
const accountCalloutIterator =
    AdsApp.currentAccount().extensions().callouts().get();

采取类似的方式也可以访问账户级别的附加应用信息和附加评价信息。

在账户级别添加广告附加信息的方式与在广告系列级别或广告组级别添加广告附加信息的方式类似。以下示例演示了如何添加账号级宣传信息扩展:

// Create a new callout in the account. Without adding the new callout as an ad
// group, campaign or account extension, it won't actually serve.
const calloutBuilder = AdsApp.extensions().newCalloutBuilder();
const newCallout = calloutBuilder.withText("Sample Text").build().getResult();

// Add the new callout as an account-level extension. This enables it to serve
// for all campaigns in the account.
AdsApp.currentAccount().addCallout(newCallout);

采用类似的方式还可以添加账户级别的附加应用信息和附加评价信息。

删除广告系列、广告组和账户的广告附加信息

可以在账户级别删除广告系列和广告组的受支持广告附加信息。Google Ads 脚本不支持从账户中一次性删除广告附加信息。

// Get a mobile app from a campaign.
const campaignMobileAppIterator = campaign.extensions().mobileApps().get();
const campaignMobileApp = campaignMobileAppIterator.next();

// Remove the mobile app.
campaign.removeMobileApp(campaignMobileApp);

// The mobile app still exists in the account and will be returned in the
// following iterator.
const mobileAppIterator = AdsApp.extensions().mobileApps().get();

同样,可按如下所示删除广告组级别或账户级别的附加应用信息:

// Get a mobile app from an ad group.
const adGroupMobileAppIterator = adGroup.extensions().mobileApps().get();
const adGroupMobileApp = adGroupMobileAppIterator.next();

// Remove the mobile app.
adGroup.removeMobileApp(adGroupMobileApp);

// Get an account-level mobile app.
const accountMobileAppIterator =
    AdsApp.currentAccount().extensions().mobileApps().get();
const accountMobileApp = accountMobileAppIterator.next();

// Remove the mobile app.
// Note that this removes the mobile app from the account level, so it will
// not serve as an account-level extension, but it will still exist in the
// account. It can still be added to an AdGroup or Campaign, or again as an
// account-level extension in the future.
AdsApp.currentAccount().removeMobileApp(accountMobileApp);

如果从广告系列中移除所有移动应用,该广告系列将不再具有移动应用附加信息。要从广告系列中移除所有移动应用,您需要检索该广告系列的移动应用列表,然后一次移除一个应用。删除其他受支持的广告附加信息也采用相同流程。