Покроковий гайд: Як налаштувати автоматичний імпорт витрат з рекламних кабінетів до Google Analytics 4 на прикладі Facebook Ads
Колись в Universal Analytics була одна дуже популярна функція: імпорт даних про витрати з різних рекламних кабінетів до Google Analytics. Безліч сервісів пропонували свої рішення, і в інтернеті було багато кастомних рішень (свій варіант на R я описував на блозі, лінку не буде, так як це вже не актуально наразі). З приходом Google Analytics 4 бачу, що популярність функції дуже впала: чи то всі почали працювати з BigQuery і забули про інтерфейс GA4; чи просто всі бояться страшних букв SFTP, через які команда GA4 пропонує автоматизувати цей процес.
Якщо ви так само, як і я, полюбляєте роботу з BigQuery, то я вас розумію, і розумію, чому ви можливо навіть не знаєте про функцію імпорту даних до GA4. Зазвичай ми хочемо все вивантажити до BigQuery і там вже робити все, що потрібно, без обмежень, які існують в інтерфейсі. Але все ж інколи є переваги і зворотного шляху, про що я розповім нижче.
Якщо ж ви давно хотіли налаштувати такий імпорт, але не знали, як підступитись до SFTP, то ця стаття точно для вас.
В будь-якому випадку, думаю, ми всі точно сходимось на тому, що бігати по різних рекламних кабінетах і GA4, щоб проаналізувати маркетингові активності, це дуже виснажливо для маркетолога і тому цей процес точно потрібно автоматизувати. Саме про це ми і поговоримо далі:
- Чому важливо автоматизувати імпорт витрат на рекламу, не пов’язану з Google, в Google Analytics 4
- Загальний огляд процесу імпорту даних до GA4
- Підготовка даних для імпорту
- Детальний огляд ручного налаштування імпорту
- Покрокова інструкція з налаштування автоматичного імпорту витрат до GA4
- Загальний огляд процесу
- Покроковий гайд з налаштування автоматичного імпорту на базі Google Cloud Platform
- Налаштування OpenSSH
- Створення окремого користувача для SFTP
- Налаштування папки, де буде зберігатись потрібний файл
- Оновлення конфігурацій SSH для налаштування SFTP-з'єднання з обмеженим доступом
- Налаштування передачі даних з BigQuery на сервер
- Налаштування джерела даних в GA4 та додавання SSH ключа на сервер
- Як додати SSH ключ на сервер?
- Налаштування прав доступу до ключів
- Замість висновку
Якщо вас цікавить тільки покроковий гайд з автоматизації процесу, достатньо прочитати тільки два пункти:
Чому важливо автоматизувати імпорт витрат на рекламу, не пов’язану з Google, в Google Analytics 4
Трохи я вже писав про це вище, але ось повний список причин:
- Економія часу. Тут думаю все зрозуміло: маркетологу не потрібно бігати по різним рекламним кабінетам і витрачати на це час. І це не як делегування, коли замість маркетолога щоденні звіти готує PPC-шник. Система все зробить за вас.
- Звичний інтерфейс. Маркетологу не потрібно вивчати рекламний кабінет Facebook чи LinkedIn, щоб дізнатись де там подивитись потрібні показники по витратам. Все доступно в звичному інтерфейсі GA4.
- Показники, яким всі довіряють. Думаю кожен хто працює в інтернет-маркетингу хоч раз стикався з ситуацією, коли в рекламному кабінеті показники не співпадають з даними в GA4. Ми не будемо тут зупинятись на логічних причинах такого розходження: різних моделях атрибуції, питання ідентифікації користувачів на різних платформах і т.д. Хочу звернути увагу на інше - більшість спеціалістів довіряють даним GA4 про кількість конверсій. Не те щоб це було дуже правильно, але факт є фактом. Facebook навіть інтеграцію з GA4 робить через це. Висновок - маркетологи хочуть бачити дані по витратам в GA4, тому що хочуть рахувати ROAS за даними GA4, а не за даними рекламних кабінетів.
- Можливість швидко візуалізувати дані, які є в GA4. І тут я не тільки про роботу в інтерфейсі GA4. Хоч якби я не полюбляв роботу з BigQuery та Power BI реальність така, що більшість маркетологів не працює з цими інструментами. Маркетологи полюбляють Looker Studio. Але додати дані з Facebook в звіт Looker Studio може бути складною задачею. А от підтягнути дані в звіт, які вже є в GA4 справа всього кількох кліків.
Звісно, візуалізувати в Looker Studio дані, отримані напряму з GA4, не найкраща практика, але я розумію чому маркетологи так роблять, особливо, якщо ми говоримо про малий та середній бізнес. Я б також міг тут розписати переваги роботи з BigQuery для маркетолога, але тема цієї статті інша, та й про це вже була стаття раніше. Навіть є окремий курс про роботу з даними в BigQuery - BigQuery for Marketing.
Резюмуючи все це, маркетологам досить часто потрібно мати дані про рекламні витрати зі всіх рекламних кабінетів в GA4.
Загальний огляд процесу імпорту даних до GA4
В цій статті я зупинився тільки на імпорті даних про витрати. Це досить велика тема, і детальна розповідь тут ще й про інші типи імпорту могла б трансформувати статтю в повноцінну книгу. Проте в GA4 ви можете імпортувати набагато більше інформації. Звісно, завантаження різних даних має свої нюанси, але загальний процес буде схожим. Нижче повний перелік даних, які можна імпортувати:
- Cost data (Дані про витрати): Дані про кліки, витрати і покази з рекламних кабінетів третіх сторін, тобто НЕ з рекламних кабінетів Google. Саме про це ми тут і говоримо.
- Item data (Дані про позицію): Дякую, звісно, команді Google за наявність українського перекладу, але інколи хочеться задати питання: “За що ви так з нами?” Як зрозуміло з назви, в англійській версії інтерфейсу це можливість передати метадані товарів, таких як розмір, колір, стиль або інші характеристики продукту. Для чого це робити, якщо є налаштування Ecommerce? - Ну, наприклад, у вас є технічні складнощі з передачею детальної інформації на сайті під час дії користувача.
- User data: Інформація про користувача, наприклад, рейтинг лояльності чи LTV. Використовується для створення сегментів і ремаркетингових списків. Є два варіанти імпорту:
- User data by User ID (Дані користувача за ідентифікатором користувача) - тобто за допомогою User ID.
- User data by Client ID (Дані користувача за ідентифікатором клієнта) - тобто використовуючи Client-ID та/або App_Instance_ID.
- Offline events (Дані офлайн-події): Можливість передавати інформацію про офлайн-події з джерел, що не мають доступу до інтернету або не підтримують збір подій у реальному часі.
Custom event data (Дані про спеціальні події): Імпорт метаданих подій через стандартні поля та/або користувацькі виміри.
Загалом весь процес імпорту можна описати такими етапами:
- Обираємо, який тип даних хочемо завантажити до GA4. В нашому випадку це буде Cost data (Дані про витрати).
- Вибираємо спосіб імпорту. Якщо ваша CRM не Salesforce, то варіантів лише 2:
Якщо вас цікавить конкретний, а не всі можливі варіанти, просто клікніть на потрібний варіант.
4. Налаштовуємо імпорт даних до Google Analytics 4. (вручну або атоматично)
Підготовка даних для імпорту
Незалежно від того, хочете ви грузити свої дані вручну, чи автоматично, вам доведеться підготувати їх в однаковому форматі. Чому так? Тому що в будь-якому випадку GA4 очікує, що ви надасте csv файл. Просто у випадку ручного завантаження ви його ще й завантажите до GA4, а у випадку налаштування через SFTP GA4 сам забере з вашого сервера.
Завантажити офіційний шаблон файлу можна, клікнувши тут. Зверніть увагу, скачування розпочнеться одразу.
Ви також можете бачити приклад на скріншоті нижче:
Загалом в шаблоні є 5 параметрів та 3 показники. Ось повний перелік назв:
Параметри (зверніть увагу, всі параметри, окрім campaign_name
, є обов’язковими. Але я вам дуже рекомендую передати campaign_name
теж - аналізувати ефективність кампаній по ID виглядає, м’яко кажучи, не дуже зручно):
campaign_id
- відповідає UTM параметруutm_id
. Так, вам не здалось. У стандартних правилах UTM-розміткиutm_id
зустрінеш не часто. Але саме на цьому параметрі, можна сказати, будується імпорт витрат в GA4campaign_name
- відповідає UTM параметруutm_campaign
source
- відповідає UTM параметруutm_source
medium
- відповідає UTM параметруutm_medium
date
- дата за яку ви завантажуєте дані
Показники (теоретично кожен з показників є необовязковим, але скоріш за все ви захочете передавати всі):
impressions
- кількість показів по рекламній кампанії за дату, ціле числоclicks
- кількість кліків по рекламній кампанії за дату, ціле числоcost
- сума витрат по рекламній кампанії за дату у форматі 0,000.00. Зверніть увагу, розділювач десяткових знаків крапка (.).
Тобто, щоб процес імпорту пройшов успішно, перш за все потрібно розмітити свої рекламні активності потрібними параметрами і вже потім налаштовувати сам імпорт.
Приклад розмітки для Facebook нижче. Основна її ідея в тому, що вам потрібно передати в get-параметри UTM потрібні значення з рекламного кабінету.
Зазвичай вам потрібно перейти на рівень оголошення і прописати до кінцевого URL, який використовується в оголошенні додаткові атрибути UTM. В Facebook це можна зробити тут:
- Якщо ви хочете прописати значення вручну - введіть їх в поле Website URL. В цьому випадку, щоб зменшити ймовірність помилки рекомендую скористатись Campaign URL Builder.
- Якщо ж ви хочете скористатись автопідстановкою - скористайтесь пунктом Build a URL parameter і налаштуваннями з наступних скріншотів:
- Налаштування стандартних параметрів:
- Налаштування кастомного параметра
utm_id
Фінальний URL у випадку використання параметрів автопідстановки повинен виглядати так:
Зверніть увагу, що при використанні параметра підстановки {{campaign.name}} Facebook використає ім'я кампанії яке було в неї в момент першої публікації. Про що він прямо там вам і напише. А це значить, що автопідстановка спрацює правильно для нашої задачі тільки у випадку, якщо назви кампаній ніколи не змінювались і не будуть змінюватися. В іншому випадку у вас будуть проблеми з імпортом.
Сподіваюся, ви завжди використовуєте best practice техніки і ніколи не змінюєте назви рекламних кампаній.
Зверніть увагу, налаштування імпорту витрат є сенс робити тільки для рекламних кампаній, які приводять трафік на сайт. У випадку кампаній які спрямовані на повідомлення в Facebook, Instagram чи інші активності всередині платформ Meta не має сенсу передавати інформацію про витрати до GA4, оскільки такі конверсії GA4 не відслідковує і ROAS ви там не побачите.
Окрім розмітки всередині рекламного кабінету вам знадобиться також вивантажити дані з рекламного кабінету в csv. Тут як ви розумієте є два варіанти:
Нижче поговоримо про обидва варіанти.
Ручне вивантаження з рекламного кабінету
Взагалі команда Google підготувала досить гарні інструкції, як підготувати потрібний файл в популярних рекламних системах, але на прикладі Facebook я покажу нижче процес.
- Переходимо до рекламного кабінету в блок Ads Reporting та натискаємо Create report.
2. Вказуємо потрібну нам назву репорта та вибираємо потрібний акаунт.
3. І праворуч вибираємо потрібні показники та параметри. Фінально має вийти як на скріні:
4. Тепер експортуємо дані в файл формату csv.
5. Залишилось відкрити файл, змінити назви колонок на потрібні нам. І Додати дві нові колонки source
і medium
зі значенням facebook
та cpc
відповідно. В результаті має вийти csv файл приблизно такого вигляду
Якщо ви хочете вручну завантажити отримані дані до ресурсу GA4 для продовження перейдіть до пункту Детальний огляд ручного налаштування імпорту. Якщо хочете дізнатись як автоматизувати процес отримання даних - читайте далі.
Автоматичне вивантаження через API
Звісно, що робити таку рутинну роботу руками — процес не оптимальний. Тому найкраще рішення — його автоматизувати. Оскільки я намагаюся написати покроковий мануал, який зможе виконати і нетехнічний спеціаліст, я скористаюся стандартним експортом з рекламного кабінету Facebook до BigQuery, про який я вже писав раніше. Якщо ж із якоїсь причини вам не підходить такий варіант, в інтернеті ви можете знайти безліч інших способів налаштування імпорту даних з Facebook у файл чи базу даних.
У випадку використання експорту, про який я писав вище, щоб отримати потрібні дані, ви можете скористатися наступним запитом:
SELECT
DateStart AS event_date,
CampaignId AS campaign_id,
CampaignName AS campaign_name,
"facebook" AS source,
"cpc" AS medium,
Spend AS costs,
LinkClicks AS clicks,
Impressions AS impressions
FROM ENTER_YOUR_DATASET_NAME_HERE.AdInsights
В цьому SQL запиті вам потрібно буде замінити лише значення ENTER_YOUR_DATASET_NAME_HERE на своє. Його ви отримаєте на етапі налаштування трансферу.
Ви можете помітити, що в запиті я використовую LinkClicks
а не просто Clicks
, оскільки не всі кліки, які рахує Facebook ведуть на сайт. А в інтерфейсі GA4, на мою думку, є сенс аналізувати тільки ті кліки, які ведуть на сайт. Якщо у вас інша думка - можете замінити назву показника в запиті.
Щоб отримати потрібні дані для ручного завантаження - скористайтесь можливістю зберегти результат як csv файл, як показано на скріні.
Якщо ж ви хочете використати ці дані для автоматичного експорту збережіть запит як View.
Швидше за все вам також знадобиться задати фільтр по датам, щоб не завантажувати до GA4 постійно всі дані. Це можна зробити додавши знизу SQL запита наступний рядок:
WHERE TIMESTAMP_TRUNC(_PARTITIONTIME, DAY) = TIMESTAMP(CURRENT_DATE() - 1)
де TIMESTAMP(CURRENT_DATE() - 1)
відповідає за вчора. При необхідності змініть на потрібне.
Ну що ж, тепер у вас все є, і залишилось лише завантажити потрібні дані до GA4.
Детальний огляд ручного налаштування імпорту
Тепер, коли у вас є файл з потрібними даними прийшла пора попрацювати з GA4.
- Перейдіть до налаштувань імпорту в Admin (Адміністратор). Та натисніть Create data source (Створити джерело даних).
2. У вікні, що з'явилося введіть назву джерела даних, та оберіть тип Cost Data (Дані про витрати).
Зверніть увагу, що у вас буде всього один набір даних для налаштування імпорту витрат, тому не має сенсу називати його з прив'язкою до рекламного кабінету, наприклад Facebook data import. Краще дати загальну назву.
3. У пункті Upload data for import (Завантаження даних для імпорту) обираємо Manual CSV upload (Завантаження файлів CSV вручну) та натискаємо Upload CSV (Завантажити файл CSV). Знайдіть потрібний файл на своєму ПК та натисніть кнопку Next (Далі) в верхньому правому куті.
4. На кроці Mapping (Зіставлення) вам потрібно співставити колонки в файлі зі схемою імпорту. Все досить логічно, але якщо будуть складнощі дивіться скрін нижче. Після співставлення схеми не забудьте натиснути кнопку Import (Імпортувати).
5. Якщо все зроблено вірно, то через декілька хвилин, відкривши налаштування імпорту, ви побачите, що дані імпортовано:
Результат імпорту даних про витрати до Google Analytics 4
А ще через деякий час отримаєте новий звіт GA4, в топіку Acquisition (Джерела трафіку).
Там можна буде побачити й фактичні завантажені дані, як на скріні нижче:
Якщо проскролити звіт праворуч, побачите основні розрахункові показники.
Зверніть увагу, що згідно з офіційною довідкою GA4 може знадобитися до 24 годин, щоб обробити ваші дані, і вони почали показуватися у звіті:
Тому найкращий спосіб швидкої перевірки: подивитися на Match rate (Коефіцієнт збігу) у результатах імпорту. Якщо він НЕ 0%, то просто зачекайте, і дані почнуть відображатись в звіті.
Покрокова інструкція з налаштування автоматичного імпорту витрат до GA4
Загальний огляд процесу
Ну що ж, настав час найцікавішого. Я думаю, що більшість прийшла читати цю статтю саме через цей пункт.
Якщо говорити про загальний процес, він виглядає так:
- Налаштувати свій SFTP сервер. Можна з 0, можна скористатися вже існуючим, якщо такий є.
- Налаштувати процес передачі або формування файлу з даними на сервері.
- Налаштувати в GA4 автоматичний щоденний імпорт даних із сервера до ресурсу.
Нижче я розгляну покроковий план дій у випадку, якщо ваші дані про витрати з рекламного кабінету вже лежать в BigQuery і у вас не має SFTP сервера (це значить, що ми налаштуємо його з нуля на базі Google Cloud Platform)
Покроковий гайд з налаштування автоматичного імпорту на базі Google Cloud Platform
Налаштування автоматизації вивантаження даних в GA4 через SFTP може здатися технічно складним, але розбиваємо процес на прості кроки, і вже стає набагато простіше ))
Зверніть увагу, в GA4 може бути лише один data source типу Cost Data (Дані про витрати). Змінювати його потім не можна, лише перестворювати.
Налаштування SFTP сервера
Різні операційні системи можуть мати свої нюанси, нижче розглянемо випадок з Debian (Linux).
Створення сервера на базі Compute Engine в GCP
Перший крок - піднімаємо свій сервер в середовищі Compute Engine. Для цього перейдіть до Compute Engine > VM Instanse і створіть окремий інстанс.
Якщо ви раніше не використовували Compute Engine в Google Cloud, вам спочатку потрібно буде ввімкнути цей сервіс. Просто натисніть Enable і зачекайте декілька хвилин.
- Натискаємо Create Instance.
2. Нам достатньо буде найпростішого базового екземпляру, тому більшість налаштувань ми залишимо в варіанті за замовчуванням. Єдине, що потрібно змінити: Назву (тут введіть будь-яку) та Machine type. Для останнього ми виберемо e2-micro
. Це найдешевший екземпляр.
Праворуч збоку Google вже пропонує вам розрахунок.
Як бачимо, орієнтовна вартість на місяць - $7.11. Але в більшості випадків це насправді буде для вас безкоштовно. Якщо цікаво чому, читайте примітку нижче. Але перш ніж перейти до неї, натисніть кнопку Create знизу сторінки.
GCP має безкоштовні сервіси, які ви можете використовувати без оплати. Такий свого роду фріміум. При цьому кожного місяця ваші квоти оновлюються. Серед цих квот є і безкоштовний екземпляр e2-micro VM
, який ми з вами й використаємо. Зверніть увагу, на регіон - безкоштовний екземпляр доступний тільки в Орегоні, Айові та Південній Кароліні.
Детальніше про всі безкоштовні сервіси - в довідці.
Якщо все пройшло успішно, то через декілька хвилин ви побачите новий інстанс.
Тепер, коли сервер готовий, давайте підключимось і підготуємо його. Щоб підключитись через браузер натисніть на надпис SSH в колонці Connect. Після авторизації і близько хвилини налаштування підключення ви повинні побачити щось таке:
Саме в консолі ми й продовжимо з вами роботу. Не хвилюйтесь, всі потрібні команди я надаю нижче.
Налаштування OpenSSH
Перший крок – це встановлення OpenSSH на сервері. OpenSSH дозволяє організовувати захищені з'єднання, що гарантує безпеку даних, переданих між вашим сервером і Google Analytics 4. Через це з'єднання GA4 зможе забирати файли з вашого SFTP-сервера без загрози для конфіденційності або цілісності даних.
Конкретно для нашого сервера цей крок можна пропустити, оскільки Google вже зробив це для вас.
Якщо ви використовуєте інший сервер, то в цій примітці ви знайдете інструкцію, як встановити OpenSSH:
Для початку потрібно оновити список доступних пакетів на вашому сервері, щоб переконатися, що ви встановлюєте найновішу версію програмного забезпечення. Для цього скористайтесь командою:
sudo apt update
Після цього встановлюємо сам пакет OpenSSH:
sudo apt install -y openssh-server
Остання команда інсталює OpenSSH на ваш сервер і автоматично запустить його. Якщо OpenSSH вже встановлений, ви просто отримаєте повідомлення про те, що він вже є на вашій системі.
Створення окремого користувача для SFTP
Наступний крок - створення окремого користувача, який буде використовуватись спеціально для SFTP-з'єднань. Наявність окремого користувача для SFTP це також питання безпеки. Цей користувач матиме доступ лише до своєї папки, і навіть якщо він буде зламаний, доступ до інших частин системи буде обмежений.
Щоб створити нового користувача, використовуйте команду:
sudo adduser sftpuser
Ця команда створить нового користувача. Зверніть увагу, останнє слово в команді це і є ім'я користувача. Тобто команда з мого прикладу створить користувача з іменем sftpuser
.
Вам потрібно буде задати пароль для цього користувача та кілька додаткових деталей, таких як ім'я, номер телефону тощо. Можна залишити ці поля порожніми, натиснувши Enter.
Зверніть увагу, при вводі паролю вам може здатись, що нічого не відбувається - це нюанс роботи з системами Linux. Просто продовжуйте вводити і натисніть Enter по завершенню.
Якщо все пройшло успішно ви побачите в консолі приблизно наступне:
Налаштування папки, де буде зберігатись потрібний файл
Тепер потрібно створити спеціальну директорію (папку), в якій будуть зберігатися файл з витратами, який ви хочете передати до GA4.
Чому потрібна окрема директорія? Знову ж таки - це питання безпеки.
Щоб створити нову папку використайте наступні команди:
sudo mkdir -p /home/sftpuser/uploads
Ця команда створює директорію uploads для користувача sftpuser
.
Наступним кроком є зміна власника цієї папки:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser/uploads
Ці команди гарантують, що користувач sftpuser
має повний доступ до директорії uploads
, де він може створювати та змінювати файли, а основна директорія /home/sftpuser
належить користувачеві root і захищена від модифікацій іншими користувачами.
Оновлення конфігурацій SSH для налаштування SFTP-з'єднання з обмеженим доступом
Наступний крок – оновлення конфігурацій SSH для налаштування SFTP-з'єднання з обмеженим доступом.
Чому потрібно оновлювати конфігурацію SSH? Думаю ви вже знаєте відповідь - знову ж таки вся справа в безпеці.
За замовчуванням SSH налаштовується для надання повного доступу до сервера, що небезпечно для облікового запису SFTP. Наше завдання – обмежити доступ тільки до необхідних директорій і команд, щоб зменшити ризик потенційних загроз.
Щоб оновити конфігурацію відкрийте файл налаштувань SSH за допомогою команди:
sudo nano /etc/ssh/sshd_config
Після виконання команди ви побачите щось таке:
Далі знайдіть і змініть рядок, який відповідає за Subsystem sftp. Використовуйте стрілки вгору-вниз для переміщення в файлі.
Subsystem sftp internal-sftp
Вигляд до зміни:
Після цього додаємо новий блок правил для користувача sftpuser
, щоб обмежити його дії тільки роботою з SFTP:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
Фінальний вигляд:
Для тих, кому цікаво, що тут відбувається:
- ChrootDirectory: обмежує користувача sftpuser лише його домашньою директорією. Це означає, що він не зможе бачити інші частини файлової системи.
- ForceCommand internal-sftp: обмежує всі команди, що виконує користувач, тільки командами SFTP.
- AllowTcpForwarding no: забороняє пересилку TCP, що використовується для тунелювання мережевого трафіку через SSH.
- PermitTunnel no: забороняє створювати тунелі.
- X11Forwarding no: забороняє перенаправлення графічного інтерфейсу (не потрібне для SFTP).
Не забудьте зберегти налаштування. Найпростіший спосіб натиснути Ctrl+X, далі -Y на етапі підтвердження збереження змін та Enter.
Щоб зміни вступили в силу, потрібно перезапустити службу SSH наступною командою:
sudo systemctl restart sshd
SSH підключення ще не закривайте, воно нам знадобиться.
Налаштування передачі даних з BigQuery на сервер
Після налаштування доступу через SSH та SFTP користувача, наступним кроком буде організація файлів, які будуть передаватися на сервер.
Нагадаю, вище ми вже створили потрібну папку за адресою /home/sftpuser/uploads/
де sftpuser
- це ім'я вашого юзера. Тепер потрібно налаштувати передачу даних з BigQuery в нашу папку. Для цього потрібно зробити наступне:
Як створити сервісний акаунт та ключ в Google Cloud Platform
1. Створіть в Google Cloud окремий сервісний акаунт.
Для цього перейдіть по шляху IAM & Admin -> Service accounts.
та натисніть CREATE SERVICE ACCOUNT.
На етапі Service account details вкажіть назву та натисніть Create and Continue.
На наступному етапі надайте потрібні права: BigQuery Data Viewer та BigQuery Job User і натисніть Continue, щоб застосувати зміни.
Після цього натисніть Done.
Сервісний акаунт ми створили. Тепер потрібно створити ключ. Для цього оберіть потрібний сервісний акаунт, перейдіть на вкладку KEYS та натисніть кнопку Add Key.
У вікні, яке з'явилося, оберіть тип JSON та збережіть файл на ПК.
Як завантажити ключ сервісного акаунту на сервер
Для цього відкрийте консоль, де ми підключались до сервера через браузерний SSH, натисніть кнопку Upload file та оберіть ключ, який скачали на попередньому кроці.
Якщо все пройшло успішно, ви побачите знизу таке вікно:
Іноді в процесі завантаження файлу ваше підключення може розірвати. Просто спробуйте ще раз.
В такому випадку ключ буде знаходитись за адресою /home/m
де m
- ім'я вашого поточного користувача. Ви бачите його до знаку @
в терміналі.
Щоб отримати шлях до файлу ви також можете скористатись командою pwd
, як показано на скріні вище. Хоча ця команда показує в якій директорії ми знаходимось зараз, оскільки вище не було команд, які переміщали б нас в іншу директорію, ми можемо нею скористатись.
Як на сервері встановити пакет Google Cloud SDK
Це найпростіше завдання. Просто введіть наступну команду:
sudo apt-get install google-cloud-sdk
Цей пакет дозволить нам отримати дані з BigQuery.
Як налаштувати щоденне оновлення даних про витрати на сервері
Тепер все готово для того, щоб налаштувати автоматизацію. Зробимо ми це завдяки cron на щоденне вивантаження. Перед тим як почати цей останній крок, перевірте, чи ви підготували все потрібне. Нам знадобиться:
Зверніть увагу, ви зможете передавати до GA4 тільки один файл з витратами, тому якщо у вас декілька різних рекламних кабінетів всі данні повинні бути зібрані в рамках однієї View.
В прикладі я використовую View, оскільки так зручніше керувати змінами запиту за необхідності. Але як ви побачите нижче ви можете використати будь-який SQL запит.
Для того щоб відкрити файл з запланованими задачами cron, запустіть наступну команду:
sudo crontab -e
При виконанні команди вас може запитати, який текстовий редактор відкрити файл. Просто оберіть потрібний, вказавши його номер. Нижче я показую приклад з nano (1)
.
У файлі, що відкрився, вкажіть наступну команду:
GOOGLE_APPLICATION_CREDENTIALS=[FULL_PATH_TO_YOUR_KEY]
[CRON_EXPRESSION] gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS; bq query --use_legacy_sql=false --format=csv 'SELECT * FROM `[BQ_VIEW]`' > /home/[YOUR_SFTP_USER_NAME]/uploads/[YOUR_FILE_NAME].csv
Не забудьте підставити свої змінні замість наступних значень (підставляйте значення одразу, без квадратних дужок):
[FULL_PATH_TO_YOUR_KEY]
- шлях до вашого ключа. Робили тут
[CRON_EXPRESSION]
- це вираз, в якому вказана частотність оновлення даних. Наприклад ось такий вираз відповідає за щоденне оновлення о 9 ранку: 0 9 * * *
[BQ_VIEW]
- повна назва View. Наприклад: test-at-1.sql_test.fb_cost_data
. Робили тут.
[YOUR_SFTP_USER_NAME]
- ім’я вашого SFTP юзера. Робили тут.
[YOUR_FILE_NAME]
- назва файлу, яку ви хочете використовувати. Знадобиться на останньому кроці. Оскільки в моєму прикладі витрати тільки по Facebook Ads, то я назву файл facebook.csv
Фінальний варіант в моєму випадку виглядає так:
GOOGLE_APPLICATION_CREDENTIALS=/home/m/test-at-1-a0ff8f7e0d93.json
0 9 * * * gcloud auth activate-service-account --key-file=$GOOGLE_APPLICATION_CREDENTIALS; bq query --use_legacy_sql=false --format=csv 'SELECT * FROM `test-at-1.sql_test.fb_cost_data`' > /home/sftpuser/uploads/facebook.csv
Отак має виглядати в кроні фінально:
Тепер цей файл буде доступний для Google Analytics 4 через SFTP за адресою sftp://[YOUR_SERVER_IP]/uploads/facebook.csv
Не забудьте переконатись, що файл регулярно оновлюється.
Налаштування джерела даних в GA4 та додавання SSH ключа на сервер
Останній крок – налаштування Google Analytics 4 для отримання даних через SFTP.
Для цього перейдіть до GA4 та почніть створення джерела даних.
Далі вкажіть назву, оберіть тип даних Cost data (Дані про витрати) та Import source (Джерело імпорту) - SFTP. У поля, що з'явилися, вкажіть потрібні значення:
- SFTP server username (Дані про витрати) - Ім'я вашого SFTP юзера. Робили тут. В моєму випадку
sftpuser.
- SFTP server url (URL-адреса сервера SFTP) - лінк на ваш файл. Робили тут.
У пункті Як налаштувати щоденне оновлення даних про витрати на сервері ми отримали ось такий URL:
sftp://[YOUR_SERVER_IP]/uploads/facebook.csv
[YOUR_SERVER_IP]
ви можете знайти на екрані інстансів в Compute Engine в колонці External IP.
Не забудьте також обрати час, коли GA4 буде “ходити” на ваш сервер за даними. Фінально налаштування мають виглядати так:
Якщо все вірно - Натисніть Next (Далі) у правому верхньому куті.
На наступному етапі система попросить співставити назви полів в GA4 та колонок у вашому файлі. Тут, думаю, має бути зрозуміло, що робити, ну і вище вже про це писав.
Після співставлення натисніть Create & Generate key (Створити джерело даних і згенерувати ключ).
На фінальному етапі система надасть вам SSH ключ, який потрібен для аутентифікації на вашому сервері. Цей ключ дозволить GA4 підключатися до сервера і завантажувати файли.
Як додати SSH ключ на сервер?
Щоб додати ключ, потрібно створити або відредагувати файл authorized_keys
для користувача sftpuser
:
sudo mkdir -p /home/sftpuser/.ssh
sudo nano /home/sftpuser/.ssh/authorized_keys
Додайте отриманий SSH ключ до цього файлу і збережіть зміни.
Налаштування прав доступу до ключів
Щоб ключі працювали коректно, потрібно налаштувати правильні права доступу. Так, ми знову про питання безпеки)
sudo chown -R sftpuser:sftpuser /home/sftpuser/.ssh
sudo chmod 700 /home/sftpuser/.ssh
sudo chmod 600 /home/sftpuser/.ssh/authorized_keys
Ці налаштування гарантують, що лише користувач sftpuser
матиме доступ до SSH ключів.
Переконайтеся, що ключ правильно доданий і права доступу налаштовані. Якщо права встановлені неправильно, GA4 не зможе підключитися до сервера.
Це був завершальний етап налаштування автоматизованого вивантаження даних в GA4 через SFTP.
Це був завершальний етап налаштування автоматизованого вивантаження даних в GA4 через SFTP.
Тепер поверніться до GA4 та натисніть кнопку Import Now (Імпортувати зараз) або дочекайтесь автоматичного завантаження згідно розкладу.
Якщо все пройшло успішно, ви побачите інформацію про це:
Ну і, звісно, дані з'являться у звітах. Детальніше я писав про це вище в пункті Результат імпорту даних про витрати до Google Analytics 4
Якщо потрібно ви також можете підвантажити історичні дані про витрати за період до 90 днів назад.
Вітаю! Тепер ви маєте повністю налаштовану систему, яка безпечно передає дані з вашого сервера в GA4 на регулярній основі.
Не так вже ж і складно, правда?
Замість висновку
Так, автоматизований імпорт даних до GA4 потребує певних технічних знань та вмінь і, можливо, комусь ця стаття здалась дуже “технічною”, навіть попри мої намагання зробити весь опис процесу максимально детальним і з максимальною кількістю пояснень. Але все ж це рішення, яке в результаті може допомогти вам зекономити багато часу, який ви витрачаєте на щоденне “бігання” по рекламних кабінетах та GA4. Тепер все буде в одному місці. Тому воно вартує витраченого часу на впровадження.
Звісно, це ще не повноцінний репорт в Power BI на основі “сирих даних” з BigQuery, але для багатьох бізнесів такої автоматизації буде достатньо на деякий час.
До речі, дізнатись більше про роботу з даними в інтерфейсі GA4 та навчитись будувати такі повноцінні репорти в Power BI на основі “сирих даних” з BigQuery ви можете на курсі PRO ANALYTICS.
А як ви працюєте з даними про витрати з рекламних кабінетів в своєму бізнесі: завантажуєте до GA4 чи все ж будуєте власні звіти на “сирих даних”? Поділіться своїм досвідом у коментарях.
Comments