Это расшифровка вебинара Юлии Торговцевой — специалиста по контекстной рекламе агентства Netpeak.

Запись вебинара:

И сегодня мы с вами поговорим об основных скриптах, об автоправилах и их настройках, о стратегиях назначения ставок, и также как удобно добавлять расширения в аккаунт, используя шаблон Google Docs. Главная тема — автоматизация контекстной рекламы

Если вы не используете автоматизацию в Google AdWords для ваших рутинных задач, то ваша работа в рекламных кампаниях печально выглядит. Вы в быстром темпе постоянно обновляете и корректируете ставки, проверяете ссылки, вам приходится останавливать и выявлять вручную неэффективные объявления и ключи. Конечно же, все это отнимает очень много времени.

Скрипт — поиск битых ссылок

script1

Итак, начнем со скрипта для проверки и поиска битых ссылок. Он называется Link Checker. И сейчас я покажу как он настраивается.

script for checking and searching for broken links

Так, для того, чтобы настроить этот скрипт, нужно создать копию вот такого шаблона.

link-checker

заходите и копируйте

Вот он у меня уже создан.

test-link-checker

И в презентации также есть все ссылки на шаблоны и скрипты. Для удобства можем в названии файла добавить название сайта, для которого этот скрипт будет использоваться.

blue-test-link-checker

И также здесь нужно установить настройки доступа для редактирования по ссылке:

loading

shared access

В шаблоне мы также устанавливаем настройки.

settings-test-link-checker

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

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

Дальше что нужно сделать для того, чтобы настроить этот скрипт. Нам нужно скопировать его код

google-adwords

google-adwords-kod

Вот такой он у нас большой. Он у меня уже открыт.

Ссылка на него. Мы копируем этот код. Далее идем в "массовые операции":

google adwords all company

Затем в “скрипты”:

google-adwords-journal

Вот он у меня:

google-adwords-script-loading

Добавляем его:

add-script

Не забываем указать ссылку на наш Google Docs:

add-src

Указываем email, на который потом придёт отчёт и запускаем скрипт.

run script

На просмотре его запускать не нужно, его нужно запускать сразу на выполнение. Вот “выполнить скрипт”. Этот скрип не вносит никаких изменений в аккаунт, он помечает ярлыками проверенные объявления. Максимальное время сканирования - 30 минут. Максимальное количество ссылок, которые скрипт может сканировать за один цикл - это 20.000.

Также есть

аналогичный скрипт для проверки ссылок сразу во всем MCC

И вот я вижу, что у меня 25 успешных изменений. Я выхожу на почту, чтобы посмотреть отчет, который прислал мне скрипт. Вижу письмо и иду по присланной ссылке.

25 successful changes

view report

Здесь во вкладке “результаты” мы видим, что у нас есть видна битая ссылка. Мы видим в какой она есть компании, в какой группе, и в каком объявлении.

Скрипт для остановки товаров не в наличии

scripts2

Это

скрипт для остановки товаров, отсутствующих в наличии

Для его настройки необходимо добавить код в интерфейс.

latest-result

Вот он у меня уже тоже настроен.

google adwords_

google adwords keyword

loading keyword

Так, нужно добавить код. Потом мы задаем здесь настройки, то есть мы будем сканировать ссылки на уровне ключей или на уровне объявлений. Можем также для удобства добавить два разных скрипта, которые буду проверять ваши ссылки как на уровне ключей, так и на уровне объявлений. Далее мы заходим на наш сайт для того, чтобы увидеть как в нашей карточке товара указывается текст, который информирует пользователя о том, что товара нет в наличии.

То есть у меня вот для примера есть сайт makeup.com.ua:

makeup

Вот мы видим, что товар данного нет в наличии. Поэтому мы просто копируем это текст

makeup product

и вставляем его в скрипт.

google adwords keyword watch

