javascript 如何在没有Google Tag Manager的情况下以编程方式将事件发送到GA4?

46scxncf  于 2023-04-04  发布在  Java
关注(0)|答案(3)|浏览(101)

我想以编程方式将自定义事件发送到新的Google Analytics,而无需首先在GTM中定义它。
我正在使用Google Tag Manager,根据这篇文章:https://developers.google.com/analytics/devguides/collection/ga4/translate-events
这只能通过在GTM本身定义一个事件来实现。我不能这样做,我想继续使用旧的方法来实现,在旧的方法中,你可以这样做:

if ("ga" in window) {
            var tracker = ga.getAll()[0];
            if (tracker) {
                tracker.send("event", eventCategory, eventAction);
            }
        }

如何使用JavaScript和新的Google Analytics(GA4)来实现此效果?
我使用GTM时未定义window.gtag,使用GA4时未定义window.ga。GTM中配置的唯一标记是“Google Analytics:GA4配置”。

d7v8vwbk

d7v8vwbk1#

你必须使用以下语法(并且你必须在page中使用gtag snippet):

gtag('event', 'login', {
  'method': 'Google'
});

https://developers.google.com/analytics/devguides/collection/ga4/events

vfhzx4xs

vfhzx4xs2#

另一种方法是通过GTM dataLayer(特别是如果您使用GTM Configuration Tag在您的站点上部署GA 4,因为gtag要求您使用部署的gtag.js):

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
    'event': 'aSpecificEventName',
    'form_type_DL': 'contact_us'
});

然后在GTM中配置一个新的变量'form_type_DL',根据自定义事件配置一个新的触发器,将事件名称定义为(在我的例子中)'aSpecificEventName',最后,在GTM中设置一个新的GA 4 Event标签,使用最近创建的新触发器发送事件名称和事件参数,例如其中一个参数可以是form_type,其值为{{form_type_DL}},通过我们的数据层推送发送的数据包将包含'contact_us'
所以正确的步骤顺序是:
1.在GTM中使用特定的变量名定义新变量(仅当您需要向GA 4发送特定值时)
1.使用特定的事件名称创建和配置自定义事件驱动触发器
1.创建一个新的GA 4事件驱动标签,添加您以前创建的触发器并添加您的参数值(如果需要,您决定使用的任何事件参数)作为以前创建的变量。
1.最后,在代码中设置dataLayer push,确保事件值与触发器事件名称相同,并且变量与您的变量匹配。
为了更好地理解我们的工作,如果我们仔细看看gtag.js代码,我们建议手动安装:

<!-- Google tag (gtag.js) -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-XYZXYZXYZ"></script>
    <script>
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());

        gtag('config', 'G-XYZXYZXYZ');
    </script>

我们应该用来推送GA 4事件的gtag()函数执行dataLayer.push(),因此这是一种简化/自动化我首先解释的过程的方法。
https://developers.google.com/analytics/devguides/collection/ga4/events?client_type=gtaghttps://support.google.com/tagmanager/answer/7582054?hl=en

1hdlvixo

1hdlvixo3#

这些是我在GoogleAnalytics4中实现的步骤

gtag("event", "Pageview", {
    pageTitle: page.title,
    date: moment(new Date()).format("DD-MM-YYYY HH:mm:ss")
});

相关问题