Передача данных о погоде в Universal Analytics и Google Analytics 4

14 марта, 2021

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

Учитывая мою страсть к различного рода интересным и нетрививальным задачам, которые можно решить с помощью Google Analytics и Google Tag Manager, рано или поздно я должен был написать об этом для вас в блоге. Сразу хочу сказать, что я не являюсь автором этого способа и не желаю получать незаслуженные лавры за простую адаптацию для русскоязычного сообщества и некоторые дополнения для Google Analytics 4. Когда Симо Ахава (Simo Ahava) впервые написал о передаче данных о погоде в Google Analytics в марте 2015 года, я еще не работал в интернет-маркетинге и вообще не знал, что такое диспетчер тегов от Google.

Спустя 5 лет многие специалисты по интернет-маркетингу опубликовали свои собственные решения. Какие-то из них работают до сих пор и по ним можно повторять шаги настройки, а какие-то нет (устарели). Ниже я прикладываю список статей и видеоуроков на эту тему от различных авторов, которых я брал за основу при написании этой публикации:

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

Я уважаю труд каждого из них, поэтому буду использовать комбинированный вариант из всех представленных с небольшими комментариями и дополнениями 😉 А вот что у вас должно получиться в результате проделанных действий, описанный в этой статье:

Передача данных о погоде в Google Analytics

Пример отчета в Universal Analytics с данными о погоде

Данные о погодных условиях полезны не только в отчетах Google Analytics ради ВАУ-эффекта или настройки из любопытства (а так можно было?), но еще и при оптимизации рекламных кампаний, когда в зависимости от информации в регионе в конкретное время вы можете корректировать ставки и бюджет. В официальной документации Google описан способ управления кампаниями Google Ads на основе погоды.

Давайте перейдем к непосредственной настройке. Первым делом необходимо зарегистрироваться на сайте openweathermap.org.

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

Введите свои данные (username, email и password), согласитесь с политикой сервиса и нажмите Create Account (Создать аккаунт):

Передача данных о погоде в Google Analytics

Регистрация на сайте openweathermap.org

На следующем шаге укажите название компании и вид деятельности, к которому вы относитесь. Нажмите Save (Сохранить):

Передача данных о погоде в Google Analytics

Как будете использовать API?

После регистрации не забудьте перейти в свой почтовый ящик и подтвердить e-mail. Далее вы можете зайти на страницу с тарифами и ознакомиться с ограничениями и ценами сервиса.

Передача данных о погоде в Google Analytics

Тарифы OpenWeatherMap

На бесплатном тарифе OpenWeatherMap позволяет делать 60 запросов в минуту. Этого достаточно для небольших проектов и сайтов со средней посещаемостью. Можно грубо прикинуть, что 1 запрос - это 1 пользовательская сессия. Если необходимо больше - всегда можно перейти на тариф с расширенными лимитами.

Далее перейдите на страницу с вашими API-ключами и скопируйте (сохраните) ключ, который вам предоставили. Он пригодится при настройке тега в Google Tag Manager.

Передача данных о погоде в Google Analytics

Копирование ключа API

Зайдите в GTM и создайте пользовательскую переменную типа Основной файл cookie с названием session:

Передача данных о погоде в Google Analytics

Основной файл cookie - session

Назовите переменную (например Session alive) и сохраните ее. Затем создайте тег типа Пользовательский HTML и вставьте туда следующий код:

В Google Tag Manager это будет выглядеть так:

Передача данных о погоде в Google Analytics

Пользовательский HTML со специальным кодом

Важно: 

  • в переменную APPID необходимо вставить API ключ от OpenWeatherMap, который вы получили несколько шагов назад.
Передача данных о погоде в Google Analytics

