Начните работать с нами
Оставьте заявку

Сбор данных по остаткам бюджета из Google Ads в Google Таблицы

Все мы стараемся не допускать ошибок при настройке и ведении рекламных кампаний. У кого-то это даже неплохо выходит; не без помощи автоматизации, конечно. Давайте разберём ещё один способ подавления проблем, связанных с простоем аккаунтов.

18 декабря 2018

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

Одним из путей решения данной проблемы является настройка оповещений об остатках средств. Это будет удобно, когда ответственных лиц и самих аккаунтов рекламных систем мало. Но что делать, когда у вас MCC аккаунт и свыше десятка ответственных лиц? Ответ лежит на поверхности — создать дашборд, в который будет подтягиваться информация об остатках средств со всех рекламных систем в разрезе клиента. Опционально можно добавить колонки, показывающие запас бюджета на N дней.

Из большинства рекламных систем получить данные довольно просто, достаточно почитать справку API. Но в случае с Adwords всё не так просто. Рассматриваемое далее решение не претендует на оригинальность и простоту внедрения, но оно не подводит и позволяет избегать простоев рекламных аккаунтов в Ads.

Ни в API Ads, ни в скриптах нет методов для запроса текущего баланса клиента, есть только методы для запроса информации о бюджетах аккаунтов, (можно узнать много информации, например размер бюджета, даты начала и окончания, размер корректировок, имя, id бюджета) но самое главное — сколько сейчас на счету средств — не узнать. И в API, и в скриптах все эти методы называются одинаково, а объекты имеют аналогичную структуру.

Про бюджеты в API:

https://developers.google.com/adwords/api/docs/guides/budget-order?hl=ru

https://developers.google.com/adwords/api/docs/reference/v201806/BudgetOrderService.BudgetOrder?hl=ru

Про бюджеты в скриптах:

https://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp_budgetorder?hl=ru

(Также в интерфейсе скриптов Ads есть примеры работы с бюджетами)

Как же быть, что же делать? Узнаем дату старта бюджета, которую можно либо запросить методом бюджета getStartDateTime, либо просто посмотрев дату создания аккаунта или бюджета. С помощью методов запрашиваем статистику по расходу (метод getStatsFor) от даты старта бюджета по настоящий день. Запрашиваем размер бюджета с помощью getSpendingLimit. Теперь остается из имеющегося бюджета отнять все расходы за рассматриваемый период; по идее мы получим значение текущего баланса, но нет, полученное число будет отличаться.

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

Отсюда рождается решение на коленке, реализуемое хоть скриптами, хоть API: получаем размер бюджета, вычитаем из него расходы за период, вычитаем подобранную константу, получаем примерное значение текущего баланса аккаунта. Очевидный минус в том, что недействительные клики и еще какие-либо перерасчеты не прекратятся, и значение этой вычитаемой константы надо будет периодически поправлять. Чтобы определиться с размером константы надо из текущего бюджета вычесть расходы и вычесть текущий баланс, который можно посмотреть в веб интерфейсе системы.

Почему у нас это сделано скриптами (в каждом клиентском аккаунте стоит типовой скрипт, разнятся только даты старта бюджетов и вычитаемые константы)? Спец следит за проектом, как только он видит, что получаемое значение баланса сильно начинает отклоняться от реального, он заходит в скрипты Ads и правит константу. На деле это выходит не чаще раза в 1-2 месяца. Если бы все это реализовывалось через API, то каждый спец передавал бы информацию программисту и постоянно дергал его. Внедрение скрипта быстрое, поддержка незатратная.

Скрипт сбора данных по остаткам бюджета из Google Ads в Google Таблицы доступен по ссылке.

Результатом работы скрипта становится массив из 3х значений: имя аккаунта, остаток, расход за 7 дней.

Эти значения вставляются в гугл таблицу, указанную в скрипте, в нашем случае — https://docs.google.com/spreadsheets/d/1eXXXX-XXXXXXXXXXXX/edit#gid=0.

Неважно в скольких аккаунтах будут работать такие скрипты, данные будут корректно вставляться в таблицу друг за другом, уникальным полем будет имя аккаунта. Скрипт Ads ставится на выполнение каждый час.

В таблице должен тоже работать скрипт, который будет срабатывать каждые 12 часов. Он будет очищать таблицу.

Код скрипта:

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