このガイドでは、既存の P-MAX ガイドと完全に同等のコードを作成する方法を説明します。このガイドでは、各エンティティを個別のリクエストで 1 つずつ作成するのではなく、1 つのアトミック リクエストでキャンペーン全体を作成することを前提としています。つまり、API レスポンスが返されるまで完全なリソース名がわからないため、一時 ID を使用してリソースを相互にリンクする必要があります。
そのためには、一時 ID の重複がないようにコードを記述する必要があります。
let nextId = -1;
function getNextTempId() {
const ret = nextId;
nextId -= 1;
return ret;
}
getNextTempId
を連続して呼び出すたびに、前の値より 1 小さい値が返されます。すべての一時 ID は負の値である必要があるため、-1 から始めます。
これで、すべてのオペレーションを保持する配列を作成できます。
const operations = [];
リソース名にはすべてお客様 ID が必要であるため、キャンペーンを作成するお客様のお客様 ID は頻繁に必要になります。
const customerId = AdsApp.currentAccount().getCustomerId();
新しいオペレーションを作成するたびに、リソース名に次の一時 ID を使用します。これにより、後でこのオブジェクトを参照し、作成したオブジェクトを配列に挿入できます。
const newOperation = {
[OPERATION_TYPE_VARIES]: {
create: {
resourceName: `customers/${customerId}/[EXACT_PATH_VARIES]/${getNextTempId()}`
// Other fields, relevant to the resource being created.
}
}
}
operations.push(newOperation);
詳細とオペレーションの例については、Google Ads API REST の変更に関するドキュメントをご覧ください。
すべてのオペレーションを作成したら、1 つのバッチで実行します。
AdsApp.mutateAll(operations);