При роботі з Google Analytics часто необхідно імпортувати якісь дані в цю систему. Зазвичай цими даними є дані про витрати у Facebook та інших рекламних системах (хоча бувають інші види імпорту ). Така потреба виникає як при налаштуванні наскрізної аналітики, так і в більш загальних випадках роботи з Google Analytics.
Раніше мені на допомогу приходив класний інструмент – OWOX BI PIPELINE . Інструмент дуже зручний і до того ж умовно безкоштовний, але в якийсь момент, коли з’явилася необхідність завантажувати історичні дані за великий проміжок часу, я став перед вибором: використовувати платну версію або знайти інше рішення. Як ви вже здогадалися, якщо читаєте цю статтю, я вибрав друге 🙂 Розбирати все будемо на прикладі з Facebook, але робота з іншими рекламними кабінетами дуже схожа.
Отже, щоб імпортувати дані про витрати в Google Analytics, нам знадобиться:
ВАЖЛИВО! Щоб імпорт працював коректно, рекламні кампанії мають бути позначені UTM-мітками.
Збираємо необхідні дані з рекламного кабінету Facebook
Для збору даних ми будемо використовувати пакет Олексія Селезньова rfacebookstat . Перед тим як перейти до завантаження даних потрібно підготуватися та створити додаток у Facebook.
Створюємо додаток у Facebook
Переходимо в розділ Керування додатками в меню Facebook і натискаємо на кнопку “Створити додаток”. У вікні вказуємо Назва додатку, електронну пошту для зв’язку і натискаємо кнопку “Створіть ID додатку”.
На наступному етапі додаєте продукт “Вхід через Facebook” та натискаєте “Налаштувати”:
Платформа в нашому випадку – “Веб”:
У налаштуваннях продукту в полі “Дійсні URI перенаправлення для OAuth” вказуємо “https://selesnow.github.io/rfacebookstat/getToken/get_token.html”:
Переходимо в основні налаштування додатку та в полі “Домени додатків” вказуємо “github.com”. У полях “URL-адреса політики конфіденційності” та “URL-адреса Угоди користувача” вказуємо “https://github.com/selesnow/rfacebookstat”. Не забуваємо зберегти зміни.
На цьому створення додатку закінчено. Переходимо до другого пункту.
Отримуємо токен розробника 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 потрібно ввести ідентифікатор додатку, який ви створили на попередньому кроці:
У вікні браузера клацаєте на кнопку “Продовжити як …” і на наступному екрані “ОК”. На останній сторінці ви побачите токен – приблизно три рядки символів:
Цей токен вже можна використовувати для отримання даних, але працювати з ним постійно не зручно, тому що він діє всього 2 години.
Щоб отримати довгостроковий токен, скористаємося командою fbGetLongTimeToken з пакету rfacebookstat:
longToken <- fbGetLongTimeToken(client_id = XXXXXXXXXX, client_secret = "YYYYYYYYYYY", fb_exchange_token = fbToken)
де замість XXXXXXXXXX потрібно ввести ідентифікатор програми, замість YYYYYYYYYYY секрет цієї програми, а замість fbToken має бути значення короткострокового токена.
Тепер можна розпочати збирання даних.
Отримуємо необхідні дані з рекламного кабінету 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. Для цього переходимо на вкладку Адміністратор і на рівні ресурсу вибираємо пункт Імпорт даних:
Далі необхідно створити набір для імпорту типу “Дані про витрати”, вказати назву та вибрати представлення, в які імпортуватимемо дані, а також вказати додаткові налаштування:
Перейшовши в щойно створений набір імпорту і натиснувши кнопку “Отримати схему” ви побачите, як повинні виглядати ваші дані для імпорту.
Якщо ви уважні, то помітите, що наші дані з 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)
У результаті ви отримаєте таблицю такого виду:
О так, це те, що нам потрібно! Давайте завантажимо ці дані в Google Analytics за допомогою R.
Налаштовуємо щоденне автоматичне завантаження необхідних даних за допомогою R
Для того, щоб працювати з даними Google Analytics за допомогою API, нам знадобиться отримати токен розробника або створити сервісний акаунт. Ми підемо другим шляхом.
Створюємо сервісний обліковий запис для роботи з API Google Analytics
Переходимо в Google Developers Console , вибираємо пункт створити проект та вводимо назву. Після цього переходимо на вкладку “Бібліотека” та у списку доступних API шукаємо Analytics API:
Тепер потрібно включити доступ до Google Analytics за API:
Створюємо ключ сервісного облікового запису у форматі JSON. Зробити це можна на вкладці “Облікові дані”. Назву можете задати будь-яку:
У наступному вікні вибираємо пункт “Створити обліковий запис без ролі”:
Тепер необхідно відкрити сервісний обліковий запис доступ до аналітики. Для цього переходимо до створеного сервісного облікового запису та на вказану пошту надаємо доступ у 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 – Ідентифікатор ключа сервісного облікового запису;
- ACCOUNT_ID – ідентифікатор облікового запису Google Analytics;
- SOURCE_ID – Ідентифікатор ресурсу Google Analytics;
- IMPORT_ID – Ідентифікатор набору імпорту даних;
- YOUR_DATA – набір даних, який ви хочете імпортувати. У нашому випадку він називався fb_data.
Після успішного виконання скрипта ви побачите наступне повідомлення в консолі R:
Відповідна інформація також з’явиться в інтерфейсі Google Analytics. У наборі даних імпорту:
І у звіті Аналіз витрат:
Так як стаття вийшла не маленькою, інформацію про те, як запланувати автоматичне виконання скрипту , читайте в попередній статті цього блогу.
Ми розібрали на прикладі даних з Facebook, як імпортувати дані про витрати в Google Analytics за допомогою R, але дані спосіб підходить і для інших рекламних систем, а також для імпорту даних про витрати на такі джерела, як SEO та E-mail.
Як ви імпортуєте історичні дані про витрати з різних рекламних систем у Google Analytics?