Селекторы помогают программисту составить запрос, который извлекает нужные объекты Google Рекламы. С помощью селекторов можно сузить список полученных объектов и упорядочить его. Большинство селекторов имеют следующие методы:
withCondition()- Добавляет условие в селектор. Если задано несколько условий, они объединяются оператором И. Это значит, что селектор вернет только те объекты, которые соответствуют всем указанным условиям.
withIds()- Добавляет набор идентификаторов в качестве условия. Условие на основе идентификатора будет объединено с остальными оператором AND.
forDateRange()- Требуется, когда условие или предложение сортировки ссылается на поле Stats, например 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");
После создания селектора можно получить из него Iterator, вызвав selector.get().
Ознакомьтесь с рекомендациями по эффективному использованию селекторов.