5

所以我试图在一个网站上实施谷歌分析内容实验,该网站被制作为有角度的单页网站。

我已经设置了我的主页的两个版本,as//?v=2,按照指示粘贴在谷歌代码中,在<head>标签的最顶部,它工作得很好,谷歌将 30% 的流量发送到第一个版本,将 70% 的流量发送到第二个版本页面的版本。

当我尝试访问 say 时,问题就出现了/contact,谷歌显然会认为我仍在访问/并将我发送到/v=2(如果我是 30% 的一部分)。

我什至不确定为什么会发生这种情况,但确实如此,我在想如果谷歌的功能在加载后没有立即运行,但只有在主页的角度controller加载之后才会有帮助。但我可以让谷歌代码工作在上述控制器中..

以前有没有人处理过这个问题?

4

2 回答 2

13

您可以做的是使用 API 代替https://developers.google.com/analytics/devguides/collection/gajs/experiments#cxjs

然后你所要做的就是在你的路线/状态定义中做这样的事情

{
   templateUrl: function() {
      if(cxApi.chooseVariation() == 0) {
         return "version1.html";
      } else {
         return "version2.html";
      }

   }
}
于 2013-11-22T19:07:17.173 回答
3

使用 AngularJS,你将在你的 Angular 代码中选择和提供变体。Google 仅将此浏览器实现称为。因此,您不要使用 Google Analytics Web 界面提供的标准实验代码片段。相反,您将使用Content Experiment JavaScript API。所以你要加载的脚本是:

<script src="//www.google-analytics.com/cx/api.js?experiment=EXPERIMENT_ID"></script>

如果您使用的是 ui-router:

正如 foxx 已经写的那样,您只需在每次用户接触到您想要运行测试的对象时调用来确定变化。cxApi.chooseVariation()$state您可以在$stateProvider.state()调用中选择不同的模板(如 foxx 所示),也可以简单地解析变体编号并将其注入控制器,以在模板中使用变体类:ng-class="{original: isVariation(0), variation-one: isVariation(1)}"

Google 为在客户端实施实验提供了很好的指南

于 2015-11-18T08:20:26.890 回答