Pull to refresh

Пример использования Google AdWords API

Reading time5 min
Views8.9K

Многие рекламодатели знают о преимуществах использования API в контекстной рекламе. Допустим, вам нужно запустить рекламную кампанию с большим количеством однотипных объявлений, но для разных товаров. В этом случае и приходит на помощь API-интерфейс. Вы легко и быстро переносите данные из базы MySQL в рекламную кампанию. И все! Дело сделано. Можно немного подредактировать и запускать. Именно такой схемой мы неоднократно пользовались для рекламы нашего книжного магазина в Яндекс.Директе.

А вот с Google Adwords все оказалось далеко не так просто. Мы долго пытались использовать эту схему в Adwords, переворошили кучу информации в Интернете, пока не узнали следующее от службы поддержки Google:

На данный момент AdWords API не доступен для рекламодателей РФ. Приносим извинения за неудобства.<br>
На данный момент мы не имеем точных сроков запуска. Как только это будет сделано, мы обязательно сообщим рекламодателям РФ о данной функции.<br>

Очень-очень жаль. Но мы не теряем надежды, что рано или поздно Google откроет возможность использовать API-интерфейс и у нас в России. Именно для такого случая мы решили рассказать подробно о нашем примере использования API в Adwords. Наш пример на ура работал на тестовом сервере Google, но не заработал на рабочем сервере по вышеуказанным причинам.
Схема эта довольно нетривиальна, поэтому в будущем (когда API для Adwods в России будет открыт) многим облегчит жизнь.

Шаг 1. Создание PHP кода


Сначала создаем PHP код для переноса данных из базы MySQL сайта в AdWords. Последнюю версию PHP библиотеки можно скачать с этой страницы. Так же, по этой ссылке можно найти много полезной информации, которая необходима в процессе написания кода.

Наш пример использования Google AdWords API для переноса данных из базы MySQL сайта в AdWords можно скачать здесь в виде архива. Примечание: при скачивании этого архива в Windows антивирус NOD может на долго задуматься.
Данный архив содержит следующие файлы:
  • aw_api_php_lib_2.2.0 — библиотека PHP от Google
  • example.php — исполняемый файл содержащий пример кода
  • logfile_2011_01_26_13_58_09.txt — пример лога в результате работы example.php

Стоит обратить внимание, что на данный момент последняя версия библиотеки — 2.4.1
В примере используется более старая версия — 2.2.0

Код в example.php имеет комментарии, которые должны помочь при разработке своей версии экспортера. Далее описаны основные шаги, которые выполняются в примере.

1.1 Инициализация начальных параметров

Блок кода содержит инициализацию параметров и создание необходимых объектов из библиотеки aw_api_php_lib_2.2.0. Во время работы программы библиотека пишет свои логи в директорию ./aw_api_php_lib_2.2.0/src/Logs Помимо этого скрипт example.php записывает процесс работы в свой собственный лог файл.

1.2 Получение данных из SQL и заполнение $booksArray

На наш взгляд данный блок кода является самым сложным участком работы. В нем необходимо реализовать алгоритм, который будет превращать информацию о товаре в объявление в AdWords. Сложность заключается в том, чтобы применяя один и тот же алгоритм, формировать эффективные объявления для всех товаров.
В примере используется следующий алгоритм экспорта данных:
  1. Из SQL берется информация о книге: автор, название, url.
  2. Из информации об авторе формируется заголовок для объявления.
  3. Из информации о названии книги формируются два текстовых поля для тела объявления.
  4. Из информации об авторе и названии книги формируются ключевые фразы для объявления.
  5. Сформированная информация сохраняется в массив $booksArray для дальнейшей отправки на сервер.

При формировании объявления мы не забываем о правилах Adwords:
  • Длинна заголовка объявления должна быть меньше 25 символов. Подробнее.
  • Длинна одного блока в теле объявления должна быть меньше 35 символов. Блоков должно быть два.
  • Слов в фразе для объявления должно быть меньше 10.
  • Некоторые символы использовать в объявлении нельзя. Подробнее.


1.3 Остальные блоки кода

Остальные блоки кода в примере на основе сформированных данных в $booksArray создают объекты библиотеки aw_api_php_lib_2.2.0 и отправляют их на сервер Google.
Порядок создания и отправки информации следующий:
  1. При необходимости создаем кампанию или используем уже существующую.
  2. Создаем группы, которые будут содержать объявления.
  3. В группы добавляем объявления.
  4. В группы добавляем ключевые фразы для объявлений.


