Рубрики
Заметки Тех. решения

Организация отправки данных в Ecommerce Google Analitycs

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

Вы организовали хранение данных и сейчас захотели отправлять данные в GA, но есть некоторые проблемы (возможно вы еще о них не знаете, но они есть):

  • все проекты используют различные языки, фрейморки и т. д. (Android, iOS, сайты на .net, php) и нужно под каждый продукт писать свой код, которые отправляет данные в GA
  • нужно учитывать, что заказы, которые оформляет заказчик могут изменяться, отменяться
    -… возможно вы что-то еще придумаете, напишите об этом в комментариях

Так вот, идею я предлагаю следующую (вы можете ее подстроить под свои нужны):

  • для начала у нас должна быть таблица в БД, которая хранит в себе все заказы
  • таблица которая содержит список проектов (веб-сайты, приложения) где пользователи покупают ваши продукты
  • таблица, которая отвечает за отправку данных в GA
  • триггер в СУБД, который отвечает за отслеживания изменения статуса заказа
  • крон джоб, которые работает в указанный интервал времени
  • и скрипт на стороне БД (ЦРМ), который будет отправлять данные в GA

Итак, поехали 🙂

Для начала должна быть построена БД типа:

В ней таблицы:
Projects — список проектов, которые существуют в вашей ЦРМ
Orders — список заказов
Orders_payment_status — статусы заказов, данную таблицу будет триггер и
Orders_Ga — отвечает за отправку данных в GA отвечает таблица

  • id — порядковый номер
  • order_id — номер заказа из таблицы Orders
  • is_handle — отвечает за статус обработана запись или нет, чтобы скрипт постоянно не дергал одну и ту же запись несколько раз
  • create_at — дата создания заказа
  • sent_at — дата отправки данных в GA
  • trigger_update_at — дата и время, когда триггер вставил обновил записи

Далее чтобы должен быть триггер в вашей СУБД, который наблюдает за таблицей Orders и отслеживает изменения поля payment_status_id, возможные статусы:

  • 1 — не оплачен
  • 2 — оплачивается
  • 3 — оплачен
  • 4 — отклонен
    Что триггер делает, когда создается или редактируется заказ, он смотрит на поле payment_status_id, в случае если новый заказ в таблицу вписывает новую запись, в случае, если редактируется и изменяется поле на с «Оплачен» на «Отклонен» делает соотв. изменения в существующей записи.

Теперь крон джоб, он должен запускать скрипт, который будет выбирать записи из таблицы Orders_Ga, у которых поле is_handle = 0 (т. е. их нужно обработать), далее выходить на заказ и смотреть на поле payment_status_id, если оно будет 3 — то посылать в GA успешную оплату, если 4 — посылать в GA отрицательную оплату

Выводы, таким образом у вас будет универсальный скрипт, который написан 1 раз, вы можете добавлять огромное кол-во проектов в црм и будете уверены, что постоянно все отправляется