购物广告系列

您可以使用 AdWords 脚本对购物广告系列进行一些管理。借助脚本,您可以使用现有的购物广告系列、创建并管理产品组层次结构,以及生成购物报告。不过,您不能使用脚本来制作购物广告系列、设置广告系列一级的购物属性(例如广告系列优先级、产品目录过滤器等)或关联 Merchant Center 帐户。

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

AdWordsApp 对象的 shoppingCampaigns 集合中提供了购物广告系列。您可以检索这些广告系列,就像您平常在脚本中检索广告系列一样:

var campaignName = "My first shopping campaign";

var campaignIterator = AdWordsApp.shoppingCampaigns()
    .withCondition("CampaignName = '" + campaignName + "'")
    .get();

while (campaignIterator.hasNext()) {
  var campaign = campaignIterator.next();
  ...
}

检索了广告系列后,您可以采取相同方式检索其广告组:

var adGroupIterator = campaign.adGroups()
    .withCondition("AdGroupName = '" + adGroupName + "'")
    .get();

while (adGroupIterator.hasNext()) {
    var adGroup = adGroupIterator.next();
    ...
}

另外,您也可以使用 AdWordsApp.shoppingAdGroups() 方法:

var adGroupIterator = AdWordsApp.shoppingAdGroups()
    .withCondition("CampaignName='" + campaignName +
        "' and AdGroupName = '" + adGroupName + "'")
    .get();

while (adGroupIterator.hasNext()) {
    var adGroup = adGroupIterator.next();
    ...
}

使用产品广告

借助 AdWords 脚本,您可以使用 ShoppingAdGroupads() 方法来检索您的产品广告。您还可以使用 ShoppingAdGroupnewAdBuilder() 方法来制作新的产品广告。

遍历产品组层次结构

您可以使用 ShoppingAdGrouprootProductGroup 方法来访问产品组层次结构的根节点。 然后使用 children 方法来遍历子级产品组和产品组层次结构。每个节点都是一个 ProductGroup 对象,您可以使用 getDimension 方法来找出产品组的实际类型。您还可以使用相应的投射方法(例如 asBrand)将其投射到更具体的类型(例如 ProductBrand)。以下代码段说明了如何以递归方式遍历产品组层次结构。

walkTree(shoppingAdGroup.rootProductGroup(), 1);

function walkTree(root, level) {
  // Logger.log(root.getDimension());
  var 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";
  }

  var padding = new Array(level + 1).join('-');
  Logger.log("%s %s, %s, %s, %s, %s",
             padding,
             description,
             root.getDimension(),
             root.getMaxCpc(),
             root.isOtherCase(),
             root.getId().toFixed());
  var children = root.children().get();
  while (children.hasNext()) {
    var child = children.next();
    walkTree(child, level + 1);
  }
}

选择特定产品组

您可以通过 AdWordsAppShoppingCampaignShoppingAdGroup 实例的 productGroups 方法,来选择某个产品组层次结构中的特定产品组。如果您要选择的是用于出价管理的特定产品组,那么这种方式比遍历整个产品组更简单。以下代码段说明了如何选择所有在上个月的点击次数超过 5 次、点击率高于 0.01 以及出价提高了 0.01 的产品组。

function main() {
  var productGroups = AdWordsApp.productGroups()
      .withCondition("Clicks > 5")
      .withCondition("Ctr > 0.01")
      .forDateRange("LAST_MONTH")
      .get();
  while (productGroups.hasNext()) {
    var productGroup = productGroups.next();
    productGroup.setMaxCpc(productGroup.getMaxCpc() + 0.01);
  }
}

更新产品组层次结构

您可以使用 newChild 方法向现有产品组添加子级产品组。此方法提供一个 ProductGroupBuilderSpace 对象,可用来创建相应的产品组。以下代码段在根节点下面添加一个“cardcow”品牌的细分,然后再将其进一步细分为新产品和翻新产品。

var root = shoppingAdGroup.rootProductGroup();

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

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

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

同样,您也可以使用 ProductGroupremove 方法来移除细分。移除产品组时,将同时删除该产品组下的整个产品组层次结构。

脚本将确保在创建每个产品组之后,产品组层次结构保持一致,因此当您更新产品组层次结构时,无需创建或删除与“其他”对应的产品组。

“其他”产品组

购物产品组层次结构的每一级都包含一个“其他”产品组,用于不符合您在产品组层次结构中创建的自定义条件的产品。您可以使用 isOtherCase 方法来区分您添加的一般产品组和“其他”产品组。

以下代码段检索了根产品组层次结构下面的“其他”产品组,并显示它的出价。

var root = shoppingAdGroup.rootProductGroup();

var childProductGroups = root.children().get();
var everythingElseProductGroupFound = false;

while (childProductGroups.hasNext()) {
  var childProductGroup = childProductGroups.next();
  if (childProductGroup.isOtherCase()) {
    Logger.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) {
  Logger.log("No 'Everything else' product group found under root " +
             "product group.");
}

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

制作新的购物广告组

借助 AdWords 脚本,您可以使用 ShoppingCampaignnewAdGroupBuilder 方法来制作新的购物广告组。创建了 ShoppingAdGroup 之后,您就可以使用它的 createRootProductGroup 方法来创建新的产品组层次结构。

生成报告

AdWords 脚本支持产品划分报告购物效果报告,以帮助您跟踪购物广告系列的效果。您可以参阅我们的报告指南,详细了解报告功能。

发送以下问题的反馈:

此网页
AdWords Scripts
AdWords Scripts
需要帮助?请访问我们的支持页面