Автоматический импорт данных о расходах в Google Analytics 4. Часть I

21 марта, 2024

В других материалах моего блога мы рассматривали функцию импорта данных о расходах в Google Analytics 4, в том числе ручной способ передачи статистики на примере рекламного кабинета Яндекс.Директа и файла csv. В следующих нескольких публикациях я покажу, как можно автоматизировать этот процесс с помощью SFTP и своего сервера.

Рекомендую к прочтению:

Это руководство основано на материалах Ахмеда Али (Ahmed Ali) и его публикациях на ga4auditor.com с моими комментариями и дополнениями.

Как вы уже знаете, в Google Analytics 4 существует два типа источника импорта:

  • загрузка файлов CSV (вручную);
  • SFTP (автоматически).

Источники импорта

Первый способ подробно разобран у меня в блоге (см. ссылки выше) и у других авторов в интернете. А вот последний - это редкость. Именно его мы и будем разбирать далее.

Итак, SFTP (Secure File Transfer Protocol) - протокол, осуществляющий передачу файлов при помощи технологии SSH. Это наиболее безопасный метод передачи файлов в сети, применяемый большинством организаций по всему миру. Он позволяет автоматически отправлять данные с вашего сервера в Google Analytics 4. SSH-сервер обычно прослушивает соединения на TCP-порту 22.

Но для этого вам нужно место (хранилище), куда вы будете автоматически загружать статистику из рекламного кабинета, а затем оттуда посредством подключения через имя пользователя и заданный URL вашего SFTP-сервера Google будет забирать ваши данные по расписанию. Но поскольку мы работаем с продуктами и сервисами Google, то далее мы будем использовать облачную платформу на Google Cloud.

В этом материале вы узнаете, как настроить SFTP-сервер в Googe Cloud и выполнить аутентификацию Google Analytics 4 для доступа к SFTP-серверу с использованием открытого ключа.

Настройка SFTP-сервера

В качестве своего сервера, на который вы будете загружать csv файл со статистикой рекламной системы, может быть абсолютно любой сервис (Yandex Cloud, Amazon Web Services и другие) и даже обычный хостинг сайта.

Все нижеприведенные настройки вы сможете выполнить только после того, как привяжите свою банковскую карту к Google Cloud и будете иметь активный платежный аккаунт. Если вы этого не сделаете, то и воспользоваться Google Cloud не сможете. В связи с текущими событиями в мире Google приостановил работу для пользователей из России. На момент публикации этого материала вы не сможете привязать свою банковскую карту, выпущенную на территории РФ. Наиболее простое и эффективное решение - выпустить карту другой страны (Казахстан, Киргизия, Армения и т.д.), чтобы иметь возможность пользоваться Google Cloud и оплачивать счета. Поэтому для начала убедитесь, что ваш платежный аккаунт активен, биллинг работает, а уже затем переходите к настройкам ниже. Либо же используйте сервер от другого поставщика.

Создание проекта в Google Cloud

Чтобы создать новый проект, используйте любую учетную запись Gmail и перейдите в Google Gloud по ссылке. Если вы работаете с облаком Google впервые, то вас попросят указать страну и согласиться с условиями использованиями Google Cloud Platform:

Начало работы с Google Cloud

В связи с текущими событиями в мире Google приостановил работу для пользователей из России. На момент публикации данной статьи вы не сможете привязать свою банковскую карту, выпущенную на территории РФ, чтобы использовать все возможности Google Cloud Platform, а также выбрать страну Россия из списка. Поэтому выберете из списка наиболее подходящую и нажмите Agree and continue.

На открывшейся странице Google Cloud в левом верхнем углу нажмите на Select a project:

Выбор проекта

И создайте проект - NEW PROJECT:

Создание нового проекта

В поле Project name вы можете оставить автоматически добавленное название проекта, а можете указать свое собственное название, например cost-import-data-ga4:

Название проекта

В завершение нажмите кнопку Create (Создать). В вашем Google Cloud будет создан новый проект. Об этом будет свидетельствовать уведомление в правом верхнем углу (Notifications):

Уведомление о создании проекта

Создание виртуальной машины

Перейдите в консоль GCP и активируйте Compute Engine API.

Включение Compute Engine API

