gpt4 book ai didi

javascript - 如何触发事件以将 google tagmanager 与 Turbolinks 一起使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:31:39 25 4
gpt4 key购买 nike

我正在尝试使用 Rails 应用程序实现 google tagmanager,但由于 turbolinks 而无法触发其标签。

我看过这个答案:Firing tags in GTM (Google Tag Manager) containers under turbolinks还有这个:Googletagmanager with Turbolinks这告诉我我需要在 page:load 上触发一个事件,但我似乎无法触发该事件。我试过把

$( window ).on( 'page:load', function () {
dataLayer.push({'event': 'event_name'});
} );

在 application.js 文件中,以及将其放入 View 中,我还在 coffeescript anayltics 文件中尝试通过 coffeescript 进行变体:

ready = ->
dataLayer.push({'event': 'event_name'});
$(document).ready(ready)
$(document).on('page:load', ready)

但由于 turbolinks,当我移动到另一个页面时,我仍然无法让 google tagmanager 触发它的标签。

如有任何帮助,我们将不胜感激。

最佳答案

您可以使用虚拟页面 View 来跟踪 turbo 链接页面加载。在 head 关闭标记之前添加以下脚本。修改了默认的 GTM 脚本,使其适用于 turbo 链接。

<!-- Google Tag Manager trigger for Turbolinks -->
<script type="text/javascript">
$(document).on('page:change', function(){
var url = window.location.href;
var data = {
'event':'pageView',
'virtualUrl': url
};
if(window['referer'] !== undefined){
data['pageReferrer'] = window['referer'];
}else{
data['pageReferrer'] = document.referrer;
}
dataLayer.push(data);
window['referer'] = window.location.href;
});
</script>
<!-- End Google Tag Manager trigger for Turbolinks -->

关于javascript - 如何触发事件以将 google tagmanager 与 Turbolinks 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26972185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com