Імпорт даних про витрати в Google Analytics за допомогою R

Імпорт даних про витрати в Google Analytics

При роботі з Google Analytics часто необхідно імпортувати якісь дані в цю систему. Зазвичай цими даними є дані про витрати у Facebook та інших рекламних системах (хоча бувають інші види імпорту ). Така потреба виникає як при налаштуванні наскрізної аналітики, так і в більш загальних випадках роботи з Google Analytics.

Раніше мені на допомогу приходив класний інструмент – OWOX BI PIPELINE . Інструмент дуже зручний і до того ж умовно безкоштовний, але в якийсь момент, коли з’явилася необхідність завантажувати історичні дані, за великий проміжок часу я став перед вибором: використовувати платну версію або знайти інше рішення. Як ви вже здогадалися, якщо читаєте цю статтю – я вибрав друге 🙂 Розбирати все будемо на прикладі з Facebook, але робота з іншими рекламними кабінетами дуже схожа.

Отже, щоб імпортувати дані про витрати в Google Analytics, нам знадобиться:

    1. Зібрати необхідні дані з рекламного кабінету Facebook
    2. Створити на Google Analytics набір даних для імпорту
    3. Перетворити дані з рекламного кабінету на необхідний формат
    4. Налаштувати щоденне автоматичне завантаження необхідних даних

ВАЖЛИВО! Щоб імпорт працював коректно, рекламні кампанії мають бути позначені UTM-мітками.

Збираємо необхідні дані з рекламного кабінету Facebook

Для збору даних ми будемо використовувати пакет Олексія Селезньова rfacebookstat . Перед тим як перейти до завантаження даних потрібно підготуватися та створити програму у Facebook.

Створюємо додаток у Facebook

Переходимо в розділ Керування програмами в меню Facebook і натискаємо на кнопку “Додати нову програму”. У вікні вказуємо Назва програми, електронну пошту для зв’язку і натискаємо кнопку “Створіть ID програми”.

Стартове вікно створення програми у Facebook

На наступному етапі додаєте продукт “Вхід через Facebook” та натискаєте “Налаштувати”:

Додавання продукту - Вхід через Facebook

Платформа в нашому випадку – “Веб”:

Вибір платформи при створенні програми у Facebook - Веб

У налаштуваннях продукту в полі “Дійсні URI перенаправлення для OAuth” вказуємо “https://selesnow.github.io/rfacebookstat/getToken/get_token.html”:

Налаштування продукту Вхід через фейсбук для розвантаження даних

Переходимо в основні налаштування програми та в полі “Домени програм” вказуємо “github.com”. У полях “URL-адреса політики конфіденційності” та “URL-адреса Угоди користувача” вказуємо “https://github.com/selesnow/rfacebookstat”. Не забуваймо зберегти зміни.

Основні настройки програми для роботи з API за допомогою R

На цьому створення програми закінчено. Переходимо до другого пункту.

Отримуємо токен розробника Facebook

У Facebook існує кілька видів токенів розробників:

  • короткостроковий – діє приблизно 2 години;
  • довгостроковий – діє 2 місяці.

Щоб отримати короткостроковий токен, можна використовувати функцію fbGetToken у пакеті rfacebookstat.

Якщо ви використовуєте цей пакет вперше, спочатку введіть команду нижче, щоб завантажити та запустити пакет:

#Устанавливаем пакеты devtools и rfacebookstat, если они не установлены

if(!"devtools" %in% installed.packages()[,1]){install.packages("devtools")}

devtools::install_github('selesnow/rfacebookstat')



#Подключаем библиотеку rfacebookstat

library(rfacebookstat)

Тепер можна і короткостроковий токен отримати:

fbToken <- fbGetToken(app_id = XXXXXXXXXX)

де замість XXXXXXXXXX потрібно ввести ідентифікатор програми, яку ви створили на попередньому кроці:

Відображення Ідентифікатора програми у Facebook

У вікні браузера клацаєте на кнопку “Продовжити як …” і на наступному екрані “ОК”. На останній сторінці ви побачите токен – приблизно три рядки символів:

Приклад отримання короткочасного токена для Facebook

Цей токен вже можна використовувати для отримання даних, але працювати з ним постійно не зручно, тому що він діє всього 2 години.
Щоб отримати довгостроковий токен, скористаємося командою fbGetLongTimeToken з пакету rfacebookstat:

