大多數 Google Ads 實體都會公開 getId() 方法,傳回其 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,傳回的數字都會比前一次少一。所有臨時 ID 都必須是負數,因此請從 -1 開始。
臨時 ID 不會跨工作或變更要求保留。如要參照先前變動要求中建立的資源,請使用實際的資源名稱。