Эта служба нужна для создания и запуска виртуальной машины на Google Cloud Platform.

После включения вам откроется страница с Compute Engine. Нажмите на кнопку Create Instance, чтобы создать новый экземпляр виртуальной машины:

Создание виртуальной машины

Укажите имя своего экземпляра (например, ga4-sftp) и выберите конфигурацию машины E2 с типом e2-micro (2 vCPU, 1 core, 1 GB memory):

Конфигурация виртуальной машины

Альтернативно вы можете выбрать любой другой тип машины в соответствии с вашими конкретными требованиями. Однако для импорта данных о расходах вам не нужно ничего особенного и мощного, поэтому машины типа micro E2 будет достаточно. Справа сверху будет показана стоимость аренды вычислител

Важно: если согласно вашему законодательству вам необходимо хранить данные на территории той страны, где вы работаете/присутствуете (актуально для ЕС), то в разделе Region измените локацию на соответствующую. Например, на europe-central2 (Warsaw):

Изменение региона

Если это не принципиально для вас, то можете оставить значение по умолчанию. Однако стоимость аренды в зависимости от региона может отличаться. После выбора соответствующей конфигурации вы можете увидеть в правом верхнем углу примерную ежемесячную стоимость виртуальной машины:

Стоимость виртуальной машины (в месяц)

В дополнительных настройках (Advanced options) перейдите к разделу Networking и в поле Network tags введите ga4-sftp в качестве правила брандмауэра. Это правило будет создано на следующем шаге и позволит нам предоставить порт 22 для SFTP-сервера.

Network tags - ga4-sftp

В завершение нажмите кнопку Create (Создать):

Создание виртуальной машины

После этого в списке виртуальных машин должна отобразиться только что созданная VM:

Ваша созданная виртуальная машина

Настройка брандмауэра

Теперь, когда вы создали виртуальную машину, пришло время настроить брандмауэр, чтобы разрешить доступ к SFTP-серверу через порт 22. Для этого перейдите в Network Security по ссылке и в разделе Firewall policies нажмите на кнопку Create firewall rule (Создать правило брандмаэура):

Создание правила брандмауэра

Задайте название своего правила (например, ga4-rule):

Название правила

Затем в поле Targets tag установите для него значение ga4-sftp или которое вы задали на предыдущем шаге:

Target tags

Установите для параметра Source IPv4 ranges значение 0.0.0.0/0 , чтобы разрешить входящие соединения с любого IP-адреса. Это гарантирует, что SFTP-сервер сможет принимать соединения от Google Analytics 4:

Source IPv4 ranges

В разделе Protocols and ports поставьте галочку напротив TCP и в поле Ports укажите 22:

TCP Ports 22

TCP-порт 22 использует протокол управления передачей данных (TCP), который является одним из основных протоколов в сетях TCP/IP. TCP является протоколом с установлением соединения и требует квитирования для установки сквозной связи. Только после установления соединения пользовательские данные могут пересылаться в обоих направлениях.

Примечание: если вам интересно подробнее узнать о SSH и 22 порте, вы можете прочитать этот материал.

В завершение нажмите кнопку Create (Создать):

Создание правила брандмауэра

Поздравляю! Вы завершили настройку и применили правило брандмауэра, разрешающее входящие соединения через порт 22 для SFTP-сервера.

Установка SFTP-сервера

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

Виртуальная машина - SSH

В отдельном окне браузера вам откроется терминал (SSH-in-browser):

Окно терминала

Выполните следующие команды для установки сервера OpenSSH:

Поочередно вставьте/пропишите их в консоли и нажмите Enter:

Установка OpenSSH

Теперь создайте нового пользователя специально для вашего SFTP-сервера. Сделать это можно с помощью команды:

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

Создание нового пользователя

Затем вам будет предложено ввести и подтвердить новый пароль. Когда вы будете вводить пароль, вы не увидите его в терминале, и даже то, какое количество символов вы ввели. Поэтому будьте аккуратнее при вводе и подтверждении:

Ввод пароля

Затем вас попросят ввести дополнительную информацию о новом пользователе. Вы можете это сделать, а можете просто несколько раз нажать на клавишу Enter, а в конце написать y и подтвердить введенные значения для пользователя:

Подтверждение введенной информации

