AdWords, Яндекс, Левенштейн!

AdWords, Яндекс, Левенштейн!

Dmytro Tonkikh

Благодаря этим трем компонентам возможно добавлять новые ключевые слова в аккаунт AdWords из поисковых запросов практически без ошибок и опечаток!

Вы прочитали все правильно, теперь работать с поисковыми запросами станет немного легче.

К примеру, вот как выглядит отчет по поисковым запросам:

рисунок 1

Из данного отчета желательно добавить поисковые запросы со статусом None в группу объявлений в качестве ключевых слов. Это хорошие частотные слова, но немного в другой интерпретации.

Вот теперь представьте, что у вас таких групп очень много и каждый недобавленный запрос нужно проверить в excel. Почистить таблицу от слов с ошибками или написанными на другой раскладке - fdnjrhtckj 4baby. Далее добавить в нужную группу кампанию.

Никогда не думал, что скажу такое, но нам поможет Яндекс. Точнее, его сервис Яндекс.Спеллер, который помогает находить и исправлять орфографические ошибки в русском, украинском или английском тексте. У данного сервиса есть бесплатное API, с помощью которого и возможно проверять слова с ошибками в AdWords Scripts.

Но Яндекс не совершенен, и нужна еще одна проверка на соответствие похожести строк и наличие опечаток. Для этого отлично подходит расстояние Левенштейна - это минимальное количество операций вставки одного символа, удаления одного символа и замены одного символа на другой, необходимых для превращения одной строки в другую. Например, расстояние Левенштейна для фраз [автокресла 4baby] и [автокресло 4 baby] будет равно 2, так как в первой фразе необходимо изменить одну букву и поставить пробел, чтобы получить вторую фразу и наоборот.

Чем больше расстояние Левенштейна, тем больше различаются строки.

Для чего все это?

А для того, чтобы при помощи AdWords Scripts, автоматически добавлять поисковые запросы, которые максимально похожи на ключевые слова, в группы объявлений, где были показы по этим запросам. Таким образом, можно расширять аккаунт только словами с частотностью и написанными без ошибок.

Как работает скрипт?

  1. Из отчета по поисковым запросам выгружаем только поисковые запросы, которые еще не были добавлены или исключены из аккаунта и имеют точный тип соответствия (близкий вариант). Данный тип больше всего подходит для обработки, но также можно добавить и фразовое соответствие (близкий вариант).
  2. С помощью Яндекс.Спеллер проверяем, есть ли в поисковом запросе ошибки. Если их много, то данное слово не будет добавлено. Но если ошибка только одна и массив с рекомендуемыми словами-заменами содержит слово с ошибкой, то такое слово мы тоже добавляем (рисунок 2).
  3. Находим расстояние Левенштейна между поисковым запросом и ключевым словом. В настройках скрипта задаем оптимальное расстояние, которое не допускает слишком больших изменений.
  4. Проверка на количество слов в каждой фразе. [автокресла 4baby] содержит 2 слова, а [автокресло 4 baby] - 3. Их разность будет равна 1. Это ограничение также задаем в настройках.
  5. По завершению всех проверок слова добавляются в группы в точном соответствии и с ярлыком, который задан в настройках.
рисунок 2

На рисунке 2 изображено исключение, когда Яндекс.Спеллер считает, что в слове [квінні] есть ошибка, но данное слово является одним из заменителей в массиве замен S. Таким образом данный запрос будет добавлен.

рисунок 3

Рисунок 3 - расшифровка лога при выполнении скрипта

Настройки скрипта

campaignLabel — Ярлык на уровне кампаний, отмечаете им только те кампании, которые хотите обработать.

labelName — Имя ярлыка, который будет добавлен к новому ключевому слову

dateInLabel — Возможные значения true или false. При выборе true, скрипт будет создавать при каждом запуске ярлык с именем labelName + дата на момент запуска скрипта.

dateFormat — Формат даты, которая будет добавляться к ярлыку labelName

levensteinMin — Минимальное расстояние Левенштейна между ключевым словом и поисковым запросом

lengthDifference — разница в количестве слов поискового запроса и ключевого слова. [автокресла 4baby] содержит 2 слова, а [автокресло 4 baby] - 3. lengthDifference = 1.

minImressions — Минимальное количество показов поискового запроса. Задается для работы только с частотными поисковыми запросами.

dateRange — Период за который будут обрабатываться данные. Возможные текстовые значения TODAY | YESTERDAY | LAST_7_DAYS | THIS_WEEK_SUN_TODAY | THIS_WEEK_MON_TODAY | LAST_WEEK | LAST_14_DAYS | LAST_30_DAYS | LAST_BUSINESS_WEEK | LAST_WEEK_SUN_SAT | THIS_MONTH или формат "yyyyMMdd,yyyyMMdd" ("20180101,20180131")


Код скрипта доступен в telegram-канале - https://t.me/adwordsscripts


Для благодарностей и развития канала:

Яндекс.Деньги - Monobank