谷歌标签管理器优化服务器端实验发送变体 [英] Google Tag Manager & Optimize Server-Side experiment sending variation

查看:21
本文介绍了谷歌标签管理器优化服务器端实验发送变体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用 Google 跟踪代码管理器容器来管理脚本.我正在尝试执行服务器端优化/分析实验.出于性能原因,我需要服务器端.我已经对 GTM/Optimize 容器进行了很好的客户端实验.

这是我的 GTM 代码:

window.dataLayer = window.dataLayer ||[];....<!-- Google 标签管理器--><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-XXXXXXXX');</script><!-- 结束 Google 标签管理器 -->

我尝试了以下不同的方法来触发要触发的变体.

//只有当 GA 通过 setTimeout 存在时才会调用这些 fn.他们被正确调用.//我已经通过 GTM 容器设置了 ExperimentTrigger 并且它正确地触发到 Analytics.函数 setGAExperiment1(_expIdvId){//匹配 ga('set', 'exp', '$experimentId.$variationId');//https://developers.google.com/optimize/devguides/experimentsga('set', 'exp', _expIdvId);dataLayer.push({'event': 'experimentTrigger', 'exp': _expIdvId });//触发exp的数据发送//我在 Analytics 上接收到具有exp"值的 ExperimentTrigger 事件,但没有将任何实验数据发送到优化/分析中.}函数 setGAExperiment2(_expIdvId){//匹配 ga('set', 'exp', '$experimentId.$variationId');//https://developers.google.com/optimize/devguides/experimentsga('set', 'exp', _expIdvId);ga('发送', '事件', '实验', '查看');//触发exp的数据发送}

我在 Google 优化工具或 Google Analytics(分析)中没有收到任何实验数据 -> 行为 -> 像我应该做的那样的实验.我该如何解决这个问题?

我发现与此主题最接近的讨论是

I'm using the Google Tag Manager container for managing scripts. I'm trying to perform a server-side Optimize/Analytics experiment. I require server-side for performance reasons. I've performed client-side experiments just fine with the GTM/Optimize containers.

Here's my GTM code:

window.dataLayer = window.dataLayer || [];
....    
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXXX');</script>
<!-- End Google Tag Manager -->

I've tried the following different methods to trigger which variation to trigger.

// These fn get called only once GA exists via setTimeout. They get called correctly.
// I've setup the experimentTrigger via GTM container and it triggers correctly to Analytics.
function setGAExperiment1(_expIdvId){
    // Matches ga('set', 'exp', '$experimentId.$variationId');
    //   https://developers.google.com/optimize/devguides/experiments
    ga('set', 'exp', _expIdvId);
    dataLayer.push({'event': 'experimentTrigger', 'exp': _expIdvId }); // to trigger data send of exp
    // I receive the experimentTrigger event with 'exp' value on Analytics but not any experiment data into Optimize/Analytics.
}

function setGAExperiment2(_expIdvId){
    // Matches ga('set', 'exp', '$experimentId.$variationId');
    //   https://developers.google.com/optimize/devguides/experiments
    ga('set', 'exp', _expIdvId);
    ga('send', 'event', 'experiment', 'view'); // to trigger data send of exp
}

I'm not receiving any experiment data in Google Optimize or Google Analytics -> Behaviors -> Experiments like I should be. How can I fix this?

The closest discussion I've found to this topic is here and here but no concrete answers.

解决方案

You can set Google Analytics variables on page load by using the 'Fields To Set' option in Google Tag Manager.

  1. Open your Universal Analytics Tag in GTM
  2. Click Enable overriding settings in this tag
  3. Click More Settings > Fields to Set
  4. Create a new field called expId. This field should contain the alphanumeric experiment id XXXXXXXXXXX.
  5. Create a new field called expVar. This field should contain the experiment variant number (0 for original, 1, 2, 3 etc for custom versions)

Important: Make sure that the optimize tag get's triggered before the analytics tag.

In my case I used a Custom Javascript variable for the expId and expVar fields, which used some custom code to get the correct experiment ID and version ID.

I figured the field names out by checking out the 'Analytics Field Reference' page:

https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#expId

https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#expVar

This method is probably preferred over your own answer, since it doesn't require any extra events to be triggered. Besides that you can configure this in GTM completely.

Screenshot for reference:

这篇关于谷歌标签管理器优化服务器端实验发送变体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