Менеджер тегов Google Analytics DataLayer не отправлен - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь отправить события электронной коммерции в Google Analytics с помощью gtm (Google Analytics: Universal Analytics), это мой код

const loadGa = (next, retry) => {
    if (!retry) retry = 0;
    if (typeof ga === 'function') {
        return next(null);
    }
    if (retry > 10) return next(new Error('Can not load google analytics'));
    retry++;
    setTimeout(() => loadGa(next, retry), 500);
}

const addProductGa = product => {
    loadGa((err) => {
        if (err) return console.error(err);
        dataLayer.push({
            event: 'addToCart',
            ecommerce: {
                currencyCode: 'EUR',
                add: {
                    products: [{
                        name: product.name,
                        id: product.id,
                        price: product.acquisitionAmount / 100,
                        quantity: 1
                    }]
                }
            }
        });
    })
}

const purchaseGa = (charge, product) => {
    loadGa((err) => {
        if (err) return console.error(err);
        dataLayer.push({
            ecommerce: {
                currencyCode: 'EUR',
                purchase: {
                    actionField: {
                        id: charge.id,
                        revenue: charge.amount
                    },
                    products: [{
                        name: product.name,
                        id: product.id,
                        price: product.acquisitionAmount / 100,
                        quantity: 1
                    }]
                }
            }
        });
    })
}

Например, если я позвоню addProductGa

  1. вызов GTM
  2. вызов аналитики
  3. отправка базовых c данных отслеживания

Похоже, мои данные об электронной торговле не отправлено, я не вижу их в сети, обращаюсь к серверу аналитики и у меня нет данных в Google Analytics

1 Ответ

1 голос
/ 16 марта 2020

Что я могу сказать:

  • По умолчанию dataLayer.push никуда не отправляет данные , он просто передает dataLayer. Вам нужны триггеры и теги GTM для отправки данных, что подводит меня к следующему пункту
  • Отсутствует event при вводе некоторых ваших dataLayer.push вызовов (например, purchase): Я знаю, что вы следуете примерам, приведенным в GTM ecom spe c, но IMO это сбивает с толку: некоторые из них показывают коллекции на основе событий (с набором ключа event), другие на основе просмотра страниц коллекция (без набора ключей event). Чтобы упростить настройку, вы должны:
  • Полная настройка : если у вас есть свойство event для всех ваших вызовов dataLayer, вы можете в общем отслеживать их все, используя настройки, аналогичные показанным ниже ( Вы должны изменить триггер на регулярное выражение, соответствующее всем вашим событиям электронной торговли , также не забудьте включить Enhanced Ecommerce в настройках GA ).

    enter image description here

  • Если проблема не устранена , вам следует включить предварительный просмотр / отладку GTM , который сообщит вам, почему некоторые теги не отображаются. запускается и покажет вам отладку значений dataLayer, которые он содержит

  • Если GTM подтверждает, что теги запускаются, но вы не видите отслеживание GA в сети, вы хотите использовать отладчик Chrome GA , который подробно покажет вам, что происходит, и подскажет почему хиты не отправляются.

  • Не забудьте опубликовать sh GTM , как только все это будет устранено и работает

...