Строка в терминале Adding new user ... свидетельствует о том, что вы все сделали верно.

Уведомление об успешно созданном пользователе

Чтобы настроить сервер как аутентификации по паролю для доступа к SFTP-серверу через ваш скрипт Python, так и аутентификации с открытым ключом, которую Google Analytics 4 будет использовать для доступа к вашему серверу, выполните следующую команду, чтобы открыть файл конфигурации SSHD:

В терминале это будет выглядеть так:

Открытие конфигурационного файла

Чтобы разрешить доступ к серверу по паролю, найдите строку PasswordAuthentication и измените значение с no на yes. Там же добавьте строку PubkeyAuthentication со значением yes, чтобы получилось примерно следующее:

PasswordAuthentication и PubkeyAuthentication - yes

В самом низу конфига добавьте строку ClientAliveInterval 120:

ClientAliveInterval 120

Таким образом:

  • ClientAliveInterval - устанавливает интервал ожидания в секундах, по истечении которого, если от клиента не было получено данных, SSHD будет отправить сообщение по зашифрованному каналу, чтобы запросить ответ от клиента. По умолчанию равен 0;
  • PasswordAuthentication - означает, что проверка по паролю разрешена (yes);
  • PubkeyAuthentication - включение авторизации по SSH-ключам.

Эти строки гарантируют, что SSH-сервер поддерживает соединение, разрешает аутентификацию по паролю и аутентификацию с открытым ключом.

Чтобы сохранить сделанные изменения, нажмите Ctrl+S. Для выхода из GNU nano нажмите Ctrl+X. Если вы выходите из редактора, а файл изменен, nano предложит сохранить файл. Чтобы отказаться от сохранения, просто нажмите N, а для подтверждения - Y.

В завершение нажмите Enter

Теперь, когда эти настройки установлены, ваш сервер готов принимать соединения от Google Analytics 4 и ваших скриптов Python.

Аутентификация Google Analytics 4 для доступа к серверу с использованием открытого ключа

Теперь перейдите в интерфейс вашего ресурса Google Analytics 4 и создайте импорт данных:

Импорт данных в Google Analytics 4

Выберите тип данных Данные о расходах (Cost data) и задайте название источника данных. Например, Мой SFTP:

Создание источника данных

В качестве источника импорта выберите SFTP:

Источник импорта - SFTP

Ниже приведены данные, которые необходимо предоставить для конфигурации SFTP:

  • Имя пользователя SFTP-сервера - введите то имя, которое вы создали при настройке сервера (в данном случае - это ga4import);
  • URL SFTP-сервера

URL-адрес сервера состоит из трех частей:

  • IP-адрес: введите внешний IP-адрес вашей виртуальной машины. Его вы можете найти в Google Cloub напротив названия созданной VM, в столбце External IP

IP-адрес вашей виртуальной машины (External IP)

  • Домашний каталог: //home/ga4import
  • Путь к файлу: /upload.csv

Собрав все это вместе, вы получите URL SFTP-сервера: sftp://34.118.2.191//home/ga4import/upload.csv

Настройки SFTP

Чуть ниже вы можете установить график импорта данных в соответствии с желаемой частотой обновления. Я рекомендую устанавливать стандартный период Ежедневно (Daily), а время начала - по желанию. Можете оставить диапазон по умолчанию.

Расписание импорта данных

После этого в правом верхнем углу нажмите Далее и перейдите на второй шаг настройки импорта. Здесь GA4 попросит вас сопоставить поля самого Google Analytics 4 с вашими полями импорта. Схему данных, которую я предлагаю использовать, выглядит так:

  • Идентификатор кампании - campaign_id
  • Источник кампании - source
  • Канал кампании - medium
  • Название кампании - campaign_name
  • Дата - date
  • Ежедневные расходы - cost
  • Кликов в день - clicks
  • Показов в день - impressions

Сопоставление полей GA4 и полей импорта

Проделав соответствующие сопоставления, в правом верхнем углу нажмите Создать источник данных и сгенерировать ключ (Create & Generate Key):

Создание источника данных и генерация ключа

На открывшей странице будет отображаться ваш открытый ключ:

Открытый ключ

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

Добавление открытого ключа GA4 на SFTP-сервер

