Отслеживание конверсий

Выполнение

Краткое содержание

Внедрение системы отслеживания конверсий включает в себя три компонента:

  1. Получение токена rwg_token со страницы входа в приложение.
  2. Сохранение значения rwg_token для соответствующего периода атрибуции.
  3. Отправка события конверсии при оформлении заказа.

Данная реализация отслеживания конверсий не требует использования Google Analytics или любого другого стороннего JavaScript-кода.

Прежде чем приступать к внедрению системы отслеживания конверсий, следует определиться, будете ли вы отслеживать конверсии на уровне устройства или на уровне пользователя:

  • Отслеживание на уровне устройства включает использование файлов cookie браузера, локального хранилища, локального хранилища приложения или любого другого метода, позволяющего сохранять токен в течение 30-дневного периода атрибуции. Поскольку токен хранится локально на устройстве пользователя, если пользователь меняет используемое устройство, очищает локальное хранилище/файлы cookie или использует режим приватного просмотра или инкогнито, событие конверсии может быть неправильно атрибуировано. При использовании отслеживания конверсий на уровне устройства необходимо повторно реализовать эту функцию на всех поддерживаемых устройствах (включая мобильные).
  • На уровне пользователя токен сохраняется в базе данных вашего приложения через серверную аналитическую систему или другие серверные системы. Поскольку токен хранится на стороне сервера, если пользователь меняет используемое устройство, очищает локальное хранилище/cookie или использует режим приватного просмотра или инкогнито, событие конверсии все равно будет зафиксировано после повторного входа пользователя в систему. При использовании отслеживания конверсий на уровне пользователя, в зависимости от архитектуры вашей системы, вы можете реализовать это один раз на стороне сервера и повторно использовать на всех поддерживаемых платформах.

Получение rwg_token

Каждый раз, когда Google отображает предоставленную вами action_link через ленту новостей, этот URL-адрес будет изменен и будет содержать уникальный параметр запроса: rwg_token . Значение rwg_token представляет собой закодированную строку, содержащую метаданные о ссылке, по которой перешел пользователь. Вы будете хранить этот токен и передавать его обратно в рамках события конверсии.

На каждой целевой странице/точке входа в приложение необходимо проанализировать значение параметра запроса rwg_token и сохранить его. Требования к сохранению этого параметра описаны в шаге « Сохранение rwg_token .

Ниже приведён пример того, как этот токен может быть использован для отслеживания местоположения устройства через браузер. В качестве альтернативы, вы можете получить этот токен на стороне сервера при обработке запроса:

<script>
  var query = location.search.substring(1);
  var params = query.split('&');
  var rwgToken = undefined;
  for (var i = 0; i < params.length; ++i) {
    var pair = params[i].split('=');
    if (pair[0] == 'rwg_token') {
      rwgToken = decodeURIComponent(pair[1]);
      break;
    }
  }
</script>

Сохранение rwg_token

Вам потребуется сохранить параметр URL-адреса rwg_token , который будет добавляться ко всем предоставленным вами ссылкам действий, на общий срок в 30 дней. Значение rwg_token должно храниться и возвращаться без каких-либо изменений. Если существует токен, сохраненный с предыдущего посещения, старый токен следует заменить, а 30-дневный срок хранения должен быть сброшен.

При сохранении токена вы можете хранить его либо на уровне устройства, либо на уровне пользователя:

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

Ниже приведён пример отслеживания конверсий на уровне устройства, сохраняющий этот токен в веб-браузере с помощью cookie первого уровня. В этом примере предполагается, что вы преобразовали значение токена в переменную, как в примере выше. Для использования этого примера вам потребуется заменить «rootdomain» на ваш домен.

<script>
  if (typeof rwg_token !== 'undefined') {
    document.cookie =
    "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
  }
</script>

При использовании отслеживания конверсий на уровне пользователя токен rwg_token следует хранить на сервере и связывать с пользователем.

Отправка данных о конверсиях

Когда пользователь совершает транзакцию, связанную со ссылкой Google Place Action, необходимо отправить HTTP POST-запрос на конечную точку конверсии. Существует две конечные точки: одна для рабочей среды, другая для тестовой.

  • Источник: https://www.google.com/maps/conversion/collect
  • Песочница: https://www.google.com/maps/conversion/debug/collect

Тело сообщения должно представлять собой объект в формате JSON в следующем виде:

{
  'conversion_partner_id': partnerId,
  'rwg_token': <rwg_token_val>
}

Как в тестовой, так и в рабочей среде вам потребуется предоставить действительный rwg_token при отправке события конверсии. Для тестирования в тестовой среде вы можете использовать следующий тестовый токен.

AJKvS9WeONmWKEwjG0--HdpzMq0yAVNL8KMxbb44QtbcxMhSx_NUud5b8PLUBFehAIxOBO-iYRIJOknEFkIJmdsofdVJ6uOweQ==

Ниже приведён полный пример отслеживания конверсий на уровне устройства (с использованием cookie-файла на устройстве пользователя) в JavaScript, демонстрирующий, как выполнить этот POST-запрос:

const partnerId = XXXXXXXXXX;
const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal
    })
  });
}

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

Требования к атрибуции конверсий

Согласно стандартам Google, для атрибуции конверсий установлен 30-дневный период атрибуции для любого взаимодействия со ссылкой на место в любом магазине.

Этот временной интервал атрибуции означает, что событие конверсии будет отправлено в любом из следующих сценариев:

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

Кроме того, мы ожидаем, что события конверсии будут отправляться со всех платформ, на которые пользователь может попасть по ссылке, указывающей на конкретное место. В том числе:

  • Веб-приложения для настольных компьютеров или мобильных устройств
  • Мобильные приложения, либо через прямую ссылку приложения, либо через зарегистрированное намерение приложения для вашего домена.

Если токен хранится на уровне пользователя (см. раздел «Сохранение токена »), предполагается, что вы обеспечите атрибуцию между устройствами. То есть, пользователь, перешедший по ссылке с компьютера и завершивший транзакцию на мобильном устройстве (используя ту же учетную запись), должен инициировать событие конверсии.

Если токен хранится исключительно на уровне устройства, например, в файлах cookie браузера, то предоставление межустройственной атрибуции не требуется. В этом случае для каждого устройства будет сохраняться отдельный токен, если пользователь перешел по ссылке на этом устройстве, и правила атрибуции будут применяться к каждому устройству отдельно.