longToken <- fbGetLongTimeToken(client_id = XXXXXXXXXX,
                                client_secret = "YYYYYYYYYYY",
                                fb_exchange_token = fbToken)

 

де замість XXXXXXXXXX потрібно ввести ідентифікатор програми, замість YYYYYYYYYYY секрет цієї програми, а замість fbToken має бути значення короткострокового токена.

Відображення Ідентифікатора та Секрету програми у Facebook

Тепер можна розпочати збирання даних.

Отримуємо необхідні дані з рекламного кабінету Facebook

Перед тим, як розпочати завантаження необхідних даних з рекламного облікового запису Facebook, необхідно надати застосунку доступ до цього облікового запису. Для цього необхідно ввести ідентифікатор облікового запису у відповідне поле:

Додавання рекламних облікових записів для вивантаження даних з Facebook

Ідентифікатор можна знайти на головній сторінці Бізнес-менеджера:

Відображення ідентифікатора рекламного облікового запису в бізнес-менеджері Facebook

Після надання дозволів, для отримання необхідних даних необхідно запустити наступну команду R:

start_date <- Sys.Date()-1

end_date <- Sys.Date()-1



fb <- fbGetMarketingStat(accounts_id = "act_DDDDDDDD",
                         api_version = "v3.1",
                         level = "ad",
                         fields = "campaign_name,adset_name,ad_name,impressions,clicks,spend",
                         date_start = start_date,
                         date_stop = end_date,
                         interval = "day",
                         access_token = longToken)

де замість DDDDDDDD необхідно ввести ідентифікатор рекламного облікового запису.

За виконання, ви отримаєте необхідні дані про витрати, покази та кліки, у розрізі рекламних кампаній, груп оголошень та оголошень за вчора. Якщо потрібно отримати дані за інший період, відредагуйте відповідно значення start_date та end_date.

Створюємо в Google Analytics набір даних для імпорту

Тепер потрібно створити набір даних для імпорту в інтерфейсі Google Analytics. Для цього переходимо на вкладку Адміністратор і на рівні ресурсу вибираємо пункт Імпорт даних:

Імпорт даних у Google Analytics

Далі необхідно створити набір для імпорту типу “Дані про витрати”, вказати назву та вибрати уявлення, в які імпортуватимемо дані, а також вказати додаткові налаштування:

Створення набору даних типу Дані про витрати

Перейшовши в щойно створений набір імпорту і натиснувши кнопку “Отримати схему” ви побачите, як повинні виглядати ваші дані для імпорту.

Отримання схеми для імпорту даних про витрати в Google Analytics

Якщо ви уважні, то помітите, що наші дані з Facebook зараз виглядають дещо інакше. Давайте ж виправимо це;)

Як перетворити дані з рекламного кабінету на необхідний для Google Analytics формат

Щоб наші дані, отримані з API Facebook відповідали схемі імпорту, запустіть наступний код:

#Группируем данные полученные с API

grp <- group_by(fb, date_start, campaign_name, adset_name, ad_name)

fb <- summarise(grp, spend=sum(as.numeric(spend)), impressions=sum(as.numeric(impressions)), clicks=sum(as.numeric(clicks)))



#Создаем отдельные вектора на каждый из необходимых столбцов и преобразуем значения в необходимый нам формат

cost <- as.numeric(fb$spend)

clicks <- as.numeric(fb$clicks)

impressions <- as.numeric(fb$impressions)

date <- format(as.Date(fb$date_start), "%Y%m%d")

campaign <- fb$campaign_name

adGroup <- fb$adset_name

criteria <- fb$ad_name



#Создаем столбцы с полями source и medium, которых нет в изначальных данных

l <- length(date)

new <- vector(mode = "character", length = l)

u_medium <- replace(new, new == "", "ppc")

u_source <- replace(new, new == "", "facebook")



#Формируем таблицу в необходимом формате

fb_data <- data.frame(date, u_medium, u_source, cost, clicks, impressions, campaign, adGroup, criteria)



#Присваиваем столбцам названия согласно схеме данных импорта Google Analytics

col_names <- c("ga:date", "ga:medium", "ga:source", "ga:adCost", "ga:adClicks", "ga:impressions", "ga:campaign", "ga:adContent", "ga:keyword")

