Возврат на сайте: как правильно отменить транзакцию в Google Analytics
При построении корректной отчетности для интернет-магазина через Google Analytics нужно учитывать возвраты и отказы. Пользователь мог сделать заказ на 20 000 грн, а потом отказаться от заказа или вернуть его через время по каким-либо причинам. Вследствие этого в статистике мы видим данные, которые далеки от реальности, а на основании некорректных исходных данных не получится сделать грамотные выводы.
Чтобы исправить этот недочет, нужно вместе с программистом реализовать доработку, при помощи которой данные из CRM будут передаваться в Google Analytics. Можно реализовать отправку данных так, чтобы после изменения статуса заказа отправлялся HTTP запрос через Measurement Protocol в Google Analytics.
А если возвратов очень мало — можно делать вручную через Hit Builder.
В статье мы расскажем, что такое Measurement protocol, а также как отменить транзакцию в стандартной и расширенной электронной торговле.
Что такое Measurement Protocol
Это протокол передачи статистических данных Google Analytics. С его помощью можно отправлять сырые данные напрямую в Google Analytics через HTTP запросы.
Более подробно о Measurement Protocol на странице справки.
Какие задачи решает протокол
При помощи Measurement Protocol можно связать онлайн и оффлайн действия пользователей, отправлять данные о просмотрах, транзакциях, событиях, отменять транзакции. В общем, практически всё.
Основная задача протокола — передавать в Google Analytics те данные, которые не подтягиваются туда из приложения/сайта автоматически.
Типы хитов, которые можно передать:
За что отвечает? | Название хита |
Отслеживание страниц | pageview |
Отслеживание событий | event |
Отслеживание расширенной электронной торговли | через pageview,event |
Отслеживание стандартной электронной торговли | transaction и item |
Социальные взаимодействия | social |
Отслеживание ошибок | exception |
Отслеживание пользовательского времени | timing |
Отслеживание приложений/экранов | screenview |
Т.е. под каждый тип взаимодействий есть свой хит, а у каждого из них, в свою очередь, есть набор параметров, которые можно передать.
Например, для хита event есть следующие параметры:
Параметр | Для чего используется? |
v=1 | Версия, всегда указывается 1. |
tid=UA-XXXXX-Y | Идентификатор отслеживания |
cid=123456 | ClientID, можно указать любое значение |
t=event | тип хита |
ec=services | Event Category |
ea=order | Event Action |
el=car-wash | Event Label |
ev=300 | Event Value |
Также можно комбинировать параметры из других хитов. Это не полный список.
Чтобы ознакомиться со всеми возможными параметрами, которые можно передавать, необходимо изучить справку.
Как сформировать запрос
Сформировать HTTP запрос можно при помощи Hit Builder, проверить там же его валидность и отправить в Google Analytics.
Пример запроса на отправку события:
Теперь нужно проверить валидность хита и если всё верно, отправить данные об этом событии в Google Analytics.
Запрос получился следующий:
v=1&t=event&tid=UA-128507111-1&cid=12345&ec=services&ea=order&el=car-wash&ev=300
Как «отменить» транзакцию в стандартной электронной торговле
Теперь рассмотрим как отменить транзакцию в стандартной электронной торговле. Для этого необходимо отправить несколько запросов: transaction и item по каждому товару.
Т.е. сначала нужно отправить данные о транзакции в целом, а потом информацию по каждому купленному товару. За счет идентификатора транзакции данные свяжутся автоматически, поэтому запросы можно отправлять просто по очереди через Hit Builder.
Следует учитывать, что в стандартной электронной торговле нет возможности отменить транзакцию, можно только создать новую с отрицательным значением цены. Это проблема, потому что возвраты искусственно увеличивают количество транзакций, что, в свою очередь, негативно влияет на качество данных.
Покажем, как «отменить» транзакцию в стандартной электронной торговле на примере. Представим, что у нас на сайте оформили заказ на создание двух белых рубашек, по 500 грн каждая. Но Inweb предоставляет услуги только по SEO & PPC, а никак не по пошиву рубашек, поэтому нам придется отменить заказ этого клиента.
Сначала нужно отправить хит transaction с общей информацией о транзакции.
Обращение типа Transaction имеет следующие параметры:
Параметр | Для чего используется? |
ti* | Идентификатор транзакции. |
ta | Название магазина или филиала. |
tr | Сумма транзакции. |
ts | Стоимость доставки. |
tt | Налоги. |
cu | Валюта транзакции. |
Обязательные параметры отмечены звездочкой.
Пример запроса:
v=1&t=transaction&tid=UA-128507111-1&cid=123456&ti=123456&ta=Inweb%20Store&tr=-1000&ts=0&tt=0&cu=UAH
Далее необходимо сделать хит item по товару, который был куплен.
Обращение типа item имеет следующие параметры:
Параметр | Для чего используется? |
ti* | Идентификатор транзакции. |
in* | Название товара. |
ip | Стоимость товара. |
iq* | Кол-во товаров. |
ic | Идентификатор товара. |
iv | Категория товара. |
cu | Валюта. |
Обязательные параметры отмечены звездочкой.
Пример запроса:
v=1&t=item&tid=UA-128507111-1&cid=123456&ti=12345&in=
%D0%A0%D1%83%D0%B1%D0%B0%D1%88%D0%BA%D0%B0%20%D0%B1%D0%B5%D0%BB%D0%B0%D1%8F&ip=
-500&iq=2&ic=12345&iv=%D0%A0%D1%83%D0%B1%D0%B0%D1%88%D0%BA%D0%B8&cu=UAH
Отправив по очереди 2 запроса transaction и item, мы передали данные о поступлении транзакции с доходом минус 1000 грн.
Теперь необходимо подождать (достаточно долго, до 30 минут) и мы получим данные в Google Analytics:
Как отменить транзакцию в расширенной электронной торговле
В расширенной электронной торговле очень удобно реализована возможность возвратов. Можно сделать полную отмену транзакции или убрать из транзакции конкретный товар.
Т.е. в отчетах Google Analytics будет удалена транзакция, а не добавлена ещё одна с отрицательной суммой.
В этом одно из основных преимуществ расширенной электронной торговли для ведения аналитики продаж.
Как отменить транзакцию:
Для совершения возврата по транзакции необходимо отправить запрос со следующими параметрами:
Параметр | Для чего используется? |
v=1* | Указание версии, всегда =1. |
tid=UA-XXXXX-Y* | Идентификатор отслеживания. |
cid=555* | ClientID. |
t=event* | Отправляем событие. |
ec=Ecommerce* | Event Category. |
ea=Refund* | Event Action. |
ni=1 | Указываем «не взаимодействие». |
ti=3123* | Идентификатор транзакции. |
pa=refund* | Указываем, что это возврат. |
Обязательные параметры отмечены звездочкой.
Пример запроса:
v=1&t=event&tid=UA-123159846-1&cid=555&ec=Ecommerce&ea=Refund&ni=1&ti=T12345&pa=refund
После отправки запроса будет оформлен возврат по данной транзакции.
Как сделать возврат одного товара из транзакции:
Параметр | Для чего используется? |
v=1 | Указание версии, всегда =1. |
tid=UA-XXXXX-Y | Идентификатор отслеживания. |
cid=555 | ClientID. |
t=event | Отправляем событие. |
ec=Ecommerce | Event Category. |
ea=Refund | Event Action. |
ni=1 | Указываем «не взаимодействие». |
ti=T12345 | Идентификатор транзакции. |
pa=refund | Указываем, что это возврат. |
pr1id=P12345 | ID товара. |
pr1qt=1 | Кол-во товаров. |
Пример запроса:
v=1&t=event&tid=UA-123159846-1&cid=555&ec=Ecommerce&ea=Refund&ni=1&ti=T12345&pa=refund&pr1id=P12345&pr1qt=1
Если этот нюанс упустить, то будет такая ситуация:
Выводы:
- При помощи Measurement Protocol можно передавать практически все виды данных в Google Analytics из CRM/вручную.
- Отменить транзакцию в стандартной электронной торговле нельзя, можно только создать дополнительную транзакцию с отрицательной суммой.
- В расширенной электронной торговле есть возможность сделать как полный возврат транзакции, так и отдельного товара из транзакции.
- Обязательно нужно заполнять ClientID заказа для совпадения канала транзакции.
- Для стандартной электронной торговли необходимо отправлять несколько запросов (transaction + item для каждого товара) и связываются они вместе благодаря ID транзакции.
Материалы:
- Справка по Measurement protocol.
- Hit Builder.
- Очень крутая и подробная статья на блоге Netpeak про Measurement Protocol.
- Справка по всем доступным параметрам.