Автоматический импорт данных о расходах в Google Analytics 4. Часть I
В других материалах моего блога мы рассматривали функцию импорта данных о расходах в Google Analytics 4, в том числе ручной способ передачи статистики на примере рекламного кабинета Яндекс.Директа и файла csv. В следующих нескольких публикациях я покажу, как можно автоматизировать этот процесс с помощью SFTP и своего сервера.
Рекомендую к прочтению:
- Импорт данных в Google Analytics 4
- Импорт данных о расходах в Google Analytics 4 на примере статистики Яндекс.Директа (ручной способ)
- Статическое значение utm_id и несколько экспериментов импорта данных о расходах в Google Analytics 4
Это руководство основано на материалах Ахмеда Али (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 приостановил работу для пользователей из России. На момент публикации данной статьи вы не сможете привязать свою банковскую карту, выпущенную на территории РФ, чтобы использовать все возможности 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.
Эта служба нужна для создания и запуска виртуальной машины на 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-сервера.
В завершение нажмите кнопку Create (Создать):
После этого в списке виртуальных машин должна отобразиться только что созданная VM:
Настройка брандмауэра
Теперь, когда вы создали виртуальную машину, пришло время настроить брандмауэр, чтобы разрешить доступ к SFTP-серверу через порт 22. Для этого перейдите в Network Security по ссылке и в разделе Firewall policies нажмите на кнопку Create firewall rule (Создать правило брандмаэура):
Задайте название своего правила (например, ga4-rule):
Затем в поле Targets tag установите для него значение ga4-sftp или которое вы задали на предыдущем шаге:
Установите для параметра Source IPv4 ranges значение 0.0.0.0/0 , чтобы разрешить входящие соединения с любого IP-адреса. Это гарантирует, что SFTP-сервер сможет принимать соединения от Google Analytics 4:
В разделе Protocols and ports поставьте галочку напротив TCP и в поле Ports укажите 22:
TCP-порт 22 использует протокол управления передачей данных (TCP), который является одним из основных протоколов в сетях TCP/IP. TCP является протоколом с установлением соединения и требует квитирования для установки сквозной связи. Только после установления соединения пользовательские данные могут пересылаться в обоих направлениях.
Примечание: если вам интересно подробнее узнать о SSH и 22 порте, вы можете прочитать этот материал.
В завершение нажмите кнопку Create (Создать):
Поздравляю! Вы завершили настройку и применили правило брандмауэра, разрешающее входящие соединения через порт 22 для SFTP-сервера.
Установка SFTP-сервера
Теперь необходимо подключиться к виртуальной машине для настройки SFTP-сервера. Для этого на странице виртуальной машины найдите созданную вами машину и нажмите SSH, чтобы получить доступ к терминалу:
В отдельном окне браузера вам откроется терминал (SSH-in-browser):
Выполните следующие команды для установки сервера OpenSSH:
1 2 |
sudo apt-get update sudo apt-get install openssh-server |
Поочередно вставьте/пропишите их в консоли и нажмите Enter:
Теперь создайте нового пользователя специально для вашего SFTP-сервера. Сделать это можно с помощью команды:
1 |
sudo adduser ga4import |
, где ga4import - имя вашего пользователя. Вы можете придумать какое-то другое, а можете оставить этот вариант.
Затем вам будет предложено ввести и подтвердить новый пароль. Когда вы будете вводить пароль, вы не увидите его в терминале, и даже то, какое количество символов вы ввели. Поэтому будьте аккуратнее при вводе и подтверждении:
Затем вас попросят ввести дополнительную информацию о новом пользователе. Вы можете это сделать, а можете просто несколько раз нажать на клавишу Enter, а в конце написать y и подтвердить введенные значения для пользователя:
Строка в терминале Adding new user ... свидетельствует о том, что вы все сделали верно.
Чтобы настроить сервер как аутентификации по паролю для доступа к SFTP-серверу через ваш скрипт Python, так и аутентификации с открытым ключом, которую Google Analytics 4 будет использовать для доступа к вашему серверу, выполните следующую команду, чтобы открыть файл конфигурации SSHD:
1 |
sudo nano /etc/ssh/sshd_config |
В терминале это будет выглядеть так:
Чтобы разрешить доступ к серверу по паролю, найдите строку PasswordAuthentication и измените значение с no на yes. Там же добавьте строку PubkeyAuthentication со значением yes, чтобы получилось примерно следующее:
В самом низу конфига добавьте строку ClientAliveInterval 120:
Таким образом:
- ClientAliveInterval - устанавливает интервал ожидания в секундах, по истечении которого, если от клиента не было получено данных, SSHD будет отправить сообщение по зашифрованному каналу, чтобы запросить ответ от клиента. По умолчанию равен 0;
- PasswordAuthentication - означает, что проверка по паролю разрешена (yes);
- PubkeyAuthentication - включение авторизации по SSH-ключам.
Эти строки гарантируют, что SSH-сервер поддерживает соединение, разрешает аутентификацию по паролю и аутентификацию с открытым ключом.
Чтобы сохранить сделанные изменения, нажмите Ctrl+S. Для выхода из GNU nano нажмите Ctrl+X. Если вы выходите из редактора, а файл изменен, nano предложит сохранить файл. Чтобы отказаться от сохранения, просто нажмите N, а для подтверждения - Y.
Теперь, когда эти настройки установлены, ваш сервер готов принимать соединения от Google Analytics 4 и ваших скриптов Python.
Аутентификация Google Analytics 4 для доступа к серверу с использованием открытого ключа
Теперь перейдите в интерфейс вашего ресурса Google Analytics 4 и создайте импорт данных:
Выберите тип данных Данные о расходах (Cost data) и задайте название источника данных. Например, Мой SFTP:
В качестве источника импорта выберите SFTP:
Ниже приведены данные, которые необходимо предоставить для конфигурации SFTP:
- Имя пользователя SFTP-сервера - введите то имя, которое вы создали при настройке сервера (в данном случае - это ga4import);
- URL SFTP-сервера
URL-адрес сервера состоит из трех частей:
- IP-адрес: введите внешний IP-адрес вашей виртуальной машины. Его вы можете найти в Google Cloub напротив названия созданной VM, в столбце External IP
- Домашний каталог: //home/ga4import
- Путь к файлу: /upload.csv
Собрав все это вместе, вы получите URL SFTP-сервера: sftp://34.118.2.191//home/ga4import/upload.csv
Чуть ниже вы можете установить график импорта данных в соответствии с желаемой частотой обновления. Я рекомендую устанавливать стандартный период Ежедневно (Daily), а время начала - по желанию. Можете оставить диапазон по умолчанию.
После этого в правом верхнем углу нажмите Далее и перейдите на второй шаг настройки импорта. Здесь GA4 попросит вас сопоставить поля самого Google Analytics 4 с вашими полями импорта. Схему данных, которую я предлагаю использовать, выглядит так:
- Идентификатор кампании - campaign_id
- Источник кампании - source
- Канал кампании - medium
- Название кампании - campaign_name
- Дата - date
- Ежедневные расходы - cost
- Кликов в день - clicks
- Показов в день - impressions
Проделав соответствующие сопоставления, в правом верхнем углу нажмите Создать источник данных и сгенерировать ключ (Create & Generate Key):
На открывшей странице будет отображаться ваш открытый ключ:
Обязательно скопируйте его и сохраните в надежном месте. Вы будете использовать этот ключ, чтобы предоставить Google Analytics 4 доступ к вашей виртуальной машине. В завершение нажмите Готово.
Добавление открытого ключа GA4 на SFTP-сервер
Чтобы добавить открытый ключ GA4 на SFTP-сервер, вам необходимо создать файл authorized_keys в каталоге .ssh , в котором он будет храниться. А для этого сначала вам нужно зайти под этим пользователем, от имени которого вы будете выполнять нижеприведенные команды.
Пропишите:
1 |
su ga4import |
И нажмите Enter. Вас попросят ввести пароль, заданный для этого пользователя. Сделайте это. Если все выполнено верно, то вместо предыдущего пользователя имя_пользователя_gmail@имя_виртуальной_машины будет отображаться имя нового пользователя, которого вы создали:
Примечание: Compute Engine задает ваше имя пользователя как имя пользователя в вашей учетной записи Google. Поскольку мой адрес электронной почты, связанный с учетной записью Google, osipenkovkz@gmail.com, то мое имя пользователя —osipenkovkz. А ga4-sftp - это название виртуальной машины. Поэтому и получается osipenkovkz@ga4-sftp. Но как только мы изменили пользователя с помощью команды выше, именно он и будет отображаться в терминале.
Теперь от имени вашего пользователя выполните следующие команды, чтобы создать файл authorized_keys в каталоге .ssh , в котором будет храниться открытый ключ:
1 2 |
mkdir /home/ga4import/.ssh touch /home/ga4import/.ssh/authorized_keys |
В терминале:
Теперь выполните команду:
1 |
ls -la /home/ga4import/.ssh |
И убедитесь, что новый пользователь отображается в списке:
Как видите на скриншоте, у нового пользователя ga4import отображается строка с набором прав -rw-r--r-- для файла authorized_keys. Это означает, что у него есть права на чтение и запись файла, но нет прав на выполнение файла.
Теперь выполните команду под пользователем ga4import:
1 |
nano /home/ga4import/.ssh/authorized_keys |
В терминале:
Вам откроется GNU nano с пустым файлом authorized_keys:
Скопируйте свой открытый ключ Google Analytics 4, который вы получили при настройке импорта данных, и с помощью комбинации клавиш Ctrl+V вставьте его в этот файл:
Сохраните изменения с помощью Ctrl+S, а затем закройте GNU nano, используя комбинацию Ctrl+X. Теперь у GA4 должен быть необходимый доступ к вашему SFTP-серверу.
Перенос файлов на виртуальную машину (проверка настройки)
Этот пункт является необязательным, но отладка никогда не помешает!
Чтобы убедиться в том, что вы все сделали правильно, можно выполнить проверку соединения и загрузить небольшой файл с данными о расходах. Для передачи файлов в экземпляры виртуальных машин Compute Engine доступны различные варианты в зависимости от операционной системы (ОС) вашей рабочей станции и ОС целевого экземпляра виртуальной машины. Подробнее об этих способах читайте в официальной документации Google Cloud.
В качестве примера я буду использовать программу WinSCP - свободный графический клиент протоколов SFTP и SCP, предназначенный для Windows. Она обеспечивает защищенное копирование файлов между компьютером и серверами, поддерживающими эти протоколы. Он очень удобен для интернет-маркетологов и аналитиков, поскольку предоставляет графический интерфейс в стиле Norton Commander и как в проводнике Windows Explorer (на выбор), и вся работа ведется через привычные окна, а не командную строку.
Прежде чем вы сможете подключиться к вашей виртуальной машине с помощью WinSCP, вам необходимо скачать программу. Перейдите на официальный сайт и загрузите последнюю версию.
При открытии программы вас могут попросить выбрать режим установки. Сделайте это для всех пользователей.
Примите лицензионное соглашение, затем выберите стандартную установку:
На следующем шаге вас попросят выбрать предпочитаемый интерфейс. Оставьте Коммандер по умолчанию и нажмите Далее:
Завершите установку WinSCP, а затем запустите программу. Вам откроется окно входа в систему, где вы можете настроить параметры подключения:
- в поле Протокол передачи выберите SFTP;
- в поле Имя хоста укажите внешний IP-адрес (External IP) виртуальной машины, к которой вы хотите подключиться (см. выше);
- порт - 22;
- в поле Имя пользователя укажите имя пользователя, которое вы создали в терминале ранее (в моем примере - это ga4import);
- в поле Пароль добавьте значение пароля, который вы установили для своего пользователя.
Это будет выглядеть примерно так:
Нажмите Войти, чтобы подключиться к виртуальной машине. Если вам выдаст предупреждение, просто примите его:
Если соединение не устанавливается и вам отображается ошибка, попробуйте перезапустить виртуальную машину с помощью Reset:
После этого будет установлено успешное соединение, и в окне слева откроется ваша локальная файловая система, а справа - файловая система виртуальной машины. Вы можете переходить к различным каталогам в этих файловых системах и перетаскивать файлы, чтобы переносить их на виртуальную машину и обратно.
Именно в директорию /home/ga4import/ необходимо загрузить тестовый файл upload.csv, чтобы проверить импорт данных о расходах Google Analytics 4. Пример шаблона можно скачать из официальной документации Google. Он уже имеет несколько строк с данными и тем же наборов полей, что нам нужны:
С помощью простого перетаскивания вставьте скачанный файл upload.csv из вашего компьютера в правую часть окна WinSCP. В открывшемся окне отправки нажмите ОК:
После этого тестовый файл upload.csv будет размещен в нужной директории:
Теперь вернитесь в интерфейс 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.