Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Меня работа на заказ не интересует, но готов подсказать в конкретных моментах, если будет сложность — там их хватает.

А, ну тогда, если можно, в общих чертах саму схему?

 

Фактически в решении данного топика описана отправка только финального события ecommerce: проталкивание продаж и конкретных товаров.

 

Интересует несколько вещей:

1) Product Impressions: я так понимаю, что на странице product.html происходит datalayer.push?

2) Product Click - страница с каталогом и событие onclick по ссылке названия продукта?

3) Adding product to shopping cart - тут самое сложное место, отправка привязана к событию onclick "добавить в корзину"?

4) Checkout - просмотр страницы cart.html ?

5) Purchases - по сути, единственное, что сейчас из данного топика готово

Ссылка на сообщение
Поделиться на другие сайты

А, ну тогда, если можно, в общих чертах саму схему?

 

Фактически в решении данного топика описана отправка только финального события ecommerce: проталкивание продаж и конкретных товаров.

 

Интересует несколько вещей:

1) Product Impressions: я так понимаю, что на странице product.html происходит datalayer.push?

2) Product Click - страница с каталогом и событие onclick по ссылке названия продукта?

3) Adding product to shopping cart - тут самое сложное место, отправка привязана к событию onclick "добавить в корзину"?

4) Checkout - просмотр страницы cart.html ?

5) Purchases - по сути, единственное, что сейчас из данного топика готово

 

1. Impressions — это показы товаров в списках, а не один товар. На главной, в каталоге, во всяких рекомендуемых и просмотренных товарах, в корзине. Везде, где есть ссылка на товар.

 

2. Click — это то же самое, только клики, а не показы.

 

3. Add — добавление в корзину. Но это не сложнее, чем предыдущий пункт — реализация аналогична. Просто при клике на кнопку добавления в корзину отправляете событие.

 

4. Сheckout —  да, страница корзины.

 

5. Purchase — страница заказа.

 

В вашем списке не хватает самого главного: Detail. Это как раз посещение страницы товара.

 

Еще можно сделать Remove — удаление из корзины. Но будет нелегко, если у вас в селектах меняется количество — придется при каждом изменении пересчитывать разницу и отправлять новое событие. Я обычно это не делаю — никакой пользы в отчетах Гугл-аналитики от этого нет. Ограничиваюсь только полным удалением товара из корзины. Но в Симпле это тоже не даст верной картины, поскольку корзина к сессии привязана и сбрасывается быстро. В общем, Remove —по желанию, главное чтобы Add был — он в основных отчетах участвует.

Изменено пользователем bananovsv
Ссылка на сообщение
Поделиться на другие сайты

О, спасибо, а можете подсказать в какой момент отправляете события?

 

1. Impressions  - в такой постановке ощущение, что должно быть что-то вида pagescroll страниц, на которых есть товары

2. Click - видимо привязано к событию onclick ссылки по товару на сайте

3. Detail - просмотр карточки, на странице product.tpl?

----

4. Add - разобрались.

5. Checkout - разобрались

6. Purchase - готово. 

----

 

По Remove понял, этим можно пренебречь. 

Ссылка на сообщение
Поделиться на другие сайты

А, ну тогда, если можно, в общих чертах саму схему?

 

Фактически в решении данного топика описана отправка только финального события ecommerce: проталкивание продаж и конкретных товаров.

 

Интересует несколько вещей:

1) Product Impressions: я так понимаю, что на странице product.html происходит datalayer.push?

2) Product Click - страница с каталогом и событие onclick по ссылке названия продукта?

3) Adding product to shopping cart - тут самое сложное место, отправка привязана к событию onclick "добавить в корзину"?

4) Checkout - просмотр страницы cart.html ?

5) Purchases - по сути, единственное, что сейчас из данного топика готово

 

Укажу на слабые места.

 

Очень часто бывает проблема с отправкой показов. Если товаров на странице хотя бы штук 20-30, то они не пройдут скорее всего из-за ограничения объема. Т. е. вообще ничего не отправится. Это обычно никто не замечает и получают неверные данные в Аналитике — конверсия кликов выше, чем на самом деле. Потому что клик отправится, а показ нет.

 

Вариантов решений два:

1. Вообще не отправлять названия товаров, а только айди. Как раз названия товаров и категорий занимают много места. Особенно на русском языке. Но это не очень удобно потом в отчетах Аналитики.

2. Слать всё пачками по 10-20 штук. Для этого в цикле выводить код показов. Реализация зависит от конкретного сайта. Тут нужно не налажать с параметром position — чтобы он не заново начинался, а продолжался.

 

 

