Привет! Мы — Penguin-team, агентство контекстной рекламы, а это — наш блог по бизнесу, маркетингу и РРС. Каждый месяц мы выпускаем гайды, статьи и инструкции о том, как работать с eCommerce, брендировать, настраивать Google Рекламу и другие каналы трафика.
Наш блог читают маркетологи, SEM-специалисты и предприниматели; его рекомендуют на SEMConf и других конференциях.
Еще больше уникальных материалов — в рассылке 👇 Подписывайтесь!
Получать еще больше уникальных материалов 👉🏻
Спасибо за подписку!
Справочник по кастомизации скриптов. Селекторы
14.01.2019
19 минут
hard

Александр
ex php backend developer

Минимум слов. Максимум дела.
В одном письме в месяц
7-дневный курс по Google Ads (Junior+)
Скрипты — это отличная возможность автоматизировать РРС-задачи (и не только), экономить время на ручном труде и сосредоточиться для аналитике, оптимизации и стратегии. Базовые возможности скриптов и основы языка JavaScript мы рассматривали в статье «Скриптология Penguin-team». Если вы не знакомы с JavaScript, советуем сначала прочесть ее.
Этот справочник разработан и написан Александром Михайленко — пингвиньим разработчиком и специалистом по решению всех (не)решаемых пингвиньих задач. В цикле статей о том, как кастомизировать Google Ads Script под себя, он рассмотрит самые значимые части скриптов и расскажет о том, как их изменять и какие параметры туда вообще можно записывать.
Запасайтесь кофейком и поехали!
Сегодня мы начнем с рассмотрения такой вещи, как «селектор».
Селекторы — это, на самом деле, набор функций, которые позволяют задавать определенные условия для получения данных. Селекторы могут применять практически ко всем сущностям в рамках скрипта Google Ads. Вы можете получать аккаунты по определенным параметрам, выбирать кампании, группы, ключевые слова и так далее. Поэтому важно понимать принцип работы селекторов перед внесением изменений в условия.
Наш сегодняшний пример — про получение ключевых слов по разным селекторам.
Рассмотрим вот такой участок скрипта:
Словами это звучит так: хочу получить все ключевые слова со статусом «Включен» по какой-то определенной кампании, с параметром Impressions больше нуля и средней позицией больше одного, при этом список полученных слов нужно отсортировать по позиции от меньшей к большей и, наконец, получить слова за вчерашний день.
Словами описать этот кусочек кода вышло даже дольше, чем написать программно, но суть теперь понятна.
Только вот наша задача — не просто понять код, но и изменить его под себя, кастомизировать. Например, указать иной диапазон дат или изменить другие параметры (метрики).
Именно сейчас мы сделаем самую «сочную» выжимку из технической документации, чтобы рассказать, что сюда вообще можно вписывать и какой результат можно получить в итоге.
Какие селекторы применимы для ключевых слов
Эта таблица приводит список селекторов (функций), которые можно применить к ключевым словам. На 80% эти же селекторы повторяются для других сущностей: групп объявлений, кампаний, расширений объявлений и так далее.
Селектор | Описание |
Устанавливает период выборки. Может быть стандартный или собственный. | |
Функция, которая применяется в конце всей выборки, именно она отвечает за получение данных. | |
Селектор для указания сортировки данных, к примеру, от большего к меньшему. | |
Основной селектор-фильтр. Именно он указывает параметры отбора. | |
Селектор для отбора ключевых слов по их id. | |
Селектор лимита (количества) данных. |
Селектор forDateRange()
Это фильтр по дате (временному диапазону) выборки данных. Он может быть записан в двух вариантах:
- стандартные диапазоны;
- кастомные (свои) даты.
Стандартные диапазоны из самого интерфейса Google Ads включают:
Кастомные даты задаются при помощи этого же селектора в формате «годмесяцдень», записанные слитно, БЕЗ слешей:
Селектор orderBy
Селектор для указания сортировки данных. Используется, когда нужно отобразить на экран полученные данные или же записать их в документ на Google Диске. К примеру:
Если нужно применить сразу несколько сортировок, они могут быть записаны следующим образом:
Селектор withCondition
withCondition — самый обширный селектор. Он указывает метрики и принципы их выборки. К примеру, что можно с ним делать:
- выбрать элемент с определенной меткой или меткой, которая содержит определенную формулировку;
- выбрать только включенные или только отключенные кампании;
- отобрать элементы, которые соответствуют определенной метрике, к примеру, только к ключи с 50 показами и больше; кампании с конверсиями до 10 штук и так далее.
Для работы с селекторами важно разбираться в том, какие типы данных существуют и как происходит выборка конкретных данных из всего набора.
Здесь вам уже нужно будет понимать немного разницу между типами данных и в принципах их выборки из набора данных. Более подробно с типами данных можно познакомиться на LoftBlog. А мы начнем с принципов сравнения данных и механизмов получения:
Для типа Integer И Long (целые числа). Например, Impressions, Clicks:
- < – меньше
- <= – меньше или равно
- > – больше
- >= – больше или равно
- = – равно
- != – не равно
Для типа Double (дробные числа). Например, Ctr, AveragePosition:
- <
- >
Для типа String. Например, Name:
- =
- !=
- STARTS_WITH – начинается с
- STARTS_WITH_IGNORE_CASE – начинаеся с без учета регистра
- CONTAINS – содержит
- CONTAINS_IGNORE_CASE – содержит без учета регистра
- DOES_NOT_CONTAIN – не содержит
- DOES_NOT_CONTAIN_IGNORE_CASE – не содержит без учета регистра
Для типа Enumeration (специальный перечисляемый тип данных). Например Status:
- =
- !=
- IN [] – входит в
- NOT_IN [] – не входит в
- Для типа StringSet (например LabelNames):
- CONTAINS_ALL [] – содержит все из
- CONTAINS_ANY [] – содержит некоторые из
- CONTAINS_NONE [] – не содержит ничего из
Селекторы типа IN, NOT_IN, CONTAINS_ALL, CONTAINS_ANY и CONTAINS_NONE записывают в таком формате:
Теперь рассмотрим столбцы (колонки), которые могут участвовать для выборки данных.
Примечание: все колонки чувствительны к регистру букв
Столбец | Тип данных | Пример |
Stats | ||
AverageCpc | Double | withCondition(“AverageCpc < 1.45”) |
AverageCpm | Double | withCondition(“AverageCpm > 0.48”) |
AverageCpv | Double | withCondition(“AverageCpv < 0.23”) |
AveragePageviews | Double | withCondition(“AveragePageviews > 0”) |
AveragePosition | Double | withCondition(“AveragePosition > 7.5”) |
BounceRate | Double | withCondition(“BounceRate < 0.5”) |
Clicks | Long | withCondition(“Clicks >= 21”) |
ConversionRate | Double | withCondition(“ConversionRate > 0.1”) |
Conversions | Long | withCondition(“Conversions <= 4”) |
Cost | Double | withCondition(“Cost > 4.48”). |
Ctr | Double | withCondition(“Ctr > 0.01”). |
Impressions | Long | withCondition(“Impressions != 0”) |
Keyword attributes | ||
Status | Enumeration: ENABLED, PAUSED, REMOVED | withCondition(“Status = PAUSED”) |
Text | String | withCondition(“Text STARTS_WITH ‘leather'”) |
KeywordMatchType | Enumeration: BROAD, EXACT, PHRASE | withCondition(“KeywordMatchType = PHRASE”) |
MaxCpc | Double | withCondition(“MaxCpc > 0.50”). |
DestinationUrl | String | withCondition(“DestinationUrl CONTAINS ‘example.com'”) |
FinalUrls | String | withCondition(“FinalUrls CONTAINS ‘example'”) |
QualityScore | Integer | withCondition(“QualityScore >= 6”) |
FirstPageCpc | Double | withCondition(“FirstPageCpc < 1.00”). |
TopOfPageCpc | Double | withCondition(“TopOfPageCpc < 3.00 |
AdGroupName | String | withCondition(“AdGroupName CONTAINS_IGNORE_CASE ‘shoes'”) |
AdGroupStatus | Enumeration: ENABLED, PAUSED, REMOVED | withCondition(“AdGroupStatus = ENABLED”). |
CampaignName | String | withCondition(“CampaignName CONTAINS_IGNORE_CASE ‘promotion'”) |
CampaignStatus | Enumeration: ENABLED, PAUSED, REMOVED | withCondition(“CampaignStatus = ENABLED”). |
LabelNames | StringSet | withCondition(“LabelNames CONTAINS_ANY [‘Xmas’, ‘New Year’]”). |
Все эти столбцы вы можете использовать при выборке ключевых слов и комбинировать абсолютно разные условия для получения данных.
Селектор withIds
Селектор withIds позволяет выбирать слова по конкретным ID. Используется уже не так часто, так как прописывать ID слов в коде довольно трудозатратно. Чаще он встречается на программном уровне, когда ID выбираются автоматически из одного источника и подставляются в другой.
Этот селектор работает с массивами данных, поэтому вам следует внимательно их заполнять, если это потребуется.
Массив — это упорядоченный набор данных. Он используется для хранения данных одного типа, которые идентифицируются с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.
Количество используемых индексов массива может быть различным: массивы с одним индексом называют одномерными, с двумя — двумерными и т.д. Одномерный массив — нестрого соответствует вектору в математике; двумерный («строка», «столбец») — матрице. Чаще всего применяются массивы с одним или двумя индексами; реже — с тремя; ещё большее количество индексов встречается крайне редко.
Массив выглядит следующим образом:
Это значит, что данные только такого формата могут быть переданы в этот селектор. Если вы передадите туда например просто такую строку:
То скрипт выдаст ошибку, так как сам селектор ожидал тип данных «массив», а вы ему передали «число».
Пример заполнения и использования селектора:
Селектор withLimit
Этот селектор задает количество получаемых результатов, их лимит. Например:
Учитывайте, что если вы используете селектор сортировки, то при смене принципа сортировки (от большего к меньшему и наоборот) вы будете получает разные 10 результатов.
forDateRange, orderBy, withCondition, withIds, withLimit — эти 5 селекторов встречаются в 80% скриптов. Единственными отличиями будут сущности (типы информации), которую вы сможете добывать при помощи таких селекторов. К примеру, при выборе кампаний могут добавится столбцы, которых нет у ключевых слов или же у групп объявлений. Но изучив скриптологию и справочник по кастомизации, вы уже поймете устройство скриптов, их механизм работы и принципы изменения.
Статья была полезна? Ставьте ♥ и пишите свой фидбек в комментарии ↓ Используйте скрипты из подборки для Google Ads, автоматизируйте свой труд и больше отдыхайте, пускай за вас работает Google 🙂






103295
79
11 минут
49454
35
6 минут
43986
42
10 минут
43417
58
8 минут
41612
30
12 минут

ex php backend developer
Ex-пингвин. Ранее активно занимался разработкой интернет-магазинов, созданием продуктов, API сервисов. Дополнительно занимался преподаванием курса php для новичков в течении 1,5 года.

