Запись данных в Firestore с серверного Google Tag Manager

Автор
Stape
Опубликовано
26 апр. 2022 г.
Также есть

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

Вы можете быстро получить данные из Firestore с помощью новой переменной Firestore Lookup. Это встроенная переменная, доступная для всех в sGTM. Но как вы можете записать данные в Firebase? Stape решил эту проблему, создав тег Firestore Writer.

В этой статье блога будет показано, как записывать данные в Firestore из серверного контейнера Google Tag Manager. Я также покажу, как использовать тег Firestore Writer и переменную Firestore Lookup для обогащения данных на стороне сервера. Давайте приступим!

Что такое FirestoreСкопировать ссылку на этот раздел

Firestore - это гибкая и масштабируемая база данных NoSQL с хранилищем, ориентированным на документы. В отличие от баз данных SQL, в Firestore нет таблиц и строк - вместо этого вы храните данные в документах, которые организуются в коллекции для удобства навигации и управления.

firetore writer tag

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

Firestore и server Google Tag ManagerСкопировать ссылку на этот раздел

С новым релизом серверного GTM API появилась возможность построить интеграцию Firestore и sGTM. Мы использовали этот API для создания тега Firestore Writer. Позвольте мне быстро описать, какие функции предоставляет Firestore sGTM API.

Firestore.read - считывает данные из документа Firestore и возвращает promise, которое преобразуется в объект, содержащий два ключа: id и data.

Firestore.write - записывает данные в документ или коллекцию Firestore. Если вы укажете только путь к коллекции, документ будет создан автоматически со случайным именем.

Firestore.query - возвращает массив документов Firestore, соответствующих заданным условиям запроса.

Firestore.runTransaction - позволяет автоматически читать и записывать данные из Firestore.

Firestore Writer tagСкопировать ссылку на этот раздел

firestore writer tag

Firebase Path - укажите путь к документу или коллекции Firestore. Путь не должен начинаться или заканчиваться символом '/'. Если путь указан к коллекции, будет создан документ со случайно сгенерированным идентификатором. Если путь указан к несуществующему документу, он будет создан.

Существует несколько типов действий, которые позволяет выполнять этот тег:

1. Add Event Data - отправляйте все Event Data, имеющиеся в sGTM, в документ Firestore. Если Event Data и Custom Data имеют одно и то же поле, то для этого поля будет использоваться значение Custom Data. Другими словами, вы можете переопределить значения данных события с помощью пользовательских данных.

2. Merge document keys - если флажок установлен, тег объединит ключи в документе Fire Store с данными из sGTM. В противном случае тег переопределит весь документ.

3. Override Firebase Project ID - ID проекта извлекается из переменной среды GOOGLE_CLOUD_PROJECT, если параметр разрешения access_firestore для ID проекта установлен в * или GOOGLE_CLOUD_PROJECT. Если серверный контейнер работает в Google Cloud, GOOGLE_CLOUD_PROJECT уже будет присвоен идентификатору проекта Google Cloud.

4. Add Timestamp - если этот параметр включен, тег добавит к документу временную метку в миллисекундах.

Custom Data - используйте этот параметр, чтобы переопределить данные события.

Чтобы настроить тег Firestore Writer, вам потребуетсяСкопировать ссылку на этот раздел

Если вы используете stape для хостинга sGTM, вам понадобятся эти вещи, чтобы настроить тег Firestore Writer:

1. Google Service Account соединенный со StapeСкопировать ссылку на этот раздел

1. Создайте или войдите в веб-консоль Google Cloud Platform.

2. Выберите IAM & Admin -> Service Accounts -> Нажмите Create service account.

create service account

3. Добавьте аккаунт -> Нажмите Далее -> Выберите Roles BigQuery Data Editor для доступа к BigQuery или роль Cloud Datastore User для Firestore.

Если вы хотите использовать Google Service Account только для BigQuery, выберите только роль BigQuery Data Editor. То же самое для Firestore.

Когда вы дойдете до 3-го шага, просто нажмите кнопку Готово.

Roles

4. Создайте приватный ключ -> Выберите JSON -> выберите Создать -> JSON будет загружен на ваш компьютер. 

приватный ключ 

5. Откройте свой аккаунт stape.io -> откройте контейнер sGTM -> откройте вкладку Power-ups -> Загрузите JSON файл, который вы скачали из Google Cloud -> Нажмите Save. 

stape account

2. Firebase аккаунтСкопировать ссылку на этот раздел

1. Откройте Firebase -> нажмите Создать проект -> Выберите тот же проект, который вы использовали для создания Google Service Account -> нажмите Продолжить -> Нажмите Добавить Firebase на третьем шаге.

2. Нажмите Build -> Firestore Database.

firestore database

3. Нажмите Создать базу данных -> выберите Запустить в производственном режиме -> нажмите Далее.

create database

4. Выберите местоположение Cloud Firestore. Оно должно совпадать с расположением вашего сервера sGTM. Чтобы проверить расположение серверного sGTM, зайдите в свой аккаунт stape.io -> откройте контейнер sGTM, который вы хотите интегрировать с Firebase, и проверьте Расположение сервера.  

create database

5. Нажмите кнопку Start a collection. Здесь вам нужно установить Firebase Path, который в дальнейшем будет использоваться для Firestore Writer Tag. Я добавил Firebase Path для покупки -> Нажмите Сохранить.

Start a collection

Как настроить тег Firestore WriterСкопировать ссылку на этот раздел

Возможность записи и чтения данных в/из Firestore дает множество сценариев для обогащения данных. Вы храните данные в Firestore с помощью тега Firestore Writer и извлекаете нужные данные с помощью переменной Firestore Lookup, чтобы отправить их в теги sGTM.

В этом примере я хочу отправить данные пользователя в Facebook conversion API, когда эта информация недоступна в данных события sGTM. Для этого я буду хранить данные пользователя и идентификатор клиента Google Analytics (_gid) в Firebase, когда пользователь совершает покупку. Используя переменную поиска Firestore и _gid (в качестве уникальной идентификации пользователя), я извлеку данные пользователя в событии page_view и дополню событие pageview Facebook CAPI.

2. Отправьте данные в серверный контейнер GTM. Два наиболее популярных способа отправки данных в sGTM - Google Analytics 4 и Data Tag/Data Client.

3. Скачайте тег Firestore Writer с GitHub -> Откройте разделы шаблонов в серверном контейнере Google Tag Manager -> Нажмите New.

4. Нажмите три точки в правом верхнем углу -> Нажмите Импорт -> Выберите шаблон тега Firestore Writer, который вы недавно скачали с GitHub -> Нажмите сохранить.

firestore writer tag

5. Создайте новый тег Firestore Writer -> Add Firebase Path. Я буду использовать путь purchase, эта настройка создаст новую коллекцию под названием purchase в Firestore, и все новые покупки будут добавляться как документы Firestore со случайными именами. Я выберу действие Add Event Data, что означает, что тег будет записывать все данные о событиях в Firestore. Я также добавил Custom Data, чтобы добавить user_email и user_id в документ Firestore. Поскольку это тестовый сайт и демонстрационная установка, я бы не хэшировал данные пользователя, но если вы используете подобный формат на производстве, обязательно хэшируйте данные пользователя.

firestore writer tag

6. Протестируйте свой тег и проверьте, какие данные были добавлены в Firestore. В моем случае каждый раз, когда пользователь совершает покупку на сайте, в Firestore добавляется новый документ с данными о событии sGTM. 

firestore writer tag

7. Теперь создайте переменную Firestore Lookup в sGTM. Я выбрал Collection Path & Query -> Specify Collection Path -> Set your condition. В моем случае каждый раз, когда user_id (в Firestore) точно совпадает с переменной gid (в sGTM), переменная поиска будет извлекать значение user_email из соответствующего документа Firestore.

переменную Firestore Lookup

8. Протестируйте переменную Firestore Lookup в предварительном просмотре sGTM. 

переменную Firestore Lookup

9. Теперь я могу отправлять расширенные данные sGTM с электронной почтой пользователя, даже если электронная почта пользователя недоступна в sGTM. 

Заключение:Скопировать ссылку на этот раздел

Возможности безграничны, когда речь идет об обогащении данных с помощью Firestore и серверного Google Tag Manager. Записать данные sGTM в Firestore относительно просто. Первым шагом является создание схемы данных, хранящихся в Firestore, и извлечение их, когда они нужны для обогащения sGTM-тегов.

Если вам нужна помощь в настройке отслеживания на стороне сервера, не стесняйтесь обращаться к нам. Мы поможем вам получить ваши данные в Firestore и начать извлекать из них информацию в кратчайшие сроки. Спасибо за внимание!

Нужна помощь в настройке тегов на стороне сервера?

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

Получить помощь

Хостите свой сервер GTM на Staperight now!