変更戦略

このガイドでは、既存の 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);