Чтобы добавить открытый ключ GA4 на SFTP-сервер, вам необходимо создать файл authorized_keys в каталоге .ssh , в котором он будет храниться. А для этого сначала вам нужно зайти под этим пользователем, от имени которого вы будете выполнять нижеприведенные команды.

Пропишите:

И нажмите Enter. Вас попросят ввести пароль, заданный для этого пользователя. Сделайте это. Если все выполнено верно, то вместо предыдущего пользователя имя_пользователя_gmail@имя_виртуальной_машины будет отображаться имя нового пользователя, которого вы создали:

Изменение пользователя на созданного ga4import

Примечание: Compute Engine задает ваше имя пользователя как имя пользователя в вашей учетной записи Google. Поскольку мой адрес электронной почты, связанный с учетной записью Google, osipenkovkz@gmail.com, то мое имя пользователя —osipenkovkz. А ga4-sftp - это название виртуальной машины. Поэтому и получается osipenkovkz@ga4-sftp. Но как только мы изменили пользователя с помощью команды выше, именно он и будет отображаться в терминале.

Теперь от имени вашего пользователя выполните следующие команды, чтобы создать файл authorized_keys в каталоге .ssh , в котором будет храниться открытый ключ:

В терминале:

Выполнение команд в терминале

Теперь выполните команду:

И убедитесь, что новый пользователь отображается в списке:

Пользователь ga4import

Как видите на скриншоте, у нового пользователя ga4import отображается строка с набором прав -rw-r--r-- для файла authorized_keys. Это означает, что у него есть права на чтение и запись файла, но нет прав на выполнение файла.

Теперь выполните команду под пользователем ga4import:

В терминале:

Открытие файла authorized_keys

Вам откроется GNU nano с пустым файлом authorized_keys:

Пустой файл authorized_keys

Скопируйте свой открытый ключ Google Analytics 4, который вы получили при настройке импорта данных, и с помощью комбинации клавиш Ctrl+V вставьте его в этот файл:

Открытый ключ GA4 в файле authorized_keys

Сохраните изменения с помощью Ctrl+S, а затем закройте GNU nano, используя комбинацию Ctrl+X. Теперь у GA4 должен быть необходимый доступ к вашему SFTP-серверу.

Перенос файлов на виртуальную машину (проверка настройки)

Этот пункт является необязательным, но отладка никогда не помешает!

Чтобы убедиться в том, что вы все сделали правильно, можно выполнить проверку соединения и загрузить небольшой файл с данными о расходах. Для передачи файлов в экземпляры виртуальных машин Compute Engine доступны различные варианты в зависимости от операционной системы (ОС) вашей рабочей станции и ОС целевого экземпляра виртуальной машины. Подробнее об этих способах читайте в официальной документации Google Cloud.

В качестве примера я буду использовать программу WinSCP - свободный графический клиент протоколов SFTP и SCP, предназначенный для Windows. Она обеспечивает защищенное копирование файлов между компьютером и серверами, поддерживающими эти протоколы. Он очень удобен для интернет-маркетологов и аналитиков, поскольку предоставляет графический интерфейс в стиле Norton Commander и как в проводнике Windows Explorer (на выбор), и вся работа ведется через привычные окна, а не командную строку.

Прежде чем вы сможете подключиться к вашей виртуальной машине с помощью WinSCP, вам необходимо скачать программу. Перейдите на официальный сайт и загрузите последнюю версию.

Программа WinSCP

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

Режим установки - для всех пользователей

Примите лицензионное соглашение, затем выберите стандартную установку:

Тип установки - Стандартная установка

На следующем шаге вас попросят выбрать предпочитаемый интерфейс. Оставьте Коммандер по умолчанию и нажмите Далее:

Стиль пользовательского интерфейса - Коммандер

Завершите установку WinSCP, а затем запустите программу. Вам откроется окно входа в систему, где вы можете настроить параметры подключения:

  • в поле Протокол передачи выберите SFTP;
  • в поле Имя хоста укажите внешний IP-адрес (External IP) виртуальной машины, к которой вы хотите подключиться (см. выше);
  • порт - 22;
  • в поле Имя пользователя укажите имя пользователя, которое вы создали в терминале ранее (в моем примере - это ga4import);
  • в поле Пароль добавьте значение пароля, который вы установили для своего пользователя.

