将Google内容实验代码添加到Angular 1应用程序的单个页面

时间:2017-02-27 13:23:59

标签: javascript html angularjs google-analytics

我有Google内容实验代码,如下所示:

<script type="text/javascript">
 function utmx_section(){}function utmx(){}(function(){var
   k='1234566789-0',d=document,l=d.location,c=d.cookie;
   if(l.search.indexOf('utm_expid='+k)>0)return;
   function f(n){if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.
   indexOf(';',i);return escape(c.substring(i+n.length+1,j<0?c.
       length:j))}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;d.write(
     '<sc'+'ript src="'+'http'+(l.protocol=='https:'?'s://ssl':
       '://www')+'.google-analytics.com/ga_exp.js?'+'utmxkey='+k+
     '&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='+new Date().
     valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
     '" type="text/javascript" charset="utf-8"><\/sc'+'ript>')})();
 </script>
 <script type="text/javascript">utmx('url','A/B');</script>

我需要将它添加到Angular应用程序,但只能添加到单个页面。问题是它使用document.write(),如果动态添加页面会使页面变为空白。如果我将其静态添加到主index.html,它将加载所有页面,而不仅仅是我想要的页面。有没有解决的办法?我相信它可以通过服务器端渲染来完成,但我现在还没有设置它,只是为这个小脚本做这件事看起来有点矫枉过正。

1 个答案:

答案 0 :(得分:0)

您应该使用内容实验api而不是https://developers.google.com/analytics/solutions/experiments-client-side

但是,它对单页应用程序不起作用,但是......