ID

大多數 Google Ads 實體都會公開 getId() 方法,傳回其 ID。雖然在大多數情況下並非必要,但 ID 可能在以下情況派上用場:

使用報表
ID 是將報表列連結至實際 Google Ads 實體的絕佳方式。
維護外部資料儲存空間的對應
您可能已在自己的資料庫中儲存以 ID 為準的資訊。
想要稍微提升成效

按編號擷取通常比其他方式來得快,擷取單一實體的程式碼也比較簡單:

let campaigns = AdsApp.campaigns()
   .withIds([678678])
   .get();
// versus
let campaigns = AdsApp.campaigns()
   .withCondition("Name='My Campaign'")
   .get();

唯一性

廣告活動 ID 和廣告群組 ID 都是專屬的,不會有兩個廣告活動或廣告群組共用同一個 ID。不過,廣告和關鍵字有複合 ID:關鍵字的專屬 ID 是由廣告群組 ID 和關鍵字 ID 組合而成。同樣地,廣告的專屬 ID 是廣告群組 ID 和廣告 ID 的組合。這會影響 selector.withIds() 的呼叫方式。

如果是廣告活動和廣告群組,selector.withIds() 預期會收到數字陣列:

let ids = [123123, 234234, 345345];
let campaignSelector = AdsApp.campaigns().withIds(ids);

不過,如果是廣告和關鍵字,selector.withIds() 需要的是雙元素陣列的陣列,第一個元素是廣告群組 ID。以下程式碼片段會從廣告群組中擷取三個關鍵字:

let adGroupId = 123123;
let keywordSelector = AdsApp.keywords().withIds([
    [adGroupId, 234234],
    [adGroupId, 345345],
    [adGroupId, 456456]
]);

擷取廣告時也適用相同的建構函式。

臨時編號

使用含有多項作業的變動要求時,您偶爾需要使用暫時 ID 將資源彼此連結,因為您必須等到 API 回應傳回後,才能取得完整資源名稱。臨時 ID 必須是從 -1 開始的負數,且不得在同一個變動要求中重複。如要有效使用臨時 ID,您必須編寫一些程式碼,確保不會建立重複的臨時 ID:

let nextId = -1;

function getNextTempId() {
    const ret = nextId;
    nextId -= 1;
    return ret;
}

每次後續呼叫 getNextTempId 時,傳回的數字都會比前一次少 1。由於所有暫時 ID 都必須是負數,因此請從 -1 開始。

臨時 ID 不會跨工作或變更要求保留。如要參照先前變更要求中建立的資源,請使用實際的資源名稱。