Еще нужно иметь в виду, что не все нужные данные по умолчанию есть в нужных шаблонах. Их выборку нужно дописывать. Например, категории товара на странице корзины и заказа. Цены и категории у просмотренных товаров.

 

 

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

{if $module == 'OrderView' && $smarty.server.HTTP_REFERER|strpos:'/cart' && ($order->date|date_format:'%D %T' > '-1 minute'|date_format:'%D %T')}
// Тут код события purchase
{/if}

 

А то если в истории браузера назад-вперед походить, то покажется еще раз. Все повторы в рамках сессии в 30 минут Гугл-аналитика сама склеит, а после 30 минут будет дубль, если это условие не делать.

Изменено пользователем bananovsv
Ссылка на сообщение
Поделиться на другие сайты

О, спасибо, а можете подсказать в какой момент отправляете события?

 

1. Impressions  - в такой постановке ощущение, что должно быть что-то вида pagescroll страниц, на которых есть товары

2. Click - видимо привязано к событию onclick ссылки по товару на сайте

3. Detail - просмотр карточки, на странице product.tpl?

----

4. Add - разобрались.

5. Checkout - разобрались

6. Purchase - готово. 

----

 

По Remove понял, этим можно пренебречь. 

 

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

 

Detail — да, product.tpl.

 

Про Impressions не понял вопроса. В зависимости от версии скрипта реализация может быть разной.

 

Например, в analytics.js я ставлю код показов товара прямо в цикл вывода товаров и после него отправляю всё событием с параметром non-interaction (это важно, иначе будут дублироваться просмотры страниц).

 

В случае с gtag.js так уже не получится, потому что перечень товаров и отправка там в одном блоке кода. Для него мне приходится дублировать цикл вывода товаров. Я в обычном цикле вывода товаров собираю в массив все айдишники товаров, которые выводятся на странице, а потом прогоняю их в той же последовательности специально для скрипта отправки показов.

 

Вариант с gtag.js хоть и выглядит более заморочно, но факту удобнее, потому что не нужно к каждому товару лепить код — просто в конце страницы всё пачкой. Ну и он более новый, Гугл рекомендует пользоваться им. Старый скорее всего скоро отключат, как когда-то заменили ec.js на analytics.js.

Изменено пользователем bananovsv
Ссылка на сообщение
Поделиться на другие сайты
  • 4 года спустя...

Итак, многое изменилось. С отвалом старой аналитики и переходом на GA4 - данное решение уже не работает. Пока что разобрался на основании этой темы только с тем, как отправлять завершенный заказ (условно оплаченный) в Менеджер Тегов:

{if $order && $smarty.server.HTTP_REFERER|strpos:"/cart/"}
<!-- Данные о заказанных товарах для GA -->
<script>
 dataLayer.push({ ecommerce: null });  // Clear the previous ecommerce object.
dataLayer.push({
  event: "purchase",
  ecommerce: {
      transaction_id: '{$order->id}',
      affiliation: 'ТВОЙСАЙТ',
      value: '{$order->total_price|string_format:"%.2f"}',
      tax: '0.00',
      shipping: '0.00',
      currency: 'USD',
      coupon: '0.00',
      items: [
      {foreach $purchases as $purchase}
         {
        item_name: '{$purchase->product->name|escape}',
        item_id: '{if $purchase->variant->sku}{$purchase->variant->sku}{else}id-{$purchase->variant->id}{/if}',
        price: '{($purchase->variant->price)|string_format:"%.2f"}',
        item_brand: '{if $purchase->product->brand}{$purchase->product->brand|escape}{/if}',
        item_category: '{$purchase->product->category->name|escape}',
        item_variant: '{if $purchase->variant->name}{$purchase->variant->name|escape}{/if}',
        quantity: '{$purchase->amount}'
      }{if not $purchase@last},{/if}{/foreach}]
  }
});
</script>
<!-- End Данные о заказанных товарах для GA -->
    {/if}

У кого какие успехи с остальным? Остаются, которые требуют правки в php:
add_to_cart    Пользователь добавляет товар в корзину.
begin_checkout    Пользователь начинает оформление покупки.
remove_from_cart    Пользователь удаляет товары из корзины.
select_item    Пользователь выбирает товар из списка или предложения.
view_cart    Пользователь просматривает корзину.
view_item    Пользователь просматривает информацию о товаре.
view_item_list    Пользователь просматривает список элементов или предложений.

Основные, для коректной работы рекламы в Google по ROAS и не только, это просмотр products.tpl, product.tpl, cart.tpl, добавление в корзину товара

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...