Далее я хочу также показать, что у этого скрипта есть такая возможность Описание: Скрипт проходит по всем ссылкам в активных кампаниях (var ONLY_ACTIVE = true) или во всех кампаниях в аккаунте (var ONLY_ACTIVE =.false). Скрипт проверяет ссылки на уровне ключей (var URL_LEVEL = 'Keyword') или объявлений (var URL_LEVEL = 'Ad') Дополнительно в журнале скрипт помечает 404-е (There was an issue checking:http://testurl.com/catalog/test-product, Skipping) Текст задается в: var OUT_OF_STOCK_TEXTS = [ 'текст' ]; 6. При необходимости можно добавлять фразы. Пример: var OUT_OF_STOCK_TEXTS = [ 'текст1', 'текст2' ]; Скрипт: var URL_LEVEL = 'Ad'; // or Keyword var ONLY_ACTIVE = true; // set to false to check keywords or ads in all campaigns (paused and active) var CAMPAIGN_LABEL = ''; // set this if you want to only check campaigns with this label var STRIP_QUERY_STRING = true; // set this to false if the stuff that comes after the question mark is important var WRAPPED_URLS = true; // set this to true if you use a 3rd party like Marin or Kenshoo for managing you account // This is the specific text (or texts) to search for // on the page that indicates the item // is out of stock. If ANY of these match the html // on the page, the item is considered "out of stock" var OUT_OF_STOCK_TEXTS = [ 'Товар отсутствует' ]; function main() { var alreadyCheckedUrls = {}; var iter = buildSelector().get(); while(iter.hasNext()) { var entity = iter.next(); var urls = []; if(entity.urls().getFinalUrl()) { urls.push(entity.urls().getFinalUrl()); } if(entity.urls().getMobileFinalUrl()) { urls.push(entity.urls().getMobileFinalUrl()); } for(var i in urls) { var url = cleanUrl(urls[i]); if (url.indexOf("/product") == -1 && url.indexOf("/set") == -1 ) { continue; } if(alreadyCheckedUrls[url]) { if(alreadyCheckedUrls[url] === 'out of stock') { entity.pause(); } else { //entity.enable(); } } else { var htmlCode; try { htmlCode = UrlFetchApp.fetch(url).getContentText(); } catch(e) { Logger.log('There was an issue checking:'+url+', Skipping.'); continue; } var did_pause = false; for(var x in OUT_OF_STOCK_TEXTS) { if(htmlCode.indexOf(OUT_OF_STOCK_TEXTS[x]) >= 0) { alreadyCheckedUrls[url] = 'out of stock'; entity.pause(); did_pause = true; break; } } if(!did_pause) { alreadyCheckedUrls[url] = 'in stock'; //entity.enable(); } } Logger.log('Url: '+url+' is '+alreadyCheckedUrls[url]); } } } function cleanUrl(url) { if(WRAPPED_URLS) { url = url.substr(url.lastIndexOf('http')); if(decodeURIComponent(url) !== url) { url = decodeURIComponent(url); } } if(STRIP_QUERY_STRING) { if(url.indexOf('?')>=0) { url = url.split('?')[0]; } } if(url.indexOf('{') >= 0) { //Let's remove the value track parameters url = url.replace(/\{[0-9a-zA-Z]+\}/g,''); } return url; } function buildSelector() { var selector = (URL_LEVEL === 'Ad') ? AdWordsApp.ads() : AdWordsApp.keywords(); selector = selector.withCondition('CampaignStatus != DELETED').withCondition('AdGroupStatus != DELETED'); if(ONLY_ACTIVE) { selector = selector.withCondition('CampaignStatus = ENABLED'); if(URL_LEVEL !== 'Ad') { selector = selector.withCondition('AdGroupStatus = ENABLED'); } selector = selector.withCondition("Status = ENABLED"); } if(CAMPAIGN_LABEL) { if(AdWordsApp.labels().withCondition("Name = '"+CAMPAIGN_LABEL+"'").get().hasNext()) { var label = AdWordsApp.labels().withCondition("Name = '"+CAMPAIGN_LABEL+"'").get().next(); var campIter = label.campaigns().get(); var campaignNames = []; while(campIter.hasNext()) { campaignNames.push(campIter.next().getName()); } selector = selector.withCondition("CampaignName IN ['"+campaignNames.join("','")+"']"); } else { Logger.log('WARNING: Campaign label does not exist: '+CAMPAIGN_LABEL); } } return selector; }

Он может проверять не все ссылки, а, например, если вы не хотите, чтобы скрипт проверял категорию

products

Например, если у вас есть ссылка на категорию, и в категории есть товары, которых нет в наличии. Если мы запустим скрипт на проверку полностью всего сайта, он остановит нам вполне рабочие категории, чего нам не нужно. Поэтому мы можете скопировать из ссылки вот, например, product

product

В этой ссылке это указывает, что это ссылка, которая ведет именно на продукт. И также помещаем ее.

not available

Вот в файле я пометила разными цветами, что это именно те ключевые слова, которые указывают скрипту что именно, какие именно ссылки мы будем проверять. Вот здесь у меня указаны типы. То есть можно, по мере необходимости, добавлять или, если мы сканируем продукт, то можем просто удалить и оставить так. В общем можем оставить только тот тип ссылки, который нам нужен.

Далее мы уже запускаем/выполняем этот скрипт

view

preview

preview2

И можно сразу в “журнале” следить и мы будем видеть, что у нас есть ссылки, информирующие о том, что товара нет в наличии

the product is out of stock

Также этот скрипт помечает ссылки вот 404, некорректные. Но он их не останавливает, а просто пропускает при сканировании

there is a product that is not in stock

И видим также, что у нас есть товар, которого нет в наличии.

change

И если посмотреть на “изменения”, которые внес скрипт, то мы видим, что он приостановил. Что было включенное объявление. И оно - приостановлено.

Аналогичным образом у меня здесь настроен скрипт для ключевых слов и для объявлений

configured script for keywords

Скрипт для исключения нерелевантных площадок в контекстно-медийной сети - КМС

scripts3

Для того, чтобы нам его настроить нам опять нужно

добавить скрипт в аккаунт

placement

Он у меня уже здесь также загружен. Он называется Placement Cleaner.

Placement Cleaner

Поиск всех площадок идёт по всему аккаунту. В квадратных скобочках, мы можем задавать площадки, которые нам нужно исключить.

Мы заранее удалим такие нерелевантные площадки и будем знать, что таким образом у нас не сливается бюджет на ненужные показы.

После того, как мы добавили скрипт, нам надо задать период учета в статистике. Можно просто удалить все данные, чтобы скрипт сканировал данные за весь период.

Этот скрипт будет применяться к конкретному списку кампании. Переходим в кампанию контекстно-медийная сеть, места размещения aplus таргетинг и выбираем исключения для компании и места размещения Пинки. Видим что у нас остался список placement Cleaner лист.

Автоправила — что это и зачем нужны

С помощью автоправила мы можем планировать запуск и остановку рекламы, корректировать ставки и бюджет. При этом сохраняя позиции, а вы рекламной выдаче мы можем отключать неэффективные элементы ( неэффектиыне объявления, ключевые слова). В КМС контролировать расходы а также получать уведомления на почту.

Я подобрала несколько интересных автоправил.

Auto-rule1

Повышение ставок для ключей с падающими добавками а то есть например если у вас есть ключевой блок купить которые вам приносят конверсию можно для него например поднять ставки ае переходим непосредственно к настройке

Переходим в кампанию выбираем автоматизацию.

изменить максимальную цену за клик

область применения

Auto-rule2

А также можем настроить частоту выполнения (ежедневно — как пример, один раз либо ежедневно в определенное время).

Отключение неэффективных площадок в КМС

Auto-rule3

То есть если мы уже отключили в кампании такие площадки, которые содержат в себе игры и нерелевантные площадки. Мы также можем отключать и неэффективные площадки с очень высокими ценами. Если мы видим, что кликов по объявлению чересчур много, значит оно размещено, например, в приложении для детей, либо в другом ненужном месте.

Переходим к настройке:

в кампанию КМС

места размещения

приостановить места размещения

останавливаем самые активные ( выбираем кликером количество кликов и показов)

для того чтобы чтобы мы не отключали площадки, по которым у нас еще нет статистики.

Удержание средней позиции для ключевых слов

Auto-rule4

Позволит нам удерживать среднюю позицию не ниже, чем третья позиция. Мы можем также при необходимости задать максимальную ставку, либо выбирать на сколько процентов повышаем ставку при необходимости.

Выбираем при настройке правила:

автоматизация

создать правило

ключевые слова

изменить максимальную цену за клик

Задаем частоту.

Когда у нас будет выполняться это правило а не забываем о предпросмотре и сохраняем его.

Для отключения неэффективных источников

Auto-rule

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

Всегда используем предпросмотр.