デマンド ジェネレーション キャンペーンを作成する

最小要件を満たしていることを確認します。デマンド ジェネレーション キャンペーンのアセットは、Discover や YouTube など、視覚に訴えるエンターテイメント重視のサーフェスに配信されるため、非常に高い品質基準を満たしている必要があります。

デマンド ジェネレーション キャンペーンを作成する手順は次のとおりです。

  1. 予算を作成します。
  2. 適切な入札戦略を設定したデマンド ジェネレーション キャンペーンを作成します。
  3. タイプを指定せずに広告グループを作成します。
  4. オーディエンスを作成する。
  5. アセットとデマンド ジェネレーション広告を作成します。

予算を作成する

予算を作成します。デマンド ジェネレーション キャンペーンでは共有予算を使用できません。1 日の予算は、目標コンバージョン単価の 15 倍以上をカバーできるよう、十分に設定することをおすすめします。 詳細

Java

private static String addCampaignBudget(GoogleAdsClient googleAdsClient, long customerId) {
  CampaignBudget budget =
      CampaignBudget.newBuilder()
          .setName("Interplanetary Cruise Budget #" + getPrintableDateTime())
          .setDeliveryMethod(BudgetDeliveryMethod.STANDARD)
          .setAmountMicros(500_000)
          .build();

  CampaignBudgetOperation op = CampaignBudgetOperation.newBuilder().setCreate(budget).build();

  try (CampaignBudgetServiceClient campaignBudgetServiceClient =
      googleAdsClient.getLatestVersion().createCampaignBudgetServiceClient()) {
    MutateCampaignBudgetsResponse response =
        campaignBudgetServiceClient.mutateCampaignBudgets(
            Long.toString(customerId), ImmutableList.of(op));
    String budgetResourceName = response.getResults(0).getResourceName();
    System.out.printf("Added budget: %s%n", budgetResourceName);
    return budgetResourceName;
  }
}
      

C#

private static string CreateBudget(GoogleAdsClient client, long customerId)
{
    // Get the BudgetService.
    CampaignBudgetServiceClient budgetService = client.GetService(
        Services.V16.CampaignBudgetService);

    // Create the campaign budget.
    CampaignBudget budget = new CampaignBudget()
    {
        Name = "Interplanetary Cruise Budget #" + ExampleUtilities.GetRandomString(),
        DeliveryMethod = BudgetDeliveryMethod.Standard,
        AmountMicros = 500000
    };

    // Create the operation.
    CampaignBudgetOperation budgetOperation = new CampaignBudgetOperation()
    {
        Create = budget
    };

    // Create the campaign budget.
    MutateCampaignBudgetsResponse response = budgetService.MutateCampaignBudgets(
        customerId.ToString(), new CampaignBudgetOperation[] { budgetOperation });
    return response.Results[0].ResourceName;
}
      

PHP

private static function addCampaignBudget(GoogleAdsClient $googleAdsClient, int $customerId)
{
    // Creates a campaign budget.
    $budget = new CampaignBudget([
        'name' => 'Interplanetary Cruise Budget #' . Helper::getPrintableDatetime(),
        'delivery_method' => BudgetDeliveryMethod::STANDARD,
        'amount_micros' => 500000
    ]);

    // Creates a campaign budget operation.
    $campaignBudgetOperation = new CampaignBudgetOperation();
    $campaignBudgetOperation->setCreate($budget);

    // Issues a mutate request.
    $campaignBudgetServiceClient = $googleAdsClient->getCampaignBudgetServiceClient();
    $response = $campaignBudgetServiceClient->mutateCampaignBudgets(
        MutateCampaignBudgetsRequest::build($customerId, [$campaignBudgetOperation])
    );

    /** @var CampaignBudget $addedBudget */
    $addedBudget = $response->getResults()[0];
    printf("Added budget named '%s'%s", $addedBudget->getResourceName(), PHP_EOL);

    return $addedBudget->getResourceName();
}
      

Python

# Create a budget, which can be shared by multiple campaigns.
campaign_budget_operation = client.get_type("CampaignBudgetOperation")
campaign_budget = campaign_budget_operation.create
campaign_budget.name = f"Interplanetary Budget {uuid.uuid4()}"
campaign_budget.delivery_method = (
    client.enums.BudgetDeliveryMethodEnum.STANDARD
)
campaign_budget.amount_micros = 500000

# Add budget.
try:
    campaign_budget_response = (
        campaign_budget_service.mutate_campaign_budgets(
            customer_id=customer_id, operations=[campaign_budget_operation]
        )
    )
except GoogleAdsException as ex:
    handle_googleads_exception(ex)
      

Ruby

# Create a budget, which can be shared by multiple campaigns.
campaign_budget = client.resource.campaign_budget do |cb|
  cb.name = "Interplanetary Budget #{(Time.new.to_f * 1000).to_i}"
  cb.delivery_method = :STANDARD
  cb.amount_micros = 500000
end

operation = client.operation.create_resource.campaign_budget(campaign_budget)

# Add budget.
return_budget = client.service.campaign_budget.mutate_campaign_budgets(
  customer_id: customer_id,
  operations: [operation],
)
      

Perl

# Create a campaign budget, which can be shared by multiple campaigns.
my $campaign_budget =
  Google::Ads::GoogleAds::V16::Resources::CampaignBudget->new({
    name           => "Interplanetary budget #" . uniqid(),
    deliveryMethod => STANDARD,
    amountMicros   => 500000
  });

# Create a campaign budget operation.
my $campaign_budget_operation =
  Google::Ads::GoogleAds::V16::Services::CampaignBudgetService::CampaignBudgetOperation
  ->new({create => $campaign_budget});

# Add the campaign budget.
my $campaign_budgets_response = $api_client->CampaignBudgetService()->mutate({
    customerId => $customer_id,
    operations => [$campaign_budget_operation]});
      

キャンペーンと入札戦略を作成

予算を作成したら、キャンペーンの作成に進みます。

デマンド ジェネレーション キャンペーンの AdvertisingChannelTypeDISCOVERY です。AdvertisingChannelSubType は設定しないでください。

キャンペーンのコンバージョン目標を設定します。

サポートされている入札戦略は、クリック数の最大化、目標コンバージョン単価、コンバージョン数の最大化、目標広告費用対効果です。

広告グループを作成

タイプを指定せずに広告グループを作成し、ファインド キャンペーンに追加する。

オーディエンスを作成

AdGroupCriterion を使用してオーディエンスを作成して接続する。

アセットと広告を作成する

デマンド ジェネレーション キャンペーンでは、次の 3 種類の広告を使用できます。

まず、これらの広告タイプに対応するアセットを作成します。各デマンド ジェネレーション広告タイプに使用できるアセットの一覧については、デマンド ジェネレーション キャンペーンのアセットの仕様とベスト プラクティスのガイドをご覧ください。ガイドには、必要なアセットと推奨されるアセットの数に関するガイダンスが記載されています。また、アセットのパフォーマンスを評価して、クリエイティブを微調整することをおすすめします。デマンド ジェネレーション キャンペーンのパフォーマンス指標を取得する方法については、レポート セクションをご覧ください。

DiscoveryCarouselAdInfo には、AdDiscoveryCarouselCardAsset という追加の専用アセットがあります。

アセットと広告を作成したら、広告グループに広告を追加します。