Машинное обучение внутри Google Tag Manager
Знали ли вы, что с помощью искусственного интеллекта, машинного обучения и Google Tag Manager можно классифицировать личные имена ваших пользователей по полу, стране происхождения или этнической принадлежности? До сегодняшнего дня я тоже этого не знал...
Я работаю с Google Tag Manager каждый день с 2018 года. И все это время нахожу что-то новое, неизведанное, полезное для себя и своих проектов. Чего только стоит подборка нестандартных использований GTM:
- Заявки с сайта в Telegram
- Заявки с сайта в Google Таблице
- Отслеживание брошенных форм
- Передача данных о погоде
- Визуализация последовательности заполнения полей формы
- Отслеживание событий клавиатуры
- Отслеживание значений полей формы
- Отслеживание перевода страниц
- Отслеживание печати веб-страниц
- и многое другое.
Очень часто мои подписчики сами присылают мне интересные материалы других авторов, в которых разбираются решения каких-то нетривиальных задач, сервисы, полезные инструменты для диспетчера тегов Google. Это дает возможность расширить границы мышления и использовать привычный для многих инструмент в совершенно другой плоскости. И в этом материале мы как раз познакомимся с одним из таких решений.
Оно будет основано на статье Ахмеда Али (Ahmed Ali), автора блога optimizationup.com, который в свое время опубликовал материал по машинному обучению внутри Диспетчера тегов Google. Я решил адаптировать его руководство для русскоязычной аудитории, чтобы и у вас появилось понимание о роли и значимости машинного обучения в интернет-маркетинге. Уже наступил тот момент, когда маркетологу, работающему с отслеживаниями пользовательских взаимодействий на веб-сайтах и в мобильных приложений, требуются навыки программирования и умения выполнять программные задачи.
Машинное обучение изменило многие сферы жизни, включая маркетинг. Теперь маркетологи могут анализировать большие объемы данных и предоставлять детальный анализ и результаты, чтобы впоследствии использовать их для улучшения своей цифровой аналитики и маркетинга.
Существует множество библиотек машинного обучения и API, которые вы можете начать использовать уже сегодня. API машинного обучения (Machine Learning API, ML API) упрощают разработку прогностических приложений и предлагают мощные предварительно обученные модели машинного обучения через службы REST, которые вы можете использовать для своего проекта. В этой статье речь пойдет о ML API под названием Namsor.
Компания Namsor разработала технологию проверки имен, способную проводить комплексный анализ посредством многократной обработки. Их API может классифицировать имена по происхождению, этнической принадлежности, стране проживания, полу и поддерживает множество алфавитов, включая кириллицу (русский язык).
Прогнозирование пола и этнической принадлежности имеет множество вариантов использования в маркетинге, таких как таргетинг на аудиторию, квалификация потенциальных клиентов и многое другое. Вы можете с помощью Namsor API и Google Tag Manager передавать в свой ресурс Google Analytics 4 информацию о поле вашей аудитории, даже тогда, когда сам GA4 по каким-либо причинам не распознает ее у пользователя и не отображает в отчетности, или отображает частично.
Для того чтобы обработка имен была максимально точной и полной, в Namsor разработали искусственный интеллект , который постоянно поддерживается и обогащается нашими группами специалистов по данным, разработчиков, историков и лингвистов. Их технология - больше, чем простой поиск по базе данных. Они используют морфологию имен для оценки происхождения, этнической принадлежности, пола, страны проживания, типа имени или для его расшифровки. Благодаря этой технологии искусственный интеллект может делать очень точные оценки по именам, фамилиям, полным именам, а также прозвищам и придуманным названиям, таким как названия компаний или торговых марок. Именно технология проверки имен Namsor признана самой точной в мире.
Для демонстрации работы Namsor API я буду использовать свой тестовый проект graphanalytics.ru, на котором есть форма для заполнения контактных данных пользователя:
В этой форме есть поле Имя, в которую пользователь может ввести информацию. Мы будем отслеживать это введенное значение, а затем с помощью Namsor API прогнозировать пол пользователя, который оставил заявку, и отправлять эту информацию вместе с событием в инструменты аналитики.
Для этого нужно сделать следующее:
- создать переменную, которая извлекает значение из данного поля;
- зарегистрироваться на сайте Namsor;
- получить ключ API;
- создать тег с кодом вызова Namsor API;
- создать переменную уровня данных;
- создать триггер специального события;
- создать тег события для аналитических систем.
У Ахмеда Али в блоге все шаги описаны очень кратко, но вы с вами разберем каждый этап подробно.
Создание пользовательской переменной
Сначала вам нужно создать пользовательскую переменную типа Собственный код JavaScript, чтобы она извлекала значение имени из поля формы. На эту тему в блоге у меня есть несколько материалов, в которых подробно описывается алгоритм действий:
Обязательно прочтите их. Извлекать значения из полей формы с помощью JavaScript можно без каких-либо проблем и боязней со стороны политики конфиденциальности. Напротив, Google не так давно сам в своих инструментах Google Tag Manager и Google Analytics 4 добавил настройки, позволяющие точнее отслеживать основные пользовательские данные.
В Google Tag Manager за это отвечает пользовательская переменная типа Данные, предоставляемые пользователями:
И в самом GA - Использовать данные, предоставленные пользователями:
В рамках такой настройки, чтобы помочь Google повысить точность некоторых показателей, вы должны самостоятельно настроить отслеживание данных, предоставляемых пользователями. Это может быть - электронная почта, телефон, имя и адрес, фамилия, улица, город, регион и т.д.
Для моего поля Имя в форме переменная Собственный код JavaScript будет выглядеть так:
А с помощью режима предварительного просмотра легко убедиться, что при совершении события (отправки формы) переменная принимает нужное нам значение:
Теперь переходим к настройке сервиса Namsor.
Регистрация на сайте
Перейдите по ссылке и в правом верхнем углу нажмите Register:
Вы можете зайти под одной из учетных записей стороннего сервиса или же совершить классическую регистрацию по электронной почте. Я выберу второй вариант:
После того, как вы введете данные и нажму Sign up, вас перенаправит в интерфейс Namsor, а на почту придет приветственное письмо с активацией личного кабинета. В нем также будет написан ключ API, который вам будет нужен для Google Tag Manager:
Перейдите из ссылки из письма, чтобы активировать свой аккаунт и API Key.
Получение ключа API
Как только вы активировали свою учетную запись, перейдите по ссылке в личный кабинет. На странице должен отображаться ваш ключ API:
Скопируйте этот ключ к себе. Он вам понадобится на следующем этапе настройки.
Создание тега
Вернитесь в свой контейнер Google Tag Manager и создайте тег типа Пользовательский HTML. Вставьте в него следующие строчки кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<script> // API URL var url = "https://v2.namsor.com/NamSorAPIv2/api2/json/genderFull/"+{{ваша переменная}}; var options = { headers: { 'accept': 'application/json', 'X-API-KEY': 'ВАШ КЛЮЧ API', } }; fetch(url, options) .then(function(response) { return response.text(); }) .then(function(data){ // assign variables var data_obj = JSON.parse(data); var likelyGender = data_obj['likelyGender']; // push to data layers var datalayer = window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event':'namesor', 'gender':likelyGender, }); }) </script> |
, где вместо {{ваша переменная}} вы должны добавить свою собственную переменную JavaScipt, созданную на предыдущем шаге для извлечения значений из поля имени, а в строке X-API-KEY вставьте значение вашего ключа API из интерфейса Namsor.
В Google Tag Manager это будет выглядеть так:
Чтобы попросту не расходовать ваши кредиты Namsor (на бесплатном тарифе они составляют 5000 в месяц) и не активировать тег тогда, когда не было введено имя, добавьте для него дополнительное условие с проверкой - когда ваша переменная с извлеченным значением имени не содержит/не равно undefined.
Это можно сделать для конкретного действия. Если пол нужно определять в момент совершения события отправки формы, тогда можно использовать соответствующий триггер. На моем сайте работает самая простая реализация с триггером Отправка формы.
Ахмед в своем материале предлагает использовать триггер просмотра страницы:
Добавьте этот триггер в тег, задайте ему название и сохраните.
Создание переменной уровня данных
В коде выше присутствует конструкция уровня данных (dataLayer), в которую помещено событие:
1 2 3 4 5 6 |
// push to data layers var datalayer = window.dataLayer = window.dataLayer || []; dataLayer.push({ 'event':'namesor', 'gender':likelyGender, }); |
В нем также присутствует переменная gender, которая будет возвращать предсказанный Namsor API пол пользователя. Для нее вам нужно создать переменную типа Переменная уровня данных, чтобы в дальнейшем иметь возможность передавать пол пользователя в системы аналитики:
Задайте название переменной и сохраните ее.
Триггер специального события
В этом же dataLayer событие имеет название namesor. Создайте триггер типа Специальное событие с этим названием события:
Он будет служить вам условием активации тега.
Тег события
В качестве примера передадим данные о предсказанном поле пользователя на основе его имени в Google Analytics 4 вместе с отправкой формы. Для этого создайте тег типа Google Аналитика: событие GA4 со следующей конфигурации:
- Тег конфигурации - ваш идентификатор потока GA4;
- Название события - произвольное (например, send_form, если вы отслеживаете отправку формы);
- Параметр события - произвольное (например, user_gender);
- Значение параметра события - переменная уровня данных, которая определяет пол пользователя по введенным данным благодаря Namsor API;
- Триггер активации - специальное событие.
Сохраните тег и проверьте работу API машинного обучения.
Проверка корректности работы
В этом вам поможет все тот же режим отладки Google Tag Manager. Просто совершите то событие, которое отслеживаете, и посмотрите на шкалу событий.
Заполнив форму и отправив ее, я увидел два event'а - от триггера отправки формы Form Submit и событие namsor. Раскрыв уровень данных для события namsor, вы должны увидеть в переменной gender значение, которое Namsor API определил по введенной в поле Имя информации. Я вводил в форме на сайте свое имя (Яков), поэтому в переменной gender отобразилось значение male (мужчина):
Все верно! Тег события GA4 так же был активирован:
Открыв сведения о теге, вы увидите, как в параметрах события значение male будет передано вместе с самим событием отправки формы:
А если написать в поле женское имя (например, Маша), то Namsor в переменной уровня данных отобразит female (женщина):
Аналогичным образом вы можете проверить с помощью инструмента DebugView. Найдите на шкале событий событие и кликнете на него. Справа откроются параметры этого события. Найдите в списке user_gender и убедитесь, что в него передалось то же самое значение:
После настройки события и создания специального параметра может пройти до 24 часов прежде, чем данные появятся в отчетах Google Analytics 4. В завершение не забудьте опубликовать контейнер GTM, а также в интерфейсе счетчика GA4 создать специальный параметр user_gender с областью действия Событие:
Резюме
Вот таким вот образом работает API машинного обучения стороннего сервиса. Сложный функционал? Нет, но он очень ярко и точно демонстрирует то, как искусственный интеллект проникает в различные сферы деятельности, в том числе и в интернет-маркетинг. А диспетчер тегов Google является здесь связующим звеном.
Вы бы вряд ли смогли настроить такое отслеживание самостоятельно, поскольку пользователи в поле с именем могут вводить очень много различных значений, и учесть все варианты просто невозможно. Если в поле имя пользователь ввел Петя, то это мужчина, если Маша, то женщина? И так до бесконечности перебирать все имена условиями if-then-else? Плюс еще морфология, окончания, различные алфавиты и т.д. Поручение задачи разработчику тоже ни к чему бы не привело, потому что он бы просто не стал заниматься этим. Ручная работа - бессмысленная работа. А вот ML API и самообучающиеся системы - другое дело!
И это далеко не единственный функционал Namsor. Распознавание имен, телефонов, антропонимов, топонимов, определение пола, отделение имен от фамилий, перевод имен разных стран - все это есть в этом инструменте. Но дело даже не в том, что умеет отдельно взятый сервис. Главная цель этого материала состояла в том, чтобы показать вам нестандартные возможности использования GTM и познакомить с одним из главных трендов последних лет - машинным обучением и его роли в жизни вашего проекта и бизнеса.