P-MAX のバッチ処理
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
バッチ処理では、相互に依存する可能性のある一連のオペレーションを、オペレーションの完了を同期的に待機することなく、複数のサービスにディスパッチできます。バッチ処理を使用して、P-MAX キャンペーンを作成、管理できます。
このガイドでは、バッチ処理を使用する場合の P-MAX キャンペーンに固有の詳細について説明します。一般的なバッチ処理ガイドには、バッチ処理に関する一般的な情報が記載されています。リクエストの構造化ガイドには、P-MAX キャンペーンの作成または管理のためのリクエストの構築に関する詳細情報が記載されています。
バッチ処理を使用して P-MAX キャンペーンを作成する手順は次のとおりです。
新しいバッチジョブを作成する
BatchJob
リソースを作成するには、一般的なバッチ処理のジョブ作成の手順に沿って操作します。
変更オペレーションのリストを準備する
P-MAX キャンペーンでは、複数の関連リソースを作成するオペレーションが必要です。詳しくは、リクエストの構造ガイドをご覧ください。バッチジョブに含める各リソースの MutateOperation
を作成します。
CampaignOperation
と CampaignAssetOperation
の要件
キャンペーンでブランド ガイドラインが有効になっている場合(ブランド ガイドラインを参照)、CampaignAsset
リソースを使用してブランド アセットをキャンペーンにリンクする必要があります。また、バッチジョブでは、これらの CampaignAsset
リソースの作成は、Campaign
リソース自体の作成直後に行う必要があります。Campaign
リソースの直後に CampaignAsset
リソースが作成されない場合(ブランド ガイドラインが有効になっている場合 - トラブルシューティングを参照)、リクエストは失敗し、アセットがないことを示す CampaignError
が返されます。同じオペレーション リストの後で CampaignAsset
作成オペレーションを含めても、このエラーは回避できません。
AssetGroupOperation
と AssetGroupAssetOperation
の要件
バッチジョブで AssetGroup
リソースと AssetGroupAsset
リソースを作成する MutateOperation
タイプのオペレーションは、処理時にこれらのオペレーションがグループ化されるため、間に他のオペレーションを挟まずに連続して実行する必要があります。そうでない場合、最小限のアセット要件を満たすために必要なオペレーションがオペレーション リストに後で含まれていても、リクエストは AssetGroupError
をスローして、一部のアセットが不足していることを示します。
AssetGroupListingGroupFilterOperation
のベスト プラクティス
AssetGroupListingGroupFilter
のコンテキストでリスティング グループ フィルタを使用する場合は、同じ AssetGroup
をターゲットとする AssetGroupListingGroupFilterOperation
オペレーションをバッチジョブに連続して追加することをおすすめします。これにより、バッチ分割時にオペレーションのセットがアトミックに処理されます。バッチ分割や、商品グループに影響するその他の要因について詳しくは、商品グループのバッチ処理ガイドをご覧ください。
ジョブにミューテート オペレーションを追加する
ステップ 2 の変更オペレーションをリストに追加し、AddBatchJobOperations
を呼び出して、ステップ 1 で作成したバッチジョブに変更のリストを追加します。一般的なバッチ処理ガイドのオペレーションを追加する手順に沿って、変更オペレーションのリストを追加します。
バッチジョブを実行する
RunBatchJob
を呼び出して、アップロードされたジョブの実行を開始します。例については、一般的なバッチ処理ガイドのバッチジョブを実行するの手順をご覧ください。
ジョブのステータスを取得する
バッチジョブは長時間実行オペレーションとして開始され、通常は完了までに時間がかかります。ジョブを開始したら、長時間実行オペレーションの GetOperation
メソッドを使用して、ジョブが完了するまでジョブのステータスをポーリングします。
すべてのバッチジョブが完了したら、一般的なバッチ処理ガイドのすべてのバッチジョブの結果を一覧表示するの手順に沿って、ListBatchJobResults
を呼び出してステータスとレスポンスを出力します。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-09-05 UTC。
[null,null,["最終更新日 2025-09-05 UTC。"],[[["\u003cp\u003eBatch processing allows you to execute a series of interdependent operations across Google Ads services, including creating and managing Performance Max campaigns, without waiting for each operation to complete individually.\u003c/p\u003e\n"],["\u003cp\u003eCreating a Performance Max campaign with batch processing involves preparing a list of \u003ccode\u003eMutateOperation\u003c/code\u003e objects, each defining a resource to be created or modified, such as an asset group or listing group filter.\u003c/p\u003e\n"],["\u003cp\u003eOperations involving \u003ccode\u003eAssetGroup\u003c/code\u003e and \u003ccode\u003eAssetGroupAsset\u003c/code\u003e resources should be sequential within the batch job due to their interdependencies and asset requirements.\u003c/p\u003e\n"],["\u003cp\u003eWhen using \u003ccode\u003eAssetGroupListingGroupFilter\u003c/code\u003e for Performance Max campaigns with online sales, it's recommended to add operations targeting the same \u003ccode\u003eAssetGroup\u003c/code\u003e consecutively to ensure atomic processing.\u003c/p\u003e\n"],["\u003cp\u003eThe batch job is executed asynchronously, requiring you to monitor its status using the \u003ccode\u003eGetOperation\u003c/code\u003e method until completion and then retrieve results using \u003ccode\u003eListBatchJobResults\u003c/code\u003e.\u003c/p\u003e\n"]]],[],null,["# Batch Processing for Performance Max\n\n[Batch processing](/google-ads/api/docs/batch-processing/overview) provides a way to dispatch\na set of operations, which may be interdependent, to multiple services without\nsynchronously waiting for the operations to complete. You can use batch\nprocessing to create and manage Performance Max campaigns.\n\nThis guide provides details specific to Performance Max campaigns when working\nwith batch processing. The generic\n[batch processing guide](/google-ads/api/docs/batch-processing/overview) provides general\ninformation about batch processing, and the\n[Structure requests guide](/google-ads/api/performance-max/structure-requests) contains detailed\ninformation about constructing requests to create or manage Performance Max\ncampaigns.\n\nTo create a Performance Max campaign using batch processing, follow these steps:\n\nCreate a new batch job\n----------------------\n\nFollow the general batch processing\n[job creation step](/google-ads/api/docs/batch-processing/flow#createjob) for creating a\n[`BatchJob`](/google-ads/api/reference/rpc/v21/BatchJob) resource.\n\nPrepare a list of mutate operations\n-----------------------------------\n\nPerformance Max campaigns require operations to create several related\nresources, which are detailed in the\n[Structure requests guide](/google-ads/api/performance-max/structure-requests). Create a\n[`MutateOperation`](/google-ads/api/reference/rpc/v21/MutateOperation) for each resource that should\nbe included in the batch job.\n\n### `CampaignOperation` and `CampaignAssetOperation` requirements\n\n| **Note:** this requirement only applies to [`Campaign`](/google-ads/api/reference/rpc/v21/Campaign) resources with associated [`Asset`](/google-ads/api/reference/rpc/v21/Asset) resources using [`CampaignAsset`](/google-ads/api/reference/rpc/v21/CampaignAsset) in order to meet the [brand asset requirements](/google-ads/api/performance-max/create-campaign#brand-guidelines).\n\nWhen brand guidelines are enabled for a campaign (see\n[brand guidelines](/google-ads/api/performance-max/create-campaign#brand-guidelines)), you must link\nbrand assets to the campaign using [`CampaignAsset`](/google-ads/api/reference/rpc/v21/CampaignAsset)\nresources. Furthermore, in a batch job the creation of these `CampaignAsset`\nresources must happen immediately after the creation of the [`Campaign`](/google-ads/api/reference/rpc/v21/Campaign)\nresource itself. If the `CampaignAsset` resources are not created immediately\nafter the `Campaign` resource (when brand guidelines are enabled - see\n[troubleshooting](/google-ads/api/performance-max/troubleshooting#campaigns_with_brand_guidelines_enabled)),\nthe request will fail and return a `CampaignError` indicating missing assets.\nIncluding the `CampaignAsset` creation operations later in the same list of\noperations won't prevent this error.\n\n### `AssetGroupOperation` and `AssetGroupAssetOperation` requirements\n\n| **Note:** this requirement only applies to [`AssetGroup`](/google-ads/api/reference/rpc/v21/AssetGroup) resources with associated [`Asset`](/google-ads/api/reference/rpc/v21/Asset) resources using [`AssetGroupAsset`](/google-ads/api/reference/rpc/v21/AssetGroupAsset) in order to adhere to the [minimum asset requirements](/google-ads/api/performance-max/asset-requirements).\n\nThe operations of type [`MutateOperation`](/google-ads/api/reference/rpc/v21/MutateOperation) that\ncreate [`AssetGroup`](/google-ads/api/reference/rpc/v21/AssetGroup) and\n[`AssetGroupAsset`](/google-ads/api/reference/rpc/v21/AssetGroupAsset) resources in a batch job must\nbe sequential without other operations in between because of how these\noperations are grouped together when processed. Otherwise, the request throws an\n[`AssetGroupError` indicating some assets are missing](/google-ads/api/performance-max/troubleshooting#common_asset_group_errors),\neven if the operations required to\n[meet minimum asset requirements](/google-ads/api/performance-max/asset-requirements) are included later\nin the operations list.\n\n### `AssetGroupListingGroupFilterOperation` best practices\n\n| **Note:** [`AssetGroupListingGroupFilter`](/google-ads/api/reference/rpc/v21/AssetGroupListingGroupFilter) resources may only be used with Performance Max campaigns for [online sales with a product feed](/google-ads/api/performance-max/retail). [`AssetGroup`](/google-ads/api/reference/rpc/v21/AssetGroup) resources in such campaigns must have a [valid product group tree](/google-ads/api/performance-max/listing-groups) composed of one or more [`AssetGroupListingGroupFilter`](/google-ads/api/reference/rpc/v21/AssetGroupListingGroupFilter) resources associated with it. To target all products, use a single node tree.\n\nWhen working with listing group filters in the context of an\n[`AssetGroupListingGroupFilter`](/google-ads/api/reference/rpc/v21/AssetGroupListingGroupFilter), we\nrecommend adding\n[`AssetGroupListingGroupFilterOperation`](/google-ads/api/reference/rpc/v21/AssetGroupListingGroupFilterOperation)\noperations targeting the same [`AssetGroup`](/google-ads/api/reference/rpc/v21/AssetGroup) to a\nbatch job consecutively, so that the set of operations are treated atomically\nduring batch splitting. To read more on batch splitting and other factors\naffecting listing groups, see the\n[listing group batch processing guide](/google-ads/api/docs/batch-processing/listing-groups).\n\nAdd the mutate operations to the job\n------------------------------------\n\nAdd the mutate operations from [Step 2](#prepareoperations) to a list and call\n[`AddBatchJobOperations`](/google-ads/api/reference/rpc/v21/BatchJobService#addbatchjoboperations)\nto add the list of mutations to the batch job created in [Step 1](#createjob).\nFollow the [add operations step](/google-ads/api/docs/batch-processing/flow#addoperations)\nin the general batch processing guide to add the list of mutate operations.\n\nRun the batch job\n-----------------\n\nAllow the uploaded jobs to start running by calling\n[`RunBatchJob`](/google-ads/api/reference/rpc/v21/BatchJobService#runbatchjob). See\n[Run the batch job](/google-ads/api/docs/batch-processing/flow#runjob)\nstep in the general batch processing guide for an example.\n\nRetrieve the job's status\n-------------------------\n\nBatch jobs start as long-running operations and usually take time to finish.\nAfter starting the job, use the long-running operation's\n[`GetOperation`](/google-ads/api/reference/rpc/google.longrunning#google.longrunning.Operations.GetOperation)\nmethod to [poll the job's status](/google-ads/api/docs/batch-processing/flow#pollstatus)\nuntil it's done.\n\nWhen all of your batch jobs finish, call\n[`ListBatchJobResults`](/google-ads/api/reference/rpc/v21/BatchJobService#listbatchjobresults) to\nprint their statuses and responses following the\n[list all batch job results](/google-ads/api/docs/batch-processing/flow#listresults) step in\nthe general batch processing guide."]]