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

ショッピング キャンペーンは、ユーザーが広告をクリックする前に詳細な商品情報を提供できるキャンペーンです。ショッピング キャンペーンの広告では、商品の写真に加えて、見出し、価格、店舗名なども表示できます。

このガイドでは AdWords API でショッピング キャンペーンを設定、管理する方法を説明します。

Merchant Center と AdWords アカウントをリンクする

ショッピング キャンペーンを作成する場合は、まず AdWords アカウントを Google Merchant Center アカウントにリンクします。このリンク作業は次の手順で行います。

  1. Merchant Center アカウントから AdWords アカウントへ招待状を送信します。
  2. AdWords アカウントで招待状を承認します。

Merchant Center アカウントから招待状を送信する

Merchant Center の管理画面からこの招待状を送信するか、Content API for Shopping を使ってアカウントadwordsLinks を更新できます。

AdWords アカウントで招待状を管理する

v201609 からは CustomerServicegetServiceLinksmutateServiceLinks を使って、AdWords アカウントと他のサービス(Merchant Center など)のリンクを取得、承認、拒否できるようになりました。

アカウントのすべてのリンクを取得するには、次のように serviceType = MERCHANT_CENTER として getServiceLinks を呼び出します。

Java

// Get the CustomerService.
CustomerServiceInterface customerService =
    adWordsServices.get(session, CustomerServiceInterface.class);

// Create a selector that filters by service type.
Selector selector =
    new SelectorBuilder()
        .fields("ServiceType")
        .equals("ServiceType", ServiceType.MERCHANT_CENTER.getValue())
        .build();

// Get the service links.
ServiceLink[] serviceLinks = customerService.getServiceLinks(selector);

// Display the results.
if (serviceLinks != null) {
  for (ServiceLink serviceLink : serviceLinks) {
    System.out.printf(
        "Found service link with service link ID %d, type %s, name '%s', and status %s.%n",
        serviceLink.getServiceLinkId(),
        serviceLink.getServiceType(),
        serviceLink.getName(),
        serviceLink.getLinkStatus());
  }
} else {
  System.out.println("No service links found.");
}

招待を受け入れるには mutateServiceLinks を呼び出し、linkStatusPENDING から ACTIVE に変更する SET オペレーションを渡します。オペランドには必ず serviceTypeserviceLinkId を設定してください。

Java

// Get the CustomerService.
CustomerServiceInterface customerService =
    adWordsServices.get(session, CustomerServiceInterface.class);

// Create the operation to set the status to ACTIVE.
ServiceLinkOperation op = new ServiceLinkOperation();
op.setOperator(Operator.SET);
ServiceLink serviceLink = new ServiceLink();
serviceLink.setServiceLinkId(serviceLinkId);
serviceLink.setServiceType(ServiceType.MERCHANT_CENTER);
serviceLink.setLinkStatus(ServiceLinkLinkStatus.ACTIVE);
op.setOperand(serviceLink);

// Update the service link.
ServiceLink[] mutatedServiceLinks =
    customerService.mutateServiceLinks(new ServiceLinkOperation[] {op});

// Display the results.
for (ServiceLink mutatedServiceLink : mutatedServiceLinks) {
  System.out.printf(
      "Service link with service link ID %d, type '%s' updated to status: %s.%n",
      mutatedServiceLink.getServiceLinkId(),
      mutatedServiceLink.getServiceType(),
      mutatedServiceLink.getLinkStatus());
}

招待を拒否するには mutateServiceLinks を呼び出し、オペランドに serviceTypeserviceLinkId を設定した REMOVE オペレーションを渡します。

Java

// Get the CustomerService.
CustomerServiceInterface customerService =
    adWordsServices.get(session, CustomerServiceInterface.class);

// Create the operation to remove the service link.
ServiceLinkOperation op = new ServiceLinkOperation();
op.setOperator(Operator.REMOVE);
ServiceLink serviceLink = new ServiceLink();
serviceLink.setServiceLinkId(serviceLinkId);
serviceLink.setServiceType(ServiceType.MERCHANT_CENTER);
op.setOperand(serviceLink);

// Remove the service link.
ServiceLink[] mutatedServiceLinks =
    customerService.mutateServiceLinks(new ServiceLinkOperation[] {op});

// Display the results.
for (ServiceLink mutatedServiceLink : mutatedServiceLinks) {
  System.out.printf(
      "Service link with service link ID %d and type '%s' was removed.%n",
      mutatedServiceLink.getServiceLinkId(), mutatedServiceLink.getServiceType());
}

ショッピング キャンペーンを作成する

注: このガイドではわかりやすくするために CampaignServiceAdGroupCriterionService を使用しますが、BatchJobService を使って同じ操作を行うこともできます。詳しくは、バッチ処理をご覧ください。

ショッピング キャンペーンを作成する際には、予算や入札単価などの設定を指定します。ショッピング キャンペーンをシンプルにするには、すべての商品に共通の入札単価を 1 つだけ設定します。

ショッピング キャンペーンの設定では次の 2 段階の手順を行います。

  1. キャンペーンの advertisingChannelTypeSHOPPING に設定します。

  2. ShoppingSetting を作成してキャンペーンに追加します。

次のコードでもこうした手順を確認できます。

Campaign campaign = new Campaign();
campaign.setAdvertisingChannelType(AdvertisingChannelType.SHOPPING);
// Recommendation: Set the campaign to PAUSED when creating it to stop
// the ads from immediately serving. Set to ENABLED once you've added
// targeting and the ads are ready to serve.
campaign.setStatus(CampaignStatus.PAUSED);

ShoppingSetting shoppingSetting = new ShoppingSetting();
shoppingSetting.setMerchantId(MERCHANT_ID);
shoppingSetting.setSalesCountry("GB");
shoppingSetting.setCampaignPriority(0);
shoppingSetting.setEnableLocal(true);
campaign.setSettings(new Setting[] {shoppingSetting});

上記サンプルを見るとわかりますが、ShoppingSetting には次のプロパティがあります。

merchantId(必須)
商品が属する Merchant Center アカウント ID です。
salesCountry(必須)
Merchant Center でターゲットの国が一致している商品のみ選択されます。広告のターゲット設定には影響しません。
campaignPriority(省略可能で、デフォルトは 0
値は 01 または 2 になります。複数のキャンペーンで同じ Merchant Center データフィードを使用している場合は、このプロパティでキャンペーンの優先度が決まります。優先度の高いキャンペーンが選択されますが、2 つのキャンペーンの優先度が同じ場合は、商品により高い入札単価を設定しているキャンペーンが使用されます。
enableLocal(省略可能で、デフォルトは false
true に設定した場合は、ショッピング キャンペーンのローカル在庫広告が有効になります。

ショッピング広告グループとショッピング広告を作成する

ショッピング キャンペーンの広告を配信するには、広告グループに少なくとも 1 つの広告が含まれる AdGroup を作成する必要があります。

ショッピング キャンペーンでは次の 2 種類の広告グループを使用できます。

  • SHOPPING_PRODUCT_ADS: ショッピング キャンペーンの広告グループのデフォルトの種類です。標準的な商品広告を配信します。
  • SHOPPING_SHOWCASE_ADS: ショッピングの検索結果に表示されるショーケース広告のみを配信する広告グループの種類です。この種類の広告グループを作成するには次の設定が必要です。
    1. 広告グループの adGroupType フィールドを SHOPPING_SHOWCASE_ADS に設定します。
    2. 広告グループの biddingStrategyConfigurationbiddingStrategyTypeMANUAL_CPC または ENHANCED_CPC に設定します。

必要な種類の広告グループを作成したら、広告グループに ProductAdShowcaseAd を追加してキャンペーンの基本的な設定を行います。

続いて、追加する商品とそれぞれの入札単価を決める必要があります。

分割

ショッピング キャンペーンの最大の魅力は、複数の属性で商品の在庫を分割し、各商品グループを個別に扱える点にあります。次の図をご覧ください。商品が電化製品、玩具、「その他」に大きく分割されています。電化製品はブランドで、「その他」は中古品かどうかでさらに分割されています。

この図はツリー構造でも表現可能で、ツリーの各レベルが分割を表します。

ツリーの各ノードは下位区分またはユニットです。下位区分はツリーに新しいレベルを追加するもので、ユニットはツリーの葉ノードになります。各下位区分は明確な分類に基づいているため、その他のユニットタイプが必ず必要となります。この例ではルート、カテゴリ: 電化製品カテゴリ: (その他)のノードが下位区分となります。

ノードは Criterion クラスのサブクラスである ProductPartition クラスのオブジェクトです。ProductPartitionBiddableAdGroupCriterion または NegativeAdGroupCriterion を保持する AdGroup にリンクしています。

ProductPartition タイプと AdGroupCriterion タイプを組み合わせると、次のような効果があります。

ProductPartition タイプ AdGroupCriterion タイプ 効果
UNIT BiddableAdGroupCriterion ツリーの特定の葉に一致する商品アイテムに共通の入札単価が設定されます。
UNIT NegativeAdGroupCriterion この組み合わせを使用すると、この広告グループの特定の葉ノードでは入札したくないが、その他の広告グループや(優先度が低い)キャンペーンでは入札可能であることを示すことができます。

その他の組み合わせはエラーになります。

ProductPartition には ProductDimension タイプのいずれかのサブクラスに設定できる caseValue というプロパティもあります。ProductDimension は商品に関連付けられている値(ブランド、カテゴリ、条件など)を表します。利用可能な ProductDimension タイプの詳細については参考資料をご覧ください。

下位区分の直下の子ノードは、同じ ProductDimension サブタイプの caseValue を保持している必要があります。ルートノードのみ caseValue は保持しません。

ProductPartition root = new ProductPartition();
root.setPartitionType(ProductPartitionType.SUBDIVISION);
root.setId(-1);

ProductPartition node1 = new ProductPartition();
node1.setPartitionType(ProductPartitionType.UNIT);
node1.setCaseValue(new ProductBrand(null, "Brand A"));
node1.setParentCriterionId(root.getId());

また、各下位区分には、「その他のすべての値」を表す、適切なタイプの「空」の caseValue を必ず設定する必要があります。

ProductPartition node2 = new ProductPartition();
node2.setPartitionType(ProductPartitionType.UNIT);
node2.setCaseValue(new ProductBrand());
node2.setParentCriterionId(root.getId());

一時的な ID

条件を作成する mutate リクエストがサーバー側で処理されるまで、条件に ID は割り当てられません。ただし完成するまで ProductPartition は無効であるため、下位区分を作成する際には必ず、同じオペレーションで子ノードを少なくとも 1 つ作成する必要があります。

子ノードで parentCriterionId を設定できるようにするには、一時的な条件 ID を使用します。これはグローバルではなくローカルで固有の識別子であり、1 つの mutate リクエストの範囲内でのみ適用されます。一時的な ID としては、任意の負の整数を使用できます。上記のサンプルコードでは、ルートの ProductPartition の ID は -1 に設定されます。

リクエストの処理が完了すると、各 Criterion には通常どおり正のグローバル ID が割り当てられます。

商品のディメンション

ショッピング キャンペーンでは以下の ProductDimension タイプを使用できます。

ProductBiddingCategoryProductCustomAttributeProductType はサブタイプへとさらに細分化されます。いずれかのタイプで分割を行う場合は、その分割の各 caseValue も同じサブタイプにする必要があります。

ProductBiddingCategoryProductType は階層構造になっており、そのサブタイプは階層の深さを表します。メディアというカテゴリが BIDDING_CATEGORY_L1 である一方、書籍BIDDING_CATEGORY_L2 でありメディアを親として持ちます。ツリー上で親をさらに分割しない限り、caseValue で分割を行うことはできません。

たとえばカテゴリの書籍はルートの直下に置くことができず、書籍電化製品の下に置くこともできません。電化製品書籍の親ではないからです。

ProductCustomAttribute は階層構造ではありません。サブタイプ CUSTOM_ATTRIBUTE_0CUSTOM_ATTRIBUTE_4 は、Merchant Center の値のカスタム属性 0カスタム属性 4 に対応します。

商品ディメンションの ProductChannelProductChannelExclusivity では、ローカル、オンライン、または両方のチャネルを指定できます。

単価設定のカテゴリ

ProductBiddingCategory タイプの値は固定 ID です。単価設定の全カテゴリは ConstantDataService のメソッド getProductBiddingCategoryData から取得できます。この呼び出しの結果はデータ量が多く頻繁には変更されないため、キャッシュしておくことを強くおすすめします。

既存の ProductPartition ツリーを修正する

ツリーは常に完全な状態でなければならないため、ツリーを無効にしてしまう mutate オペレーションは、ツリーを再度修正するオペレーションと同じリクエストで渡す必要があります。ツリーが有効であるためには、下位区分の子ノードすべてが同じタイプの caseValue を保持し、すべての下位区分に「その他」ノードが含まれている必要があります。

葉ノードをさらに分割する場合は、既存のユニットを削除し、同じ caseValue を持つ下位区分で置き換える必要があります。こうすることで、新しいノードの子として調整を加えることができます。

下位区分を削除すると、その子もすべて削除されることになります。

商品ディメンションに基づくフィルタ

ProductScope 条件を設定すると、キャンペーンの対象商品を絞り込むことができます。キャンペーンごと作成可能な ProductScope は 1 つまでです。ProductScope は商品の特定の側面を対象とする、シンプルなフィルタを表す ProductDimension のコンテナです。たとえば ProductDimensionProductBrand サブタイプを追加して値を Nexus に設定すると、Merchant Center で「Nexus」がブランドとなっている商品にのみキャンペーンが適用されます。

ProductScope productScope = new ProductScope();
productScope.setDimensions(new ProductDimension[] {new ProductBrand(null, "Nexus")});

ProductDimension は 7 つまで ProductScope に追加できます。商品はすべての ProductDimension と一致しないと、キャンペーンの対象となりません。

入札に関する制限事項

ショッピング広告グループの入札に関する制限事項は、広告グループの種類が SHOPPING_PRODUCT_ADSSHOPPING_SHOWCASE_ADS かで異なります。次の表にその違いをまとめています。

  SHOPPING_PRODUCT_ADS SHOPPING_SHOWCASE_ADS
入札戦略 次の種類でのみ使用できます。
  • MANUAL_CPC
  • ENHANCED_CPC
  • TARGET_ROAS
  • TARGET_SPEND
次の種類でのみ使用できます。
  • MANUAL_CPC
  • ENHANCED_CPC
広告グループ単位の入札戦略 オプション 必須
商品分割ノード単位の入札単価 必須 許可されない

レポート

ショッピング キャンペーンでは、商品分割ショッピングの掲載結果の 2 つの新しいレポートを利用できます。

詳しくはレポートガイドをご覧ください。

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

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