我正在使用Google Optimize创建A / B测试。如本指南所述,我在服务器端模式下使用它:https://developers.google.com/optimize/devguides/experiments
该指南通过在服务器上呈现设置实验ID和变体ID的JS代码,展示了一种简单的方法来设置哪个实验运行哪个变体:
// 2. Create a tracker.
ga('create', 'UA-XXXXX-Y', 'auto');
<?php
<<<HTML
// 3. Set the experiment ID and variation ID.
ga('set', 'exp', '$experimentId.$variationId');
HTML;
?>
// 4. Send a pageview hit to Google Analytics.
ga('send', 'pageview');
但是,我使用的是Google跟踪代码管理器,到目前为止,还没有找到任何指南来显示如何使用服务器设置变量。 ga
是未定义的变量,因此以上操作无效。
答案 0 :(得分:3)
由于GTM会为每个标签调用常规代码段,因此您可以设置分析代码段可以理解的任何字段,即使这些代码段尚未在标签编辑器下拉列表中自动列出。
然后设置DataLayer变量,以便可以从外部源接收它,例如:
现在,您可以在服务器端设置DataLayer变量,该变量将传递给标签。由于我选择了页面视图,因此最好在加载GTM之前预先填充dataLayer,以便它们在初始代码触发之前就存在,例如:
<!-- Google Tag Manager -->
<?php or other backend language wrapping...
<script>window.dataLayer = [{exp:"$experimentId.$experimentVariant"}]
</script>
?>
<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-0');</script>
<!-- End Google Tag Manager -->