選擇器

設計人員可藉由選擇器建立查詢,擷取所需 Google Ads 實體。使用選取器,就能縮小擷取實體清單並排序。大多數的選取器都提供以下方法:

withCondition()
新增選取器的條件。如果使用多個條件,這些條件會以 AND 結合在一起,換句話說,選取器只會傳回符合「所有」指定條件的實體。
withIds()
新增一組 ID 做為條件。使用 ID 的條件會與所有其他條件以 AND 結合在一起。
forDateRange()
當條件或排序子句參照「統計」或「曝光次數」等欄位時,就需要用到這個欄位。如果要求曝光次數超過 100 次的所有廣告活動,Google Ads 指令碼就必須知道要查看的日期範圍。
orderBy()
指定傳回實體的排序方式。
withLimit()
將傳回的實體數量限制為指定值。與 orderBy() 搭配使用特別實用,可擷取「昨天曝光次數最多的 10 個關鍵字」等資料。所有選取器的限制都會預設為 50,000。如要提高上限,您可以手動指定上限。

這些方法可依任何順序呼叫。orderBy() 除外,因為呼叫順序確實很重要:如果多次呼叫這個方法,就會指定多個排序子句,並依序套用。請參考以下程式碼片段:

selector = selector.forDateRange("LAST_14_DAYS")
    .orderBy("metrics.clicks DESC")
    .orderBy("metrics.ctr ASC");

結果會按點擊次數遞減排序。點擊次數值相同的結果會按點閱率遞增排序。

對選取器方法的呼叫可鏈結在一起。以下程式碼

var campaignSelector = AdsApp.campaigns();
campaignSelector.withCondition("metrics.clicks > 10");
campaignSelector.withCondition("metrics.impressions > 1000");
campaignSelector.orderBy("metrics.impressions DESC");
campaignSelector.forDateRange("YESTERDAY");

也可以改寫成更精簡的狀態:

var campaignSelector = AdsApp.campaigns()
  .withCondition("metrics.clicks > 10")
  .withCondition("metrics.impressions > 1000")
  .orderBy("metrics.impressions DESC")
  .forDateRange("YESTERDAY");

建構選取器後,您可以呼叫 selector.get() 從選取器取得Iterator

如需有效選取器使用提示與秘訣,請參閱最佳做法