fb_data <- `colnames<-`(fb_data, col_names)

У результаті ви отримаєте таблицю такого виду:

Підсумкова таблиця з набором для імпорту витрат із Facebook

О так, це те, що нам потрібно! Давайте завантажимо ці дані в Google Analytics за допомогою R.

Налаштовуємо щоденне автоматичне завантаження необхідних даних за допомогою R

Для того щоб працювати з даними Google Analytics за допомогою API нам знадобиться отримати токен розробника або створити сервісний акаунт. Ми підемо другим шляхом.

Створюємо сервісний обліковий запис для роботи з API Google Analytics

Переходимо в Google Developers Console , вибираємо пункт створити проект та вводимо назву. Після цього переходимо на вкладку “Бібліотека” та у списку доступних API шукаємо Analytics API:

Пошук Analytics API Google Developers Console

Тепер потрібно включити доступ до Google Analytics за API:

Увімкнення доступу до Google Analytics API

Створюємо ключ сервісного облікового запису у форматі JSON. Зробити це можна на вкладці “Облікові дані”. Назву можете задати будь-яке:

 

Створення ключа сервісного облікового запису у форматі JSON

Вибір типу ключа сервісного облікового запису

У наступному вікні вибираємо пункт “Створити обліковий запис без ролі”:

Створення облікового запису Google без участі

Тепер необхідно відкрити сервісний обліковий запис доступ до аналітики. Для цього переходимо до створеного сервісного облікового запису та на вказану пошту надаємо доступ у Google Analytics на рівні ресурсу з правами редагування. Робиться це звичайним способом, ніби пошта належить будь-якому іншому користувачеві.

Після цих маніпуляцій ми можемо розпочати роботу з API Google Analytics.

Налаштувати щоденне автоматичне завантаження даних

Для завантаження даних у Google Analytics ми будемо використовувати пакети googleAuthR та googleAnalyticsR. Сам імпорт можна здійснити за допомогою запуску наступного коду:

 

#Устанавливаем пакеты googleAuthR и googleAnalyticsR, если они не установлены

if(!"googleAuthR" %in% installed.packages()[,1]){install.packages("googleAuthR")}

if(!"googleAnalyticsR" %in% installed.packages()[,1]){install.packages("googleAnalyticsR")}



#Подключаем необходимые библиотеки и вводим данные сервисного аккаунта в окружение

library(googleAuthR)

options(googleAuthR.client_id = "CLIENT_ID")

options(googleAuthR.client_secret = "CLIENT_SECRET")

library(googleAnalyticsR)



#Загружаем данные о затратах в Google Analytics

ga_custom_upload_file("ACCOUNT_ID", "SOURCE_ID", "IMPORT_ID", YOUR_DATA)

Попередньо в коді потрібно замінити такі дані:

  • CLIENT_ID – Електронна адреса сервісного облікового запису;
  • CLIENT_SECRET – Ідентифікатор ключа сервісного облікового запису;

Відображення Ідентифікатора та Секрету програми у Facebook

  • ACCOUNT_ID – ідентифікатор облікового запису Google Analytics;
  • SOURCE_ID – Ідентифікатор ресурсу Google Analytics;
  • IMPORT_ID – Ідентифікатор набору імпорту даних;

Ідентифікатор набору даних для імпорту витрат із Facebook

  • YOUR_DATA – набір даних, який ви хочете імпортувати. У нашому випадку він називався fb_data.

Після успішного виконання скрипта ви побачите наступне повідомлення в консолі R:

Інформація про успішне завантаження даних про витрати в Google Analytics за допомогою R

Відповідна інформація також з’явиться в інтерфейсі Google Analytics. У наборі даних імпорту:

Інформація про успішний імпорт у наборі даних Google Analytics

І у звіті Аналіз витрат:

Імпорт даних про витрати з Facebook у Google Analytics за допомогою R

Так як стаття вийшла не маленькою, інформацію про те, як запланувати автоматичне виконання скрипту , читайте в попередній статті цього блогу.

Ми розібрали на прикладі даних з Facebook, як імпортувати дані про витрати в Google Analytics за допомогою R, але дані спосіб підходить і для інших рекламних систем, а також для імпорту даних про витрати на такі джерела, як SEO та E-mail.

 

Як ви імпортуєте історичні дані про витрати з різних рекламних систем у Google Analytics?