Это будет выглядеть примерно так:

Настройки нового соединения в WinSCP

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

Уведомление

Если соединение не устанавливается и вам отображается ошибка, попробуйте перезапустить виртуальную машину с помощью Reset:

Перезапуск виртуальной машины (Reset)

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

Вход на виртуальную машину

Именно в директорию /home/ga4import/ необходимо загрузить тестовый файл upload.csv, чтобы проверить импорт данных о расходах Google Analytics 4. Пример шаблона можно скачать из официальной документации Google. Он уже имеет несколько строк с данными и тем же наборов полей, что нам нужны:

Шаблон импорта данных из справки Google

С помощью простого перетаскивания вставьте скачанный файл upload.csv из вашего компьютера в правую часть окна WinSCP. В открывшемся окне отправки нажмите ОК:

Отправка файла upload.csv на виртуальную машину

После этого тестовый файл upload.csv будет размещен в нужной директории:

Файл upload.csv в нужной директории

Теперь вернитесь в интерфейс Google Analytics 4, и в созданном импорте данных нажмите Импортировать:

Импортировать

Статус изменится на Обработка. Через некоторое время он должен измениться на успешный (с зеленой галочкой) если вы все сделали правильно.

Отладка импорта данных в Google Analytics 4

Если будет отображаться сообщение Сбой, то значит что-то препятствует импорту данных с вашей виртуальной машины в GA4.

Итоги

Изначально может показаться, что описанные в этом руководстве настройки чрезвычайно сложны для повторения и ими должны заниматься соответствующие специалисты (DevOps), а не маркетологи и аналитики. Это отчасти правда - каждый должен заниматься своим делом.

Однако, если подойти к процессу автоматизации осознанно и посвятить импорту данных больше времени, то все шаги, которые я постарался максимально расписать в этой публикации, сможет выполнить любой человек, даже не обладающий какой-либо специальной квалификацией.

Этот материал был основан на статье Ахмеда Али (Ahmed Ali) и его публикациях на ga4auditor.com. Его реализация импорта данных была выполнена с помощью проекта в Google Cloud и виртуальной машины. Но это вовсе не значит, что в своем проекте вы должны использовать именно такой способ настройки.

Как я упомянул ранее, в качестве своего SFTP-сервера, на который вы будете загружать csv файл со статистикой рекламной системы, может быть абсолютно любой сервис (Yandex Cloud, Amazon Web Services и другие) и даже обычный хостинг сайта (типа reg.ru, beget и других провайдеров), с поддержкой SSH. Используйте другое решение, если у вас нет возможности оплачивать счета в Google Cloud или если для вас цена аренда виртуальной машины Google высока. На рынке есть куда более дешевые и простые варианты для загрузки файла csv с вашей статистикой.

Давайте еще раз кратко пройдемся по тому, что мы сделали:

  • создали проект в Google Cloud;
  • создали виртуальную машину в Compute Engine;
  • настроили правило брандмауэра;
  • установили SFTP-сервер;
  • создали импорт данных по SFTP в интерфейсе Google Analytics 4 и получили открытый SSH-ключ;
  • в директорию созданного пользователя в /.ssh/authorized_keys добавили открытый SSH-ключ от GA4;
  • в конфиге виртуальной машины открыли доступ к соединению и по паролю, и по ключу;
  • установили программу WinSCP, подключились к своему пользователю по паролю и выполнили перенос шаблона файла upload.csv на виртуальную машину в ту папку и директорию, которую указали в настройках импорта GA4;
  • проверили импорт данных и статус отправки.

По сути, это первая часть автоматизации импорта данных. Мы настроили соединение и обмен данными между сервером GA4 и нашей виртуальной машиной (нашим сервером). Теперь нам необходимо автоматизировать процесс выгрузки данных из рекламных кабинетов (Facebook, VK, Яндекс.Директ и т.д.) с помощью скрипта на Python, который будет обновлять статистику рекламных кампаний по расписанию и загружать все это в файл upload.csv.

Как это сделать? Вы узнаете в следующей части руководства по автоматизации импорта данных в Google Analytics 4.

Получайте бесплатные уроки и фишки

По контекстной, таргетированной рекламе и аналитике