Селекторы

Селекторы помогают программисту составить запрос, который извлекает нужные объекты Google Рекламы. С помощью селекторов можно сузить список извлекаемых объектов и упорядочить его. Большинство селекторов имеют следующие методы:

withCondition()
Добавляет условие в селектор. Если используется несколько условий, они объединяются с помощью операции «И», другими словами, селектор будет возвращать только те объекты, которые удовлетворяют всем указанным условиям.
withIds()
Добавляет коллекцию идентификаторов в качестве условия. Условие на основе идентификатора будет объединено с помощью оператора AND вместе со всеми остальными.
forDateRange()
Требуется, когда условие или пункт заказа ссылается на поле статистики , например Ctr или Impressions. Если вы запросите все кампании с более чем 100 показами, скриптам Google Рекламы потребуется знать диапазон дат для анализа.
orderBy()
Указывает порядок возвращаемых сущностей.
withLimit()
Ограничивает количество возвращаемых объектов указанным значением. Это особенно полезно в сочетании с orderBy() для получения таких данных, как «10 ключевых слов с наибольшим количеством показов вчера». По умолчанию все селекторы установят ограничение в 50 000. Вы можете увеличить лимит, указав лимит вручную.

Эти методы можно вызывать в любом порядке. Единственным исключением является orderBy() , где порядок вызовов действительно имеет значение: несколько вызовов этого метода будут указывать несколько предложений упорядочивания, и они будут применяться по порядку. Рассмотрим следующий фрагмент:

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

Результаты будут упорядочены по кликам в порядке убывания. Результаты с одинаковым значением кликов будут упорядочены по Ctr в порядке возрастания.

Вызовы методов селектора могут быть объединены в цепочку. Следующий код

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() .

Прочтите рекомендации и рекомендации по эффективному использованию селекторов.