Пожалуйста, опишите ошибку

Нашли баг? Помогите нам его исправить, заполнив эту форму

Новое в блоге: Анимация Skeleton

Что нужно знать перед тем, как начать работу с API рекламных сервисов Twitter Ads и Google Adwords

Дмитрий Валуйский
Web-разработчик

Многим разработчикам (и не только) приходилось работать с различными API публичных сервисов. Это очень удобно: они предоставляют необходимый функционал для того или иного приложения.

Что такое API? Обратимся к википедии:

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

Умение работать с API для программиста является ключевым фактором, независимо от сферы его работы (будь то мобильный разработка или разработка desktop-приложений).

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

Передо мной стояла следующая задача: создать приложение, объединяющее управление рекламными компаниями разных сервисов. Нам было необходимо реализовать методы для работы с сервисами Twitter Ads и Google Adwords.

Twitter Ads API позволяет интегрировать в рекламную платформу Twitter свои рекламные решения, создавать рекламные кампании в рамках Twitter Ads и управлять ими.

Google Adwords — это «сервис контекстной рекламы от компании Google, предоставляющий удобный интерфейс и множество инструментов для создания эффективных рекламных сообщений».

Так как у клиента уже имелся каркас платформы, написанный на языке C#, то и вся работа с API выполнялась на этом языке.

Twitter Ads

Первым в очереди на реализацию стояло управление компаниями в Twitter Ads. Естественно для начала необходимо ознакомиться с документацией, поискать SDK для работы с сервисом и понять, что необходимо реализовать самому, а где можно взять уже готовое решение. Оказалось, что для C# не было каких-либо SDK (на момент написания статьи при беглом осмотре материала я нашел SDK для Python, PHP и Java), поэтому дальше все запросы к API я реализовывал сам. Это оказалось не так просто, как хотелось бы, так как документация Twitter Ads API ужасна и требует ритуального сожжения после прочтения оказалась не такой удобной, как ожидалось.

Документация

У меня на тот момент уже был опыт работы с API таких сервисов, как Яндекс и VK. И если два последних разжевали свою документацию так, что по ней любой ребенок сможет написать запрос к API, то в Twitter Ads API вас ждет настоящий поток сознания. Да, основные моменты в ней действительно неплохо описаны, но когда дело доходит до деталей, вам приходится ступить на извилистую дорожку проб, ошибок и пресловутых танцев с бубном.

Доступ к сервису

Во-первых, доступ к сервису. Twitter выделяет три уровня лицензии своего Ads API: Developer, Basic и Standard. Для получения каждого из них необходимо оформить заявку, которую одобрят (или нет) только через несколько дней. То есть начать сразу же тестировать свое приложения нельзя. Так же надо понимать, что самый простой уровень, Develop, подходит только для тестирования запросов и поддерживает работу не больше, чем с 5-ю пользователями. Для реальной работы с сервисами TwitterAdsAPI необходим более высокий уровень. Оформить такой уровень можно через специальную форму, которую лучше сразу же в начале работы предоставить для заполнения и клиенту, чтобы в дальнейшем избежать неминуемых ограничений со стороны сервиса.

Sandbox

Следующий нюанс — использование sandbox-а. TwitterAdsAPI не поддерживает создание тестовых пользователей, тестовых кампаний и т.д. (как это делает Google AdWords API например). Зато предоставляет механизм песочницы (т.е. тестовой среды), в которой мы можем создать нового пользователя и уже от его аккаунта делать рекламные кампании, рекламные посты и т.д. По сути, это и есть тестовый пользователь, просто URL для запросов будет другим (ads-api-sandbox.twitter.com vs. https://ads-api.twitter.com).

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

POST /1/accounts/

Сразу же после создания пользователя, необходимо реализовать способ оплаты funding_instruments и привязать его к пользователю:

POST /1/accounts/:account_id/funding_instruments

Дальнейшая работа в песочнице идентична работе в обычной среде.

Касательно Twitter-а, в итоге клиент хотел получить два метода: первый бы создавал рекламную компанию, а второй бы получал аналитическую информацию о созданной кампании (количество кликов, количество лайкой, ретвитов и т.д.). Спасибо документации, где есть специальный раздел, посвященный пошаговому созданию рекламной кампании — https://dev.twitter.com/ads/campaigns.

Согласно ней, в итоге мы получаем иерархическую структуру объектов данного сервиса:

  1. Во главе всего находится аккаунт пользователя.
  2. К аккаунту привязываются рекламные кампании. К одному аккаунту могут быть привязаны до 200 активных кампаний и любое количество неактивных.
  3. К каждой кампании привязывается группа рекламных объявлений (lineitem). Привязанные к одной компании группы должны быть ориентированы на один географический район.
  4. Самое последнее — собственно сами рекламные твиты.

Google AdWords

После мучений с Twitter Ads API наступила очередь Google AdWords. И вот тут уже я был приятно удивлен наличием библиотеки для .NET (хотя что удивляться, это же Google), а также примеров кода для реализации различного функционала. Разработка этой части прошла намного быстрее, несмотря на то, что функционала для Google Adwords требовалось реализовать больше. Помимо .NET, они предоставляют библиотеки для Java, Python, PERL, Ruby, PHP.

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

Как уже было написано выше, Google позволяет использовать тестовый аккаунт. Тут все достаточно просто, за исключением одного нюанса — его создания. Для того чтобы получить тестовый аккаунт, нужно создать рабочий аккаунт и запросить девелоперский токен для него. Только после этого возможно создание тестового аккаунта. Как видно из схемы из официальной документации, аккаунты внутри системы можно располагать иерархически. Соответственно, как я упомянул выше, rootmanageraccount является рабочим аккаунтом, с которого мы в дальнейшем будем непосредственно управлять нашими компаниями. А дальше уже можно создавать либо тестовый аккаунт конечного пользователя, либо тестовый аккаунт менеджера.

shema-01-1

Дальше схема объектов идентична структуре в TwitterAds. К клиентским аккаунтам привязываются компании, к компаниям привязываются группы, в группах создаются рекламные объявления.

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

Читать и комментировать

Краснодар

Коммунаров, 268,
3 эт, офисы 705, 707

+7 (861) 200 27 34

Хьюстон

3523 Brinton trails Ln Katy

+1 833 933 0204

Москва

+7 (495) 145-01-05