Вставьте между одинарными кавычками свой API-ключ

  • в месте, где идет код if (typeof {{Session alive}} === 'undefined') { используйте название своей переменной Основной файл cookie, которую создали ранее. В моем примере это {{Session alive}}, поэтому и в коде я задаю такое название. Если вы назвали ее по-другому, то измените эту часть кода.
Передача данных о погоде в Google Analytics

Используйте свое название переменной Основной файл cookie

Триггер активации - All Pages (Все страницы). Сохраните тег.

Дмитрий Осиюк взял за основу код Симо Ахавы, но переделал его под себя без зависимости jQuery и с использованием открытых, бесплатных API. Помимо API сервиса OpenWeatherMap в этом коде используется freegeoip.net (теперь ipstack.com). Сейчас по бесплатному тарифу доступно 10 000 запросов в месяц, что не является очень большим (хотя в 2018 году говорилось про 15 000 запросов в час). Есть сервисы, которые имеют больший лимит на количество запросов. Например:

Что делает скрипт? Когда пользователь заходит на сайт - у него запрашивается доступ к данным о геолокации.

Передача данных о погоде в Google Analytics

Запрос на разрешение доступа к данным о местоположении

Если человек предоставляет этот доступ — скрипт считывает GPS-координаты посетителя и для этих координат возвращает данные о погоде. Если пользователь запрещает доступ к данным о геолокации — координаты определяются по IP-адресу посетителя сайта. Если пользователи используют VPN - данные о погоде будут неточными.

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

В скрипте используются файлы cookie. Он  запрашивает данные о погоде один раз на 30 минут (1 раз на 1 сеанс каждого посетителя сайта).

Затем создайте триггер типа Пользовательское событие с названием weatherDone:

Передача данных о погоде в Google Analytics

Пользовательское событие - weatherDone

Назовите триггер (например weatherDone) и сохраните его. После создайте две переменных типа Переменные уровня данных с именами weather и temperature:

Передача данных о погоде в Google Analytics

Переменные уровня данных

Сохраните переменные.

OpenWeatherMap - международный сервис и данные о погоде он отдает на английском языке. Например, так в специальном отчете Universal Analytics:

Передача данных о погоде в Google Analytics

Погода и температура в отчете Universal Analytics (англ. язык)

Но мы можем самостоятельно руссифицировать эти состояния и отправлять в Google Analytics данные на привычном нам языке. Для этого необходимо создать переменную типа Таблица поиска, в которой опишем все погодные условия, которые заложены в OpenWeatherMap. Это (sorry за мой английский перевод):

  • Thunderstorm - Гроза
  • Snow - Снег
  • Drizzle - Морось
  • Rain - Дождь
  • Mist - Туман
  • Clouds - Облачно
  • Tornado - Торнадо
  • Fog - Туман
  • Sand - Песок
  • Ash - Пепел
  • Squall - Шквал
  • Dust - Пыль
  • Haze - Дымка
  • Smoke - Дым
  • Clear - Ясное небо
Передача данных о погоде в Google Analytics

Перевод погоды на русский язык

Сохраните переменную. Последним шагом в Google Tag Manager является создание тегов для Universal Analytics и Google Analytics 4.

Настройки для Universal Analytics

Перед созданием тега в GTM вернитесь в Google Analytics и добавьте 2 специальных параметра (Администратор - Ресурс - Пользовательские определения - Специальные параметры). Оба с областью действия - Сеансы. Один можно назвать Погода, а второй Температура. Они необходимы нам для того, чтобы данные о погоде относились ко всем действиям на сайте в рамках сеанса пользователя.

Передача данных о погоде в Google Analytics

Специальные параметры в Universal Analytics

Запишите индексы этих параметров. Они будут необходимы при создании тега в Google Tag Manager.

Передача данных о погоде в Google Analytics

Индексы специальных параметров

Вернитесь в диспетчер тегов Google и создайте тег типа Google Аналитика: Universal Analytics с типом отслеживания Событие и следующими настройками:

  • Категория - переменную с таблицей поиска, где мы руссифицировали данные о погодных условиях;
  • Действие - переменная уровня данных с температурой;
  • Не взаимодействие - True;
  • Специальные параметры с индексами с предыдущего шага, а значения параметров равны переменным таблицы поиска и температуры;
  • Триггер активации - пользовательское событие weatherDone.
Передача данных о погоде в Google Analytics

Настройки тега Universal Analytics

Сохраните тег. Проверьте корректность передачи данных с помощью режима отладки Google Tag Manager. Как только вы зайдете на сайт, отобразится всплывающее окно с запросом на разрешение доступа к данным о местоположении и на шкале событий отобразится weatherDone. Если вы настроили все корректно, то тег Universal Analytics будет активным в Tags Fired.

Передача данных о погоде в Google Analytics

Событие weatherDone и сработанный тег Universal Analytics

Раскрыв его, вы можете посмотреть какие данные передаются в Universal Analytics:

Передача данных о погоде в Google Analytics

Данные тега UA

Я живу в Москве. На момент написания этой статьи OpenWeatherMap определил мою погоду как снег и температуру -2 ℃. Градусы Цельсия подтверждаются погодой в Google (по данным weather.com):

Передача данных о погоде в Google Analytics

Подтверждение температура

В отчетах В режиме реального времени отобразилось данное событие:

Передача данных о погоде в Google Analytics

Проверка события в режиме реального времени

Через некоторое время статистика отобразится как в отчетах по событиям (Поведение - События - Лучшие события):

Передача данных о погоде в Google Analytics

Пример отчета по событиям о погоде в Universal Analytics

Так и в любых стандартных и специальных отчетах, в которые вы добавите специальные параметры Погода и Температура. Например, так:

Передача данных о погоде в Google Analytics

Пример специального отчета по погоде в Universal Analytics

Настройки для Google Analytics 4

Теперь произведем настройку для Google Analytics 4. У нас уже выполнено 80% работы. Все, что остается сделать - это создать 1 тег для передачи данных по событиям в GA4 и 2 специальных параметра.

В Google Tag Manager создайте тег типа Google Аналитика: событие GA 4 с такой конфигурацией:

  • Название события - weatherGA4 (можете задать произвольное);
  • Название параметра - pogoda и temperatura (можете задать произвольные);
  • Значения параметров - наши переменные с таблицей поиска и температурой соответственно;
  • Триггер активации - пользовательское событие weatherDone.
Передача данных о погоде в Google Analytics

Настройки тега Google Analytics 4

Сохраните тег.  В интерфейсе Google Analytics 4 перейдите в раздел Настроить - Специальные определения и создайте 2 новых специальных параметра.

Передача данных о погоде в Google Analytics

Создание специальных параметров

Задайте им названия, которые будут отображаться в отчетах. Можно написать Погода и Температура. В качестве области действия выберите Событие, а для каждого параметра задайте свой собственнцый параметр события, точно такой же, как вы написали в теге GTM. У меня - это pogoda и temperatura.

Передача данных о погоде в Google Analytics

Специальные параметры в GA4

Сохраните специальные параметры. Проверьте корректность передачи данных с помощью режима предварительного просмотра GTM и инструмента DebugView. Как и прежде, как только вы зайдете на сайт, отобразится всплывающее окно с запросом на разрешение доступа к данным о местоположении и на шкале событий отобразится weatherDone. Если вы настроили все корректно, то тег Google Analytics 4 будет активным в Tags Fired.

Передача данных о погоде в Google Analytics

Событие weatherDone и сработанный тег Google Analytics 4

Раскрыв его, вы можете посмотреть какие данные передаются в GA4:

Передача данных о погоде в Google Analytics

Данные тега GA4

Они соответствуют тем данным, что были отображены в теге Universal Analytics. Как видите, настройка и проверка действия отличаются незначительно.

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

Передача данных о погоде в Google Analytics

Инструмент DebugView с событиями по погоде

Или в отчете в реальном времени:

Передача данных о погоде в Google Analytics

Отчет в реальном времени по событию weatherGA4

Если вам не понравился результат работы вышеописанного скрипта без jQuery (не передаются данные, не хотите иметь всплывающее окно разрешения доступа к местоположению), вы можете попробовать использовать готовый скрипт из этой статьи:

Важно: 

  • в переменную owmAppKey необходимо добавить API ключ от OpenWeatherMap, который вы получили несколько шагов назад.
Передача данных о погоде в Google Analytics

Вставьте между одинарными кавычками свой API-ключ

  • в месте, где идет код if (typeof {{Session alive}} === 'undefined') { используйте название своей переменной Основной файл cookie, которую создали ранее. Речь о все той же {{Session alive}}. Если вы назвали ее по-другому, то измените эту часть кода.
Передача данных о погоде в Google Analytics

Используйте свое название переменной Основной файл cookie

  • скрипт не будет работать, если у вас не подключена библиотека jQuery. Для этого вы можете в теге Пользовательский HTML добавить строчку над кодом:
Сохраните изменения.

Остальные настройки (триггер и переменные) аналогичны. Этот скрипт использует другой сервис определения местоположения - extreme-ip-lookup.com. После нескольких проведенных тестов я заметил, что он куда менее точно определяет мое местоположение, а как следствие, погоду и температуру данного региона. Но данных по пользователям фиксирует больше.

Поэтому окончательное решение о том, какие API для определения местоположения пользователя и отображения данных о погоде принимаете вы. Для последнего достаточно OpenWeatherMap, а для определения местоположения посетителя вашего сайта, скорее всего, в силу ограниченности бесплатных тарифов за количеству запросов, вам придется переходить на платный. Но если ваш бизнес сильно зависит от погодных условий, то с помощью этой информации вы можете существенно апгрейдить вашу аналитику, а дополнительные 30-50$/мес. из бюджета компании не будут являться камнем преткновения.

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

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