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

最小要件を満たしていることを確認します。デマンド ジェネレーション キャンペーンのアセットは、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.V17.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::V17::Resources::CampaignBudget->new({
    name           => "Interplanetary budget #" . uniqid(),
    deliveryMethod => STANDARD,
    amountMicros   => 500000
  });

# Create a campaign budget operation.
my $campaign_budget_operation =
  Google::Ads::GoogleAds::V17::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]});
      

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

予算の作成が完了したら、キャンペーンの作成を開始できます。

Google Ads API v17 以降、デマンド ジェネレーション キャンペーンの AdvertisingChannelTypeDEMAND_GEN となります。AdvertisingChannelSubType は設定しないでください。

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

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

広告グループを作成

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

オーディエンスを作成

AdGroupCriterion を使用してオーディエンスを作成して関連付けます。

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

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

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

DemandGenCarouselAdInfo には AdDemandGenCarouselCardAsset という特殊なアセットが追加されています。

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