购物广告系列

Google Ads 脚本可让您对购物 广告系列。您可以使用 脚本来与现有购物广告系列配合使用,制作和管理产品 群组层次结构以及生成购物报告。但是,您不能使用脚本来 制作购物广告系列、在广告系列一级设置购物属性( 例如:广告系列优先级、产品目录过滤条件等),或关联 Merchant Center 账号。

检索购物广告系列和广告组

您可以通过 shoppingCampaigns 的集合 AdsApp 对象。您 可以照常通过脚本检索它们:

const campaignName = "My first shopping campaign";

const campaignIterator = AdsApp.shoppingCampaigns()
    .withCondition(`campaign.name = "${campaignName}"`)
    .get();

for (const campaign of campaignIterator) {
  ...
}

检索广告系列后,您可以在一个类似 。这仅在您需要针对广告系列及其 广告组。

const adGroupIterator = campaign.adGroups()
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

如果您只打算对特定广告组采取措施,则可以使用 AdsApp.shoppingAdGroups() 方法提取广告组,而不提取 广告系列:

const adGroupIterator = AdsApp.shoppingAdGroups()
    .withCondition(`campaign.name = "${campaignName}"`)
    .withCondition(`ad_group.name = "${adGroupName}"`)
    .get();

for (const adGroup of adGroupIterator) {
    ...
}

产品广告

利用 Google Ads 脚本 检索 产品广告ads() 方法的 ShoppingAdGroup。 您可以 创建 使用 newAdBuilder() 方法 ShoppingAdGroup

遍历产品组层次结构

您可以使用 rootProductGroup 方法的 ShoppingAdGroup。 然后,您可以使用 children 方法来迭代子产品组并遍历产品组 层级结构。每个节点都是 ProductGroup 对象,并且您可以使用 getDimension 来确定产品组的实际类型。你还可以 更具体的类型(例如, ProductBrand) 使用相应的投放方法(例如 asBrand)。 以下代码段展示了如何以递归方式遍历产品组 层级结构。

walkTree(shoppingAdGroup.rootProductGroup(), 1);

function walkTree(root, level) {
  // Logger.log(root.getDimension());
  let description = "";
  switch (root.getDimension()) {
    case "ROOT":
      description = "Root";
      break;

    case "CATEGORY":
      description = root.asCategory().getName();
      break;

    case "BRAND":
      description = root.asBrand().getName();
      break;

    // Handle more types here.
    ...
  }

  if (root.isOtherCase()) {
    description = "Other";
  }

  const padding = new Array(level + 1).join('-');
  console.log("%s, %s, %s, %s, %s, %s",
             padding,
             description,
             root.getDimension(),
             root.getMaxCpc(),
             root.isOtherCase(),
             root.getId().toFixed());
  const children = root.children().get();
  for (const child of children) {
    walkTree(child, level + 1);
  }
}

选择特定产品组

您可以使用 productGroups 方法(属于 AdsApp, ShoppingCampaign, 或 ShoppingAdGroup 实例。此方法比遍历整个产品组更简单。 选择特定产品组进行出价管理时的层次结构 目的。以下代码段展示了如何选择所有产品组 点击次数超过五次且点击率高于 0.01 的广告 并将出价提高 0.01

function main() {
  const productGroups = AdsApp.productGroups()
      .withCondition("metrics.clicks > 5")
      .withCondition("metrics.ctr > 0.01")
      .forDateRange("LAST_MONTH")
      .get();
  for (const productGroup of productGroups) {
    productGroup.setMaxCpc(productGroup.getMaxCpc() + 0.01);
  }
}

更新产品组层次结构

您可以使用现有产品组的子级产品组 newChild 方法。这样您就可以 ProductGroupBuilderSpace 对象,您随后可以使用该对象构建相应的产品组。通过 以下代码段为“cardcow”添加了一个细分,brand [品牌] 然后将其进一步细分为新产品和翻新商品。

const root = shoppingAdGroup.rootProductGroup();

// Add a brand product group for a "cardcow" under root.
const brandProductGroup = root.newChild()
    .brandBuilder()
    .withName("cardcow")
    .withBid(1.2)
    .build()
    .getResult();

// Add new conditions for New and Refurbished cardcow brand items.
const newItems = brandProductGroup.newChild()
    .conditionBuilder()
    .withCondition("New")
    .withBid(1.5)
    .build()
    .getResult();

// Refurbished items will use the bid from "cardcow" product group.
const refurbishedItems = brandProductGroup.newChild()
    .conditionBuilder()
    .withCondition("Refurbished")
    .build()
    .getResult();

同样,您也可以使用 remove 方法 ProductGroup。 此操作还将删除该产品下的整个产品组层次结构 正在删除 个群组。

脚本将确保产品组层次结构保持一致状态 因此您无需创建或删除 与“其他”对应的产品组更新商品时 群组层次结构

“其他”产品组

购物产品组层次结构包含“其他”(“其他”) 产品组,用于处理 自定义条件您可以使用 isOtherCase 区分您添加的常规产品组和 “其他”。

以下代码段会检索“Other”在根目录下创建的产品组 产品组层次结构,并打印其出价。

const root = shoppingAdGroup.rootProductGroup();

const childProductGroups = root.children().get();
let everythingElseProductGroupFound = false;

for (const childProductGroup of childProductGroups) {
  if (childProductGroup.isOtherCase()) {
    console.log("'Everything else' product group found. Type of the " +
               "product group is %s and bid is %s.",
               childProductGroup.getDimension(),
               childProductGroup.getMaxCpc());
    everythingElseProductGroupFound = true;
    break;
  }
}
if (!everythingElseProductGroupFound) {
  console.log("No 'Everything else' product group found under root " +
             "product group.");
}

当您细分叶级产品组时,脚本会自动创建 “其他”产品组,以确保产品组层次结构 有效。“其他”产品组沿用父产品的出价 。

创建新的购物广告组

借助 Google Ads 脚本,您可以使用 newAdGroupBuilder 方法 ShoppingCampaign。 创建 ShoppingAdGroup、 您可以使用 createRootProductGroup 方法创建新的产品组层次结构。

报告

Google Ads 脚本支持 product_group_viewshopping_performance_view 报告,有助于您跟踪购物广告系列的效果。您可以 请参阅 报告指南