設計人員可藉由選擇器建立查詢,擷取所需 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。
如需有效選取器使用提示與秘訣,請參閱最佳做法。