Шаг 2. Тестирование кода


Для тестирования Google предоставляет специальный тестовый сервер, на котором можно проверить работу скриптов. Чтобы использовать тестовый сервер, делаем следующее:
  1. Создаем Google акаунт с определенным email.

  2. Определяем, какой сервер использовать (тестовый или рабочий), в файле ./aw_api_php_lib_2.2.0/src/Google/Api/Ads/AdWords/settings.ini

    Для работы с тестовым сервером необходимо поставить
    DEFAULT_SERVER = "https://adwords-sandbox.google.com"

    Для работы с рабочим сервером необходимо поставить
    DEFAULT_SERVER = "https://adwords.google.com"

    Стоит обратить внимание на параметр DEFAULT_VERSION = "v200909". Он определяет версию библиотеки, которая будет использоваться.

  3. Данные для аутентификации библиотека берет из файла ./aw_api_php_lib_2.2.0/src/Google/Api/Ads/AdWords/auth.ini
    Пример содержания файла для тестового сервера:

    email = "adwords@rekomenda.ru"<br>
    password = "password"<br>
    userAgent = "Rekomenda"<br>
    applicationToken = "ignored"<br>
    developerToken = "adwords@rekomenda.ru++RUB"<br>
    <br>
    ; Uncomment to make requests against a client account.<br>
    clientId = "client_1+adwords@rekomenda.ru"<br>


    Пример содержания файла для рабочего сервера:

    email = "adwords@rekomenda.ru"<br>
    password = "password"<br>
    userAgent = "Rekomenda"<br>
    applicationToken = "ignored"<br>
    developerToken = "ro_GxDwRQebsFELl34jknEVg"<br>
    <br>
    ; Uncomment to make requests against a client account.<br>
    clientId = "123-456-7890"<br>


  4. Создаем аккаунт My Client Center (MCC) в тестовом сервере. Для этого необходимо вызвать метод GetCampaignService(). Этот метод есть в примере, поэтому можно отдельно его не вызывать.



Шаг 3. Создание My Client Center


У нас уже есть обычный аккаунт AdWords. Но как оказалось, обычного аккаунта AdWords для использования API недостаточно. Для использования AdWords API необходимо создать My Client Center (MCC) и привязать его к обычному акаунту AdWords.

  1. Создаем MCC на этой странице.
  2. Связываем обычный аккаунт AdWords c MCC.
  3. В MCC настраиваем и активируем AdWords API Center. Стоит обратить внимание, что при активации можно указать, что вы используете API для своего личного бизнеса. В этом случае, возможно, вам будут предоставлены бесплатные API юниты. Подробнее о стоимости юнитов здесь.


После активации MCC AdWords API Center будет выглядеть приблизительно так:


Полученный Developer token необходимо указать в auth.ini файле.
Изменяем параметры файлов settings.ini и auth.ini для использования рабочего сервера (как было указано выше) и в теории можно приступать к экспорту данных в рабочий AdWords.

Шаг 4. Ожидание у моря погоды



При попытке экспортировать данные не в тестовый сервер, а в рабочий возникает ошибка: INCOMPLETE_SIGNUP_LATEST_NETAPI_TNC_NOT_AGREED

Эта ошибка как раз и означает то, что Google Adwords API не поддерживается в России.
Будем надеяться, что возможность использовать AdWords API все таки в России появится.
В дальнейших постах планируем описать более удачный пример экспорта данных с использованием Яндекс.Директ API.

UPD В комментариях к этому топику мне подсказали, что на самом деле AdWords API в РФ доступен и активно используется многими компаниями. А служба поддержки ввела меня в заблуждение.
Однако оплатить использование АПИ банковской картой пока нельзя. Чтобы получить доступ, необходимо обратиться в тех поддержку и организовать кредитную линию. Для этого придется подписать соглашение (Terms and Conditions) на бумаге, на русском. Соглашение можно отправить по почте. Тех. поддержка включает после этого доступ вручную.
Строго списка требований для открытия кредитной линии нет, часть требований можно посмотреть здесь. Решение принимается в индивидуальном порядке, по заявке.

UPD 2 Этот топик был по ошибке удален, но поскольку информация была полезна для некоторых пользователей, и к тому же в статье появилась новая актуальная информация, я решила опубликовать топик еще раз.
Tags:
Hubs:
Total votes 14: ↑9 and ↓5+4
Comments14

Articles