Шаг 3. Отслеживание конверсий

Выполнение

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

Реализация отслеживания конверсий состоит из трех частей:

  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, показывающий, как сделать этот запрос на публикацию, приведен ниже:

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 браузера, от вас не требуется предоставления атрибуции между устройствами. В этом случае на каждом устройстве будет сохраняться отдельный токен, если пользователь перешел по ссылке действия на этом устройстве, и каждое устройство будет следовать правилам атрибуции отдельно.