Миграция с Google AdWords API на Google Ads API: подробный мануал
Я неоднократно рассказывал о том, как с помощью языка R и пакета RAdwords запрашивать данные из рекламных аккаунтов одной из наиболее популярных в мире рекламных платформ Google Ads (ex Google AdWords).
Проблема в том, что пакет RAdwords работает с Google AdWords API версии 201809. Данный API давно не обновляется и прекратит работу 27 апреля 2022 года.
В этой статье я расскажу о новом пакете — rgoogleads, работу над котором я начал в июне 2021 года. На данный момент в пакете реализованы все необходимые для запроса данных функции. Далее мы подробно разберёмся с тем, как перейти с RAdwords на rgoogleads, для того, чтобы с апреля 2022 года ваши скрипты по прежнему корректно собирали необходимые данные из рекламных аккаунтов в Google Ads.
Эта статья полезна тем, у кого есть некоторые навыки написания кода на языке R и работы с пакетом RAdwords. Но даже если вы впервые слышите про этот язык и RAdwords, в статье будут примеры кода. Вам необходимо подставить идентификаторы ваших Google Ads аккаунтов и запросить нужные данные.
Возможности пакета rgoogleads
На данный момент пакет rgoogleads включает в себя весь необходимый функционал для запроса данных из Google Ads API:
- авторизация в API Google Ads;
- загрузка списка аккаунтов верхнего уровня;
- загрузка всей иерархии аккаунтов из управляющих аккаунтов;
- загрузка объектов рекламного кабинета: кампании, группы объявлений, объявления и другое;
- загрузка статистических данных из рекламных аккаунтов;
- загрузка метаданных ресурсов, полей ресурсов, сегментов и метрик;
- загрузка прогноза и исторических данных из планировщика ключевых слов.
Преимущества пакета rgoogleads
Теперь давайте разберёмся, какие преимущества дает переход на новый пакет rgoogleads:
- rgoogleads работает с Google Ads API v8 (релиз от 09.06.2021), RAdwords работает с Google AdWords API v201809. Google AdWords API прекратит работу 27.04.2022;
- для авторизации rgoogleads использует пакет gargle, что даёт гораздо больше гибкости по сравнению с тем, как устроен процесс авторизации в RAdwords;
- в rgoogleads есть вшитый токен разработчика Google Ads и OAuth клиент для авторизации. Это избавит большинство пользователей от необходимости запрашивать у поддержки Google базовый доступ к API Google Ads и тратить время на создание проекта и OAuth клиента в Google Cloud Console;
- у большинства функций rgoogleads аргумент cl, который позволяет осуществлять загрузку данных в многопоточном режиме;
- в отличие от RAdwords, у rgoogleads есть функции для загрузки списков и иерархии аккаунтов;
- у rgoogleads есть отдельные функции для загрузки основных объектов рекламных кабинетов, таких как рекламные кампании, группы объявлений, ключевые слова и объявления;
- за счёт того, что запрос данных не разделён на отдельные функции, синтаксис rgoogleads более понятный и лаконичный. В RAdwords вам необходимо было изначально создать запрос функцией statement(), после чего использовать его для запроса данных в функции getData() ;
- у rgoogleads нет проблем при загрузке названий, содержащих кириллицу;
- если запрос к API столкнулся со сбоем на сервере (статус ответа 429 или выше), пакет rgoogleads автоматически выждет паузу в 100 секунд и повторит попытку запросить данные. За счёт этого работа данного пакета более стабильна и устойчива к сбоям на сервере Google Ads API;
- rgoogleads выводит подробное сообщение об ошибке. Для сравнения, если пользователь допустил ошибку в составлении запроса, RAdwords не выводит никакие сообщения;
- rgoogleads позволяет запрашивать данные из планировщика ключевых слов.
Основные различия между Google AdWords API и Google AdsAPI
К счастью, ключевых различий между устаревшим и новым API не так много, и процесс миграции не должен вызвать у вас особых сложностей. Ниже я перечислю ключевые моменты миграции.
- нет необходимости менять автоионизационные данные, токен разработчика, id и secret OAuth клиента будут работать также и с новым Google Ads API;
- в AdWords API отчёты были выделены в отдельную службу, в Google Ads API отчёты являются частью одного сервиса. Вам достаточно включить в отчёты необходимые поля с метриками, которые нужно получить;
- В AdWords API существовали типы отчётов, например, CAMPAINGN_PERFORMANCE_REPORT. В Google Ads API их нет, вместо типов отчётов представлен огромный набор ресурсов;
- у AdWords API и Google Ads API разный формат ответа от API;
- в Google Ads API отсутствует параметр includeZeroImpressions, вместо него вы можете использовать фильтр metrics.impressions > 0.
Установка rgoogleads
Пакет уже доступен для скачивания из CRAN, но в связи с тем, что сейчас он находится в активной стадии разработки, я рекомендую устанавливать наиболее актуальную версию из GitHub.
# установка из github devtools::install_github(\\\'selesnow/rgoogleads\\\')
В течение нескольких месяцев окончательно сформируется функционал пакета, после чего рекомендовую установку именно из CRAN.
# установка из CRAN install.packages(\\\'rgoogleads\\\')
Как устроена авторизация в rgoogleads
Работа пpaктически с любым API начинается с авторизации. Здесь используется функционал пакета gargle. В связи с чем, процесс авторизации будет хорошо знаком пользователям таких пакетов как googlesheets4, googledrive, bigrquery, google***yticsR.
Самый простой способ пройти авторизацию — использовать функцию gads_auth(), передав в неё логин, под которым вам необходимо авторизоваться. Наверняка именно этот способ выберет большинство пользователей пакета:
gads_auth(email = \\\'me@gmail.com\\\')
После запуска функции gads_auth() вы будете перенаправлены в браузер, где необходимо предоставить пакету все необходимые разрешения.
Если вы всё сделали правильно, появится сообщение «Authentication complete. Please close this page and return to R».
Для более продвинутых пользователей существует возможность настройки конфигурации авторизации. То есть, если есть свой токен разработчика Google Ads и / или OAuth клиент, вы можете пройти авторизацию, используя свои учётные данные. Настроить конфигурации авторизации можно с помощью функции gads_auth_configure().
Основные аргументы функции gads_auth_configure():
- path — путь к JSON файлу с данными OAuth клиента;
- app — данные OAuth клиента, созданные через функцию httr::oauth_app() ;
- developer_token — ваш токен разработчика
При настройке конфигурации важно учитывать:
- У компании, то есть юридического лица, может быть только один токен разработчика;
- При первом использовании OAuth клиент из проекта Google Cloud с токеном разработчика, идентификатор клиента привязывается к токену разработчика и не может использоваться с другим токеном разработчика. Другими словами:
- токен разработчика можно использовать с несколькими идентификаторами клиентов;
- идентификатор OAuth клиента можно использовать только с одним токеном разработчика.
Если вы используете собственный токен разработчика, необходимо использовать созданный вами OAuth клиент. Если используете встроенный токен разработчика, можете использовать либо встроенный OAuth клиент, либо свой OAuth клиент.
О том как создать и настроить OAuth клиент (приложение в Google Cloud) читайте в статье «Как загрузить данные из API Google ***ytics в R: часть 2».
Собственный токен разработчика можно запросить только из управляющего аккаунта, меню Инструменты — Центр API.
Если вам необходимо пройти авторизацию, используя свой токен разработчика, и/или собственный OAuth клиент, воспользуйтесь следующим примером кода:
# конфигурация авторизации gads_auth_configure( path = \\\'C:/auth/app.json\\\', developer_token = \"own developer token\" ) # авторизация gads_auth(email = \\\'me@gmail.com\\\')
Опции пакета rgoogleads
Для более удобной работы и исключения необходимости установки одних и тех же аргументов в каждой функции пакета, в rgoogleads добавлены функции установки опций. Установленные опции действуют в ходе текущей R сессии.
- gads_set_customer_id() — установить идентификатор клиентского аккаунта, из которого вы будете запрашивать данные в течении сессии. Также можно установить сразу несколько аккаунтов с помощью с (“111-111-1111”, “222-222-2222”).
- gads_set_login_customer_id() — установка идентификатора управляющего аккаунта. Используйте опцию только, если работаете с рекламными аккаунтами, подчинёнными в управляющем аккаунте.
# идентификатор управляющего аккаунта gads_set_login_customer_id(\"xxx-xxx-xxxx\") # установка клиентского аккаунта gads_set_customer_id(\"yyy-yyy-yyyy\")
Загрузка отчётов из Google Ads с помощью rgoogleads
Теперь можно запросить отчёты по рекламным кампаниям, группам объявлений или любым другим ресурсам:
group_report <- gads_get_report( resource = \"ad_group\", fields = c(\"ad_group.campaign\", \"ad_group.id\", \"ad_group.name\", \"ad_group.status\", \"metrics.clicks\", \"metrics.cost_micros\"), date_from = \"2021-06-10\", date_to = \"2021-06-17\", where = \"ad_group.status = \\\'ENABLED\\\'\", order_by = c(\"metrics.clicks DESC\", \"metrics.cost_micros\"), limit = 30000 )
В Google Ads API есть огромное количество ресурсов, по которым вы можете запрашивать информацию с помощью функции gads_get_report().
Список и описание всех доступных ресурсов можно найти в официальной документации Google Ads API или запросить функцией gads_get_metadata().
resources <- gads_get_metadata(\"RESOURCE\")
У каждого ресурса есть собственный набор доступных полей. Посмотреть набор полей можно либо в документации, либо запросить с помощью функции gads_get_fields().
ad_group_fields <- gads_get_fields(\"ad_group\")
Миграция с RAdwords на rgoogleads
Ниже приведу таблицу соответствия функций в пакетах RAdwords и rgoogleads.
Операция | RAdwords | rgoogleads |
Авторизация | doAuth() | gads_auth_configure() + gads_auth() |
Запрос метаданных | reports(), metrics() | gads_get_metadata(), gads_get_fields() |
Запрос отчётов | statement() + getData() | gads_get_report() |
Бывшие в Google AdWords типы отчётов, в Google Ads стали ресурсами. Ниже — таблица сопоставления из официальной справки:
Тип отчёта в Google AdWords API | Ресурс в Google Ads API |
ACCOUNT_PERFORMANCE_REPORT | customer |
AD_PERFORMANCE_REPORT | ad_group_ad |
ADGROUP_PERFORMANCE_REPORT | ad_group |
AGE_RANGE_PERFORMANCE_REPORT | age_range_view |
AUDIENCE_PERFORMANCE_REPORT | campaign_audience_view, ad_group_audience_view |
AUTOMATIC_PLACEMENTS_PERFORMANCE_REPORT | group_placement_view |
BID_GOAL_PERFORMANCE_REPORT | bidding_strategy |
BUDGET_PERFORMANCE_REPORT | campaign_budget |
CALL_METRICS_CALL_DETAILS_REPORT | call_view |
CAMPAIGN_AD_SCHEDULE_TARGET_REPORT | ad_schedule_view |
CAMPAIGN_CRITERIA_REPORT | campaign_criterion |
CAMPAIGN_PERFORMANCE_REPORT | campaign |
CAMPAIGN_SHARED_SET_REPORT | campaign_shared_set |
CAMPAIGN_LOCATION_TARGET_REPORT | location_view |
CLICK_PERFORMANCE_REPORT | click_view |
DISPLAY_KEYWORD_PERFORMANCE_REPORT | display_keyword_view |
DISPLAY_TOPICS_PERFORMANCE_REPORT | topic_view |
GENDER_PERFORMANCE_REPORT | gender_view |
GEO_PERFORMANCE_REPORT | geographic_view, user_location_view |
KEYWORDLESS_QUERY_REPORT | dynamic_search_ads_search_term_view |
KEYWORDS_PERFORMANCE_REPORT | keyword_view |
LABEL_REPORT | label |
LANDING_PAGE_REPORT | landing_page_view, expanded_landing_page_view |
PAID_ORGANIC_QUERY_REPORT | paid_organic_search_term_view |
PARENTAL_STATUS_PERFORMANCE_REPORT | parental_status_view |
PLACEHOLDER_FEED_ITEM_REPORT | feed_item, feed_item_target |
PLACEHOLDER_REPORT | feed_placeholder_view |
PLACEMENT_PERFORMANCE_REPORT | managed_placement_view |
PRODUCT_PARTITION_REPORT | product_group_view |
SEARCH_QUERY_PERFORMANCE_REPORT | search_term_view |
SHARED_SET_CRITERIA_REPORT | shared_criterion |
SHARED_SET_REPORT | shared_set |
SHOPPING_PERFORMANCE_REPORT | shopping_performance_view |
URL_PERFORMANCE_REPORT | detail_placement_view |
USER_AD_DISTANCE_REPORT | distance_view |
VIDEO_PERFORMANCE_REPORT | video |
Соответствие полей «Отчёт» и полей ресурсов можно найти в официальной справке. Таблица очень большая, поэтому не вижу смысла дублировать её здесь.
Ниже приведу пример запроса отчёта по эффективности рекламных кампаний с одним и тем же набором полей, с помощью пакета RAdwords и rgoogleads.
Запрос отчёта по эффективности рекламных кампаний с помощью RAdwords
library(RAdwords) # авторизация adwords_auth <- doAuth() # составляем запрос query <- statement( select = c(\\\'CampaignName\\\', \\\'Date\\\', \\\'Clicks\\\'), report = \\\'CAMPAIGN_PERFORMANCE_REPORT\\\', start = \\\'2021-06-01\\\', end = \\\'2021-06-30\\\' ) # загрузка данных data1 <- getData( clientCustomerId = \\\'xxx-xxx-xxxx\\\', statement = query, google_auth = adwords_auth )
Запрос отчёта по эффективности рекламных кампаний с помощью rgoogleads
library(rgoogleads) # авторизация gads_auth_configure(path = \\\'D:/ga_auth/app.json\\\') gads_auth(email = \\\'me@gmail.com\\\') # загрузка данных data2 <- gads_get_report( resource = \\\'campaign\\\', fields = c(\\\'campaign.name\\\', \\\'segments.date\\\', \\\'metrics.clicks\\\'), date_from = \\\'2021-06-01\\\', date_to = \\\'2021-06-30\\\', customer_id = \\\'676-642-7440\\\', login_customer_id = \\\'xxx-xxx-xxxx\\\' )
Полезные ссылки
На данный момент в освоении rgoogleads вам помогут:
Заключение
Если вы используете для загрузки данных из рекламных кабинетов RAdwords, то уже сейчас стоит начать перевод своих скриптов на пакет rgoogleads. В противном случае сбор данных из ваших аккаунтов скорее всего перестанет работать с 27 апреля 2022 года.
Материал изложенный в статье может быть использован даже тем, кто ранее не сталкивался с запросом данных из Google AdWords API или Google Ads API. Вам достаточно установить язык R и среду разработки RStudio, скопировать из статьи примеры кода, и подставить свои идентификаторы аккаунтов. Если вам нужна помощь в установке необходимого программного обеспечения посмотрите этот видео урок. Также начать изучения языка R можно с бесплатного курса «Язык R для пользователей Excel».
Если вы интересуетесь или планируете начать изучение языка R? вам наверняка будет полезен мой telegram и youtube канал R4marketing.
Буду рад ответить на ваши вопросы в комментариях.
Комментарии:
«Что такое диджитал и чем это отличается от услуги продвижения в социальных сетях» — о цифровой стратегии, креативных концепциях и том, как это все происходит в крупных агентствах....
22 01 2025 5:12:59
Direct сделал подарок всем, кто уже давно хотел увеличить привлекательность своих объявлений — добавил возможность включения видеодополнений к текстово-графическим кампаниям. Как включить новую фишку от Директа и достаточно ли она эффективна?...
21 01 2025 5:11:48
Инструкция о том, как создать новую кампанию в Bing Ads или импортировать существующую из Google Рекламы? Как добавить способ оплаты? Читайте о первых шагах настройки рекламы в Bing...
20 01 2025 0:54:43
Проверенный способ для сбора базы данных. Метод, с помощью которого можно извлечь контактные данные, а именно: название точки, телефон, адрес, сайт., а потом высылать своё КП, промокоды для акции, сообщить о выходе товара, сделать спецпредложение...
19 01 2025 23:42:22
Стратегия контекстной рекламы для лендинга турагенства: увеличение количества онлайн-бронирований на 100%...
18 01 2025 8:53:28
Чем работа веб-студий отличается от конструкторов сайтов, как выбрать веб-студию и пять базовых понятий, которые должен знать каждый, кто решил создать сайт....
17 01 2025 22:55:34
Где и как разработчик может подобрать ответственных удаленщиков, как составить техническое задание, чем контролировать качество работы...
16 01 2025 13:36:37
В ТОПе ошибок — метатеги, разметка, заголовки h1-h6 и внутренние ссылочные факторы....
15 01 2025 12:39:35
Чтобы понять, как работает Роскомнадзор, пришлось разбираться в деталях и делать опрос по топовым хостингам. Ответы и выводы читайте в статье....
14 01 2025 6:43:15
Как провести крутую конференцию по интернет-маркетингу, сделать трaнcляцию этой конференции и вместо сухих репортажей подготовить полезный контент для СМИ. Узнать больше....
13 01 2025 22:58:19
Бесплатная регистрация сайта в поисковых системах и каталогах – отличный способ увеличить объемы трафика и раскрутить собственный ресурс....
12 01 2025 1:54:10
10 базовых правил оформления онлайн-таблиц. Оформление — основа таблицы. Как работать со столбцами и ячейками, комментариями и примечаниями, делать корректные цветовые выделения. Читайте далее....
11 01 2025 19:35:57
Советы бизнесу от зрителей Big Money и Артема Бородатюка. Предлагаем 11 универсальных, но простых и понятных идей....
10 01 2025 14:16:37
Любопытная подборка "маленьких" гигантов: компании и сервисы, чья аудитория превышает 10 миллионов пользователей, а также несколько интересных фактов о каждом из них. Узнать больше!...
09 01 2025 5:15:54
Зеркалами считаются сайты с разными доменными именами, но идентичным контентом...
08 01 2025 23:35:59
Снимать скрин нужно красиво и логично, вне зависимости от того, кому вы его покажете: начальнику, другу или многотысячной аудитории блога...
07 01 2025 17:50:15
5 мая в 17:00 — митап в Zoom с Радомиром Новковичем — фаундером RadASO и CEO Tonti Laguna Mobile....
06 01 2025 23:32:15
Как уменьшить время ответа сервера и повысить общий показатель скорости загрузки сайта...
05 01 2025 3:29:34
Эта книга рекомендована к прочтению решительно всем :)...
04 01 2025 3:28:45
Отчет «Многокaнaльные последовательности» в Google ***ytics помогает оценить влияние каждого канала, сделать выводы о работе рекламных кампаний — понять их вклад и участие в цепочке до совершения конверсии. Показываем на примере....
03 01 2025 14:16:39
Можно ли получить больше заявок, используя динамическую подмену заголовка? Кейсы в разных тематиках...
02 01 2025 12:25:56
Всё что нужно знать про SMM...
01 01 2025 12:19:34
Создатели алгоритмов соцсетей используют слабые места человеческого мозга. Случайно или намеренно, но они это делают. Как нам с этим жить?...
31 12 2024 8:27:44
Перевод статьи Никки Джиллиленд из Econsultancy об уроках для маркетологов про то, каким должно быть хорошее видео. Узнайте 4 правила эффективного видеоконтента прямо сейчас!...
30 12 2024 7:41:27
Хотите видеть в отчетах точный ROMI в разрезе рекламных кампаний, групп объявлений и ключевых слов? Импортируйте себестоимость товаров в Google ***ytics...
29 12 2024 20:54:39
Что нужно делать на старте работ с интернет-магазином и как минимизировать риски для бизнеса онлайн, используя такие инструмента как SEO, PPC и Email-маркетинг — советы от эксперта. Читать дальше!...
28 12 2024 2:24:42
Как избежать скликивания, случайных переходов и «пустых» установок при рекламе мобильного приложения...
27 12 2024 20:31:12
Не только netpeak spider. Главные детали о новой версии инструмента Netpeak Checker 3.0: парсер гугла, массовый анализ сайтов, антибан-алгоритм для прокси, шаблоны параметров и фильтров...
26 12 2024 23:54:57
Брендовые или витальные запросы содержат только название компании или бренда, без дополнительных уточнений...
25 12 2024 23:47:12
О видах мобильных версий, их плюсах и минусах, а также советы по аудиту....
24 12 2024 8:47:21
Примеры странной, классной и непонятной рекламы в соцсетях из моей ленты за февраль 2021 года...
23 12 2024 1:51:47
Партнерская сеть, к которой нужно присоединиться уже сейчас....
22 12 2024 1:52:46
Рассказываем про телеграм-канал со-основателя Netpeak и чем он интересен для предпринимателей, руководителей и маркетологов....
21 12 2024 13:11:30
Требования к интернет-магазину, мануал по регистрации, что может пойти не так...
20 12 2024 1:59:15
Как диагностировать Google Panda, понять, что нужно изменить на своем сайте и сделать пользователей счастливыми....
19 12 2024 22:26:42
Памятка для всех, кому важно сохранить детали переговоров....
18 12 2024 14:52:15
Клиентоориентированный бизнес должен знать, чего хотят покупатели. И лучше понять это еще на этапе идеи. Как — читайте чек-лист от Влада Ноздрачева....
17 12 2024 18:58:29
Личный опыт экс-главреда экс-блога Netpeak (сейчас — Netpeak Journal): о работе с информацией, мотивации написания, редактуре черновика, подаче информации по степени важности, выделении главного и составлении окончательной версии текста. Как сделать текст логичным и полезным? Узнайте!...
16 12 2024 18:52:15
Время, потраченное на исправление ошибок, допущенных на этапе подготовки и создания сайта, убивает потенциал роста видимости ресурса....
15 12 2024 12:40:25
Эффективность продвинутой сегментации стала заметна уже в первый месяц ее функционирования....
14 12 2024 19:42:31
Перед нами стояла цель увеличить поисковый трафик и видимость, не охватывая новые города. Через 8 месяцев после старта сотрудничества сайт переносили на новый front-end. Узнать больше!...
13 12 2024 10:32:29
Стоит ли торопиться с переходом на новый формат объявлений? Эксперимент PPC-специалистов агентства Netpeak....
12 12 2024 11:32:36
SMM от Netpeak — это разработки стратегий продвижения, механики конкурсов, медиапланирование и постоянная интеpaктивная связь с клиентом с помощью «Личного кабинета»....
11 12 2024 23:46:47
Менеджмент и лидерство: 4 разных типа руководства организацией и нескучные иллюстрации в стиле South park....
10 12 2024 21:15:15
Пpaктическая информация о том, что и куда нужно постить....
09 12 2024 10:19:48
Почему в высококонкурентных тематиках важно оптимизировать поведенческие показатели...
08 12 2024 10:45:38
Как говорят легенды, на создание дизайна этих носочков Sammy Icon вдохновили рисунки на стенах храма Темпло Майор в древнем городе Теночтитлан. К сожалению, город сейчас разобрали перуанские строители, но память о нем осталась в киевских носках...
07 12 2024 18:16:22
Как настроить автоматическое обновление данных о товарах с помощью таблиц Google....
06 12 2024 11:56:36
Как использовать сториз для бизнеса на полную? Фишки от пpaктиков SMM-продвижения....
05 12 2024 21:24:12
Чтобы грамотно анализировать статистику рекламных кампаний, необходимо связать Яндекс.Метрику и Яндекс.Директ. Рассказываем, как это сделать...
04 12 2024 2:11:58
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::