4.4 キャンペーン管理

はじめに


作成したキャンペーンの内容を販売者が変更できるようにすることが重要です。変更できる最も重要な側面は次のとおりです。

  • 予算
  • ステータス(一時停止、有効化、削除)
  • 地域ターゲティング(推奨、省略可)
  • キャンペーン作成インターフェースで指定したその他のフィールド

UX に関するガイダンス


キャンペーン リストを、概要ページと、キャンペーンのパフォーマンス レポートの一部として別のページに表示します。キャンペーンの一時停止、削除、編集をユーザーに許可する。

pmax_campaign

キャンペーンを編集する際、販売者はキャンペーンの作成時に入力したものと同じ項目を変更できる必要があります。例を以下に示します。

edit_pmax

技術ガイダンス


小売向け P-MAX キャンペーンを作成したら、次のキャンペーン設定を変更できます。

  • キャンペーン名
  • キャンペーンの予算
  • キャンペーンのステータス
  • キャンペーンのターゲティング条件

リソースを変更する方法の概要については、デベロッパー ガイドをご覧ください。リソースの変更には、公開されたサービス エンドポイント(CampaignService.MutateCampaigns など)を使用します。また、GoogleAdsService.Mutate エンドポイントで利用できる一括変更機能を使用して、複数の異なるリソース間で変更することもできます。

可能であれば、一括で変更して、キャンペーンの更新に必要な操作の数を減らすことをおすすめします。このことを念頭に置いて、個々のリソース エンドポイントではなく、GoogleAdsService.Mutate エンドポイントを使用するようにアーキテクチャを設計する必要があります。これにより、今後の機能拡張も容易になります。

後半の例では、関連する ID がローカル データベースにすでに保存されていることを前提としています。

キャンペーン名

キャンペーンの名前を更新するには、Campaign.name フィールドを変更する必要があります。

null(コードポイント 0x0)、NL 改行(コードポイント 0xA)、改行(コードポイント 0xD)を含めることはできません。

キャンペーンの予算

新しい予算に置き換えるのではなく、既存の予算を更新することをおすすめします。これにより、キャンペーンの費用が想定どおりに配信され、超過配信を防ぐことができます。

予算の値のみ更新し、他のフィールドは変更せず、毎日の支出額を増やすようにしてください。

Python
budget_resource_name = client.get_service(
        "CampaignBudgetService"
    ).campaign_budget_path(customer_id, budget_id)

mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update

campaign_budget.resource_name = budget_resource_name

# update the budget amount to the new value

campaign_budget.amount_micros = 50000000

client.copy_from(
    mutate_operation.campaign_budget_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation

キャンペーンのステータス

キャンペーンのステータス(有効化、一時停止、削除)を更新するには、Campaign.status フィールドを変更し、CampaignStatus 列挙型から関連するステータスを割り当てる必要があります。

キャンペーン ステータスを変更する例については、キャンペーンの更新のサンプルコードをご覧ください。

キャンペーン クライテリア

キャンペーン条件を更新する場合、ユーザーに公開される条件を更新する機能を提供するだけで済みます。これは最低限地域ターゲティングであり、場合によっては言語ターゲティングです。キャンペーンの条件を更新する例については、キャンペーンの条件の入札単価調整比を更新するのサンプルコードをご覧ください。

地域ターゲティングの条件を更新するには、CampaignCriterion.location を新しい地域ターゲティングの定数の値に更新します。

Python
criterion_rname = client.get_service(
    "CampaignCriterionService"
    ).campaign_criterion_path(
    customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the geo to the update geo targeting

campaign_criterion.location.geo_target_constant = (
   geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation

言語ターゲティング条件を更新するには、CampaignCriterion.language 値の値を新しい言語定数で更新する必要があります。

Python
campaign_criterion_service = client.get_service("CampaignCriterionService")

criterion_rname = campaign_criterion_service.campaign_criterion_path(
   customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
    googleads_service.language_constant_path("1000")
)  # English

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation