Запис даних у Firestore із server Google Tag Manager

Автор
Stape
Опубліковано
April 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 немає таблиць або рядків – замість цього ви зберігаєте дані в документи, які організовуються в колекції для легкої навігації та керування.

Firestore

Firestore — ідеальне рішення для тих, хто має велику колекцію невеликих документів. Він зберігає дані в документах, організованих у колекції. Кожен документ містить пари ім’я-значення.

Firestore та server Google Tag ManagerСкопіюйте посилання на цей розділ

З останньою версією API GTM на стороні сервера тепер можна побудувати інтеграцію 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 - надішліть усі дані про події, які у вас є в sGTM, до документа Firestore. Якщо дані про подію та кастомні дані мають однакове поле, для цього поля буде використано значення кастомних даних. Іншими словами, ви можете замінити значення даних подій за допомогою спеціальних даних.

2. Merge document keys – якщо позначено, тег об’єднуватиме ключі в документі Fire Store з даними з sGTM. Інакше тег замінить весь документ.

3. Override Firebase Project ID - Ідентифікатор проекту отримується зі змінної середовища GOOGLE_CLOUD_PROJECT, якщо для параметра дозволу access_firestore для ідентифікатора проекту встановлено значення * або 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 приєднаний to stapeСкопіюйте посилання на цей розділ

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

2. Виберіть IAM & Admin -> Service Accounts -> Натисніть Create service account.

Create service account

3. Додати обліковий запис -> Натисніть Далі -> Виберіть роль редактора даних BigQuery для доступу до BigQuery або роль користувача Cloud Datastore для Firestore.

Якщо ви хочете використовувати обліковий запис служби Google лише для BigQuery, виберіть лише роль редактора даних BigQuery. Те саме для Firestore.

Коли ви перейдете до 3-го кроку, просто натисніть Готово.

Create service account

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

Створіть закритий ключ

5. Відкрийте свій обліковий запис stape.io -> відкрийте контейнер sGTM -> відкрийте вкладку "Power-ups" -> Завантажте файл JSON, який ви завантажили з Google Cloud -> натисніть Зберегти.

Upload JSON file

2. Firebase accountСкопіюйте посилання на цей розділ

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

2. Натисніть Створити -> База даних Firestore.

База даних Firestore.

3. Натисніть Створити базу даних -> виберіть Почати в виробничому середовищі -> Натисніть Далі.

Створити базу даних

4. Виберіть розташування Cloud Firestore. Він має відповідати місцезнаходженням вашого серверного GTM. Щоб перевірити розташування серверного GTM, перейдіть до свого облікового запису stape.io -> відкрийте контейнер sGTM, який ви хочете інтегрувати з Firebase, і перевірте розташування сервера.

Cloud Firestore

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

Firestore

Як налаштувати тег Firestore WriterСкопіюйте посилання на цей розділ

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

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

2. Надішліть дані в серверний контейнер GTM. Два найпопулярніших типи відправлення даних до sGTM – це Google Analytics 4 і Data Tag/Data Client.

3. Завантажте тег Firestore Writer з GitHub -> Відкрийте розділи шаблонів у server Google Tag Manager container -> Натисніть Створити.

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

Firestore Writer tag

5. Створіть новий тег Firestore Writer -> Додати шлях Firebase. Я буду використовувати шлях покупки, це налаштування створить нову колекцію під назвою покупка у Firestore, а всі нові покупки будуть додані як документи Firestore з випадковими іменами. Я виберу дію Додати дані події, що означає, що тег запише всі дані про події до Firestore. Я також додав спеціальні дані, щоб додати user_email та user_id до документа Firestore. Оскільки це тестовий сайт і демо-налаштування, я б не хешував дані користувача, але якщо ви використовуєте подібний формат у виробництві, обов’язково хешуйте дані користувача.

Створіть новий тег Firestore Writer

6. Перевірте свій тег і зверніть увагу, які дані було додано до Firestore. У моєму випадку, щоразу, коли користувач здійснює покупки на сайті, до Firestore додається новий документ з даними про події sGTM.

Перевірте свій тег

7. Тепер створіть змінну (variable) Firestore Lookup у sGTM. Я вибрав Шлях до колекції та запит -> Вказати шлях колекції -> Встановити умову. У моєму випадку кожен раз, коли user_id (у Firestore) точно відповідає змінній gid (у sGTM), змінна пошуку витягуватиме значення user_email у відповідний документ Firestore.

(variable) Firestore Lookup

8. Протейстуйте змінну Firestore Lookup у попередньому перегляді sGTM.

sGTM preview

9. Тепер я можу надсилати збагачені дані sGTM за допомогою електронної пошти користувача, навіть якщо електронна пошта користувача недоступна в sGTM.

Висновок:Скопіюйте посилання на цей розділ

Можливості безмежні, коли справа доходить до збагачення даних за допомогою Firestore і серверного Google Tag Manager. Записати дані sGTM у Firestore відносно легко. Основним кроком є створення схеми даних, що зберігаються у Firestore, і вилучення їх, коли це потрібно для збагачення тегів sGTM.

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

Розмістіть свій сервер GTM на Stape

Реєструючись, ви приймаєте Умови використання та Примітку про конфіденційність Stape