ショッピング キャンペーン

ショッピング キャンペーンの管理の一部に 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 メソッドを使って、商品グループの階層内から特定の商品グループを選択できます。入札単価管理の目的で特定の商品グループを選択する場合、商品グループの階層全体を精査するよりも、こちらの方がシンプルです。以下のコードでは、前月のクリック数が 6 以上で、クリック率が 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 メソッドを使って下位分類を削除できます。 これにより、削除された商品グループの下位にある商品グループの階層全体が削除されます。

各商品グループの作成後は、スクリプトによって商品グループの階層の一貫性は維持されます。このため、商品グループの階層構造を更新する際に、「Everything else」に相当する商品グループを作成または削除する必要はありません。

「Everything else」商品グループ

商品グループの階層には、商品グループの階層内に作成された、カスタム条件に一致しない商品を処理するために、各階層に「Everything else」(その他)商品グループが含まれています。追加した通常の商品グループと「その他」の商品グループは、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 メソッドを使って新しいショッピング広告グループを作成できます。また、作成した ShoppingAdGroupcreateRootProductGroup メソッドを使って新しい商品グループの階層を作成できます。

レポートの実行

AdWords スクリプトでは、ショッピング キャンペーンの掲載結果をトラッキングできる商品分割レポートショッピングの掲載結果レポートをサポートしています。レポートの詳細については、レポートに関するガイドをご覧ください。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。