ほとんどの Google 広告エンティティは、識別子を返す getId()
メソッドを公開しています。ほとんどの場合、ID は必須ではありませんが、次のような場合に役立ちます。
- レポートの操作
- ID は、レポートの行を実際の Google 広告エンティティにリンクするのに適した方法です。
- 外部データストアとのマッピングを維持する
- ID ベースの情報がすでに独自のデータベースに保存されている場合があります。
- パフォーマンスの向上を求める場合
通常、ID によるデータの取得は他の方法よりも高速です。単一のエンティティを取得するコードも少し簡単になります。
let campaigns = AdsApp.campaigns() .withIds([678678]) .get(); // versus let campaigns = AdsApp.campaigns() .withCondition("Name='My Campaign'") .get();
一意性
キャンペーン ID と広告グループ ID は一意です。2 つのキャンペーンまたは広告グループが同じ ID を共有することはありません。ただし、広告とキーワードには複合 ID があります。キーワードの一意の識別子は、広告グループ ID とキーワード ID の組み合わせです。同様に、広告の一意の識別子は、広告グループ ID と広告 ID の組み合わせです。これは、selector.withIds()
の呼び出し方に影響します。
キャンペーンと広告グループの場合、selector.withIds()
は数値の配列を想定しています。
let ids = [123123, 234234, 345345];
let campaignSelector = AdsApp.campaigns().withIds(ids);
ただし、広告とキーワードの場合、selector.withIds()
には 2 つの要素の配列の配列が必要です。最初の要素は広告グループ ID です。次のスニペットは、広告グループから 3 つのキーワードを取得します。
let adGroupId = 123123;
let keywordSelector = AdsApp.keywords().withIds([
[adGroupId, 234234],
[adGroupId, 345345],
[adGroupId, 456456]
]);
広告の取得時にも同じ構成が適用されます。
一時的な ID
複数のオペレーションを含む変更リクエストを操作する場合、API レスポンスを取得するまで完全なリソース名を使用できないため、リソースを相互にリンクするために一時 ID を使用する必要がある場合があります。一時 ID は -1 から始まる負の数でなければなりません。また、同じ変更リクエスト内で繰り返すことはできません。一時 ID を効果的に使用するには、重複する一時 ID が作成されないようにコードを記述する必要があります。
let nextId = -1;
function getNextTempId() {
const ret = nextId;
nextId -= 1;
return ret;
}
getNextTempId
を呼び出すたびに、前回よりも 1 少ない数が返されます。すべての一時 ID は負の値にする必要があるため、-1 から開始します。
一時 ID は、ジョブやミューテーション リクエスト間で記憶されません。以前の mutate リクエストで作成されたリソースを参照するには、実際のリソース名を使用します。