<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>纪杨的网站数据分析笔记 &#187; 统计脚本部署与定制</title>
	<atom:link href="http://jiyang.me/?cat=7&#038;feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://jiyang.me</link>
	<description>专注于网站数据分析与产品体验 &#124; google analytics</description>
	<lastBuildDate>Fri, 03 Mar 2023 12:16:15 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>统计代码的变量声明与读取</title>
		<link>http://jiyang.me/?p=724&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e7%25bb%259f%25e8%25ae%25a1%25e4%25bb%25a3%25e7%25a0%2581%25e7%259a%2584%25e5%258f%2598%25e9%2587%258f%25e5%25a3%25b0%25e6%2598%258e%25e4%25b8%258e%25e8%25af%25bb%25e5%258f%2596</link>
		<comments>http://jiyang.me/?p=724#comments</comments>
		<pubDate>Wed, 07 Aug 2013 02:28:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[统计脚本部署与定制]]></category>

		<guid isPermaLink="false">http://jiyang.me/?p=724</guid>
		<description><![CDATA[统计代码会部署在网站的全局页脚，无法保证所有页面都提供了相关的变量和参数，所以统计代码的健壮性非常重要，读取前 [...]]]></description>
				<content:encoded><![CDATA[<p>统计代码会部署在网站的全局页脚，无法保证所有页面都提供了相关的变量和参数，所以统计代码的健壮性非常重要，读取前要检查，必要时指定默认值。</p>
<p>全局变量声明：</p>
<pre><code>var _gaq = _gaq || [];
</code></pre>
<p>函数内，全局变量声明：</p>
<pre><code>function foo() {
    window._gaq = window._gaq || [];
}
</code></pre>
<p>函数内，读取全局的变量值：</p>
<pre><code>// 如果全局变量没有声明，函数内的局部变量会赋一个默认值，且不会影响全局变量：
function foo() {
    var page_type = window.page_type || "(empty)";
}
</code></pre>
<p>检查变量是否已声明：</p>
<pre><code>if (window.page_type == undefined) {

}
</code></pre>
<p>或</p>
<pre><code>if (window["page_type"] == undefined) {

}
</code></pre>
<p>或</p>
<pre><code>if (typeof(page_type) != "undefined") {

}
</code></pre>
<p>检查函数是否已声明：</p>
<pre><code>// 考虑到统计代码一般会部署在独立的js文件里
// 所以页面里，调用统计代码里声明的函数，也应该用类似的方式调用
if (typeof(on_reg_succ) == "function") {
    on_reg_succ();
}
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://jiyang.me/?feed=rss2&#038;p=724</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在Google Analytics中跟踪url hash参数信息</title>
		<link>http://jiyang.me/?p=695&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=%25e5%259c%25a8google-analytics%25e4%25b8%25ad%25e8%25b7%259f%25e8%25b8%25aaurl-hash%25e5%258f%2582%25e6%2595%25b0%25e4%25bf%25a1%25e6%2581%25af</link>
		<comments>http://jiyang.me/?p=695#comments</comments>
		<pubDate>Thu, 02 May 2013 05:47:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[统计脚本部署与定制]]></category>

		<guid isPermaLink="false">http://jiyang.me/?p=695</guid>
		<description><![CDATA[hash 参数提交 网站中的url地址除了主机名，页面，查询参数外，还会有hash锚参数： http://ji [...]]]></description>
				<content:encoded><![CDATA[<h2>hash 参数提交</h2>
<p>网站中的url地址除了主机名，页面，查询参数外，还会有hash锚参数：</p>
<p><code>http://jiyang.me/search.htm?k=wa#hot=true</code></p>
<ul>
<li>主机名(hostname)：jiyang.me </li>
<li>页面(pathname)：/search.htm </li>
<li>查询参数（search）：?k=waconfig </li>
<li>锚（hash）：#hot=true </li>
</ul>
<p>这儿的hash，一般用于页面内的导航跳转，如：打开文章时，跳到参考信息部分。</p>
<p>在Ajax为主的网站中，这儿的hash还可以用于特定的动作，如：商品收藏。</p>
<p><code>http://jiyang.me/product.htm?id=123#fav</code></p>
<p>ga在提交页面地址时，默认是不包括hash信息的，这时在GA后台会看到这样的页面列表：</p>
<p><code>/product.htm?id=123</code></p>
<p>而不知道有多少商品被收藏。</p>
<p>处理办法是有的，在提交页面地址时，通过虚拟页面的方式附加上hash参数即可。</p>
<pre><code>var full_url = location.pathname + location.search + location.hash; 
_gaq.push(['_trackPageview', full_url]); 
</code></pre>
<p>代码中的：<code>location.hash</code> 用来读取hash参数。 参考：</p>
<ul>
<li><a href="http://www.w3school.com.cn/htmldom/prop_loc_hash.asp">w3c HTML DOM hash 属性说明</a></li>
<li><a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration#_gat.GA_Tracker_._trackPageview">GA 虚拟页面提交说明</a></li>
</ul>
<h2>通过hash参数标注广告渠道</h2>
<p>在投放广告时，我们会通过utm_source这样的查询参数来标注广告渠道，例如：</p>
<p><code>http://jiyang.me/about.htm?utm_campaign=blog&amp;utm_medium=ppc&amp;utm_source=google</code></p>
<p>但有时候，因为服务器端限制或url重写的原因，直接传递这样的查询参数，会导致页面出错，这时可以通过hash的方式传递参数（因为hash参数是浏览器前端处理的，不会提交到后端程序）：</p>
<p><code>http://jiyang.me/about.htm#utm_campaign=blog&amp;utm_medium=ppc&amp;utm_source=google</code></p>
<p>如果这样做，记得要：</p>
<pre><code>_gaq.push(['_setAllowAnchor', true]);  
</code></pre>
<p>即告诉GA，读取hash做为url查询参数。注意这么做时，提交的页面地址仍然不包括hash信息，如果要包含hash参数，还是得用上面虚拟页面的方式来处理。</p>
<p>参考：</p>
<ul>
<li><a href="https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiCampaignTracking#_gat.GA_Tracker_._setAllowAnchor">GA _setAllowAnchor 说明</a></li>
<li><a href="https://support.google.com/analytics/answer/1033863?hl=zh-Hans&amp;uls=zh-Hans">GA 自定义广告系列</a></li>
<li><a href="http://i.wanz.im/2010/03/05/making_ajax_applications_crawlable/">Google爬虫对url hash的抓取</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jiyang.me/?feed=rss2&#038;p=695</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Tag Manager 入门指南</title>
		<link>http://jiyang.me/?p=441&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-tag-manager-%25e5%2585%25a5%25e9%2597%25a8%25e6%258c%2587%25e5%258d%2597</link>
		<comments>http://jiyang.me/?p=441#comments</comments>
		<pubDate>Mon, 15 Oct 2012 11:58:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[统计脚本部署与定制]]></category>
		<category><![CDATA[tag_manager]]></category>

		<guid isPermaLink="false">http://jiyang.me/?p=441</guid>
		<description><![CDATA[Google 近期发布了：Tag Manager 产品（http://www.google.com/tagma [...]]]></description>
				<content:encoded><![CDATA[<p>Google 近期发布了：Tag Manager 产品（<a href="http://www.google.com/tagmanager/">http://www.google.com/tagmanager/</a>），适用于站点多，运行多套：流量，广告系统的用户。部署一份脚本，然后根据规则，加载对应的脚本，方便修改和管理，还支持版本和调试等功能。中文帮助在这儿：<a href="http://support.google.com/tagmanager/?hl=zh-Hans">http://support.google.com/tagmanager/?hl=zh-Hans</a>，国外的话，之前也有很多类似的商业产品。</p>
<p>在正式使用Google Tag Manager之前，我们先看看没有这个工具之前，我们是如何管理Tag脚本的。</p>
<p><span style="color: #4f81bd;"><strong>Step 1：<br />
</strong></span></p>
<p>按照Google Analytics的配置要求，我们把如下的脚本放到网站全局的页脚，如：footer.inc：</p>
<p>&lt;script type=&#8221;text/javascript&#8221;&gt;<br />
var _gaq = _gaq || [];<br />
_gaq.push(["_setAccount", "UA-XXXXXX-1"]);<br />
_gaq.push(["_trackPageview"]);<br />
(function() {<br />
var ga = document.createElement(&#8220;script&#8221;); ga.type = &#8220;text/javascript&#8221;; ga.async = true;<br />
ga.src = (&#8220;https:&#8221; == document.location.protocol ? &#8220;https://ssl&#8221; : &#8220;http://www&#8221;) + &#8220;.google-analytics.com/ga.js&#8221;;<br />
var s = document.getElementsByTagName(&#8220;script&#8221;)[0]; s.parentNode.insertBefore(ga, s);<br />
})();<br />
&lt;/script&gt;</p>
<p>这样全站的访问数据就会提交到Google Analytics的服务器。</p>
<p>一个星期后，我们发现Google Analytics对国内的搜索引擎识别不好，于是又添加了如下的代码：</p>
<p>_gaq.push(<br />
["_addOrganic", "baidu", "word"],<br />
["_addOrganic", "so.360.cn", "q"],<br />
["_addOrganic", "sogou", "query"]<br />
);</p>
<p>随着业务分析的深入，我们会更频繁的修改这儿的脚本，而一个web站点往往会有多台服务器，每次修改，会涉及到版本发布和部署的问题，非常的不方便。</p>
<p><span style="color: #4f81bd;"><strong>Step 2：<br />
</strong></span></p>
<p>总是骚扰IT部门的同事不太好，我们决定把这儿的统计脚本独立出来，并放到独立的文件域，如：www.mysite_file.com/track/site_a.js，然后把这个js的引用放到全局的页脚：</p>
<p>&lt;script type=&#8221;text/javascript&#8221; src=&#8221;www.mysite_file.com/track/site_a.js&#8221;&gt;&lt;/script&gt;</p>
<p>这样后边要修改统计脚本时，只要修改这个js脚本即可。</p>
<p>为了更好的管理这儿的脚本，还可以把这儿的：site_a.js，site_b.js等脚本放到代码管理工具下，如：svn下，每次修改后，保存一个版本并添加注释，这样即使脚本有问题，也可以及时回退。</p>
<p><span style="color: #4f81bd;"><strong>Step 3：<br />
</strong></span></p>
<p>我们的业务蓬勃发展，对于脚本定制性的要求越来越高，如：</p>
<p>1．需要对特定的页面，设置用户变量。<br />
2．如果从某个引用页过来，则触发事件。<br />
3．在记录站点搜索结果时，需要读取搜索的结果数，而这个结果数，是放在一个Html文本框内。<br />
4．需要快速的添加广告系统代码，如：AdWords，DoubleClick。</p>
<p><strong>以判断页面地址为例：<br />
</strong></p>
<p>完全匹配：<br />
if (location.pathname == &#8220;/en/list.aspx&#8221;) { … }</p>
<p>以某个地址开始的情况,如：/cate1/ 或 /cate2/目录：<br />
if (location.pathname.indexOf(&#8220;/cate1/&#8221;) == 0 || location.pathname.indexOf(&#8220;/cate2/&#8221;) == 0) { … }</p>
<p>通配符，如：文章的地址：/article_123：<br />
If (/article_d+/.test(a)) { … } // 这儿用正则表达式来匹配末尾的数字。</p>
<p>实际的匹配条件会有很多种，这对于没有代码基础的网站分析人员可真是一种挑战啊，另外写完的判断脚本，测试也是个问题，有可能需要先发布，然后：alert或 console.log来辅助测试。</p>
<p><span style="color: #4f81bd;"><strong>Step 4：<br />
</strong></span></p>
<p>半年以后，我们的网站分析人员或成为了代码编写高手，或每天继续被这些常见的问题困扰，大大影响了本职分析工作的展开，那么是否有更好的方式来管理，修改，测试，发布我们的统计脚本吗？</p>
<p>先整理一下基本需求：</p>
<ol>
<li>希望简化日常的代码：修改，发布，测试，版本管理。</li>
<li>希望常用的代码能够重用，或修改一下参数就可用。</li>
<li>希望根据特点的条件加载对应的统计脚本，这儿的条件设置，希望能简单一些。</li>
<li>希望有常见广告系统的代码模板，填一下参数即可。</li>
</ol>
<p>这个时候，你就可以考虑<a href="http://www.google.com/tagmanager/">Google Tag Manager</a> 产品了，首先他完全免费，其次界面操作，权限管理等，和Google Analytics操作习惯类似，可以很快上手。</p>
<p><span style="color: #4f81bd;"><strong>账号添加：<br />
</strong></span></p>
<p>首先你需要注册一个新账号，用gmail邮箱即可，然后创建一个Account：</p>
<p><img src="http://jiyang.me/wp-content/uploads/2012/10/101512_0359_GoogleTagMa113.png" alt="" /></p>
<p>指定默认的Container名称，可选的，输入站点域名：</p>
<p><img src="http://jiyang.me/wp-content/uploads/2012/10/101512_0359_GoogleTagMa213.png" alt="" /></p>
<p>提示你添加如下的代码到自己的站点：</p>
<p><img src="http://jiyang.me/wp-content/uploads/2012/10/101512_0359_GoogleTagMa313.png" alt="" /></p>
<p>然后会提示你创建：Google Analytics，Adwords等统计的Tag，我们选稍后加。</p>
<p><span style="color: #4f81bd;"><strong>基本概念：<br />
</strong></span></p>
<p><strong>Container</strong>：<br />
也就是容器了，容器里会包括相关的代码和判断加载逻辑，可以从：Container Settings里查看复制加载脚本。</p>
<p><strong>Tag</strong>：<br />
代码段，如一段Google Analytics代码，一段百度统计代码，tag归属于当前的Container，tag有多种类型，目前有：Google Analytics，Adwords，Doubleclick等类型，还可以选择：Custom Html Tag来自定义代码，对于Google Analytics统计，最好的方式还是Custom Html Tag，因为现在的Google Analytics类型的tag可定制的地方很少。</p>
<p><strong>Rule：<br />
</strong>加载规则，默认的是，All pages规则，可以自己添加，以和Tag关联，决定在什么条件下，加载指定的tag。<strong><br />
</strong></p>
<p><strong>Macro：<br />
</strong>宏，预定义的名称键值对，默认有：event，referrer，url三个宏，宏可以应用在rule和tag里，rule里作为筛选条件，tag里会被替换成当前值。<strong><br />
</strong></p>
<p><span style="color: #4f81bd;"><strong>Google Analytics统计代码的添加与发布：<br />
</strong></span></p>
<ol>
<li>添加Container的加载脚本到自己站点的全局页脚</li>
<li>添加一个Custom Html Tag，把默认的Google Analytics的统计代码加到HTML文本框内，注意要包含：&lt;script type=&#8221;text/javascript&#8221;&gt; 标签，同时要点击：Add Rule to Fire Tag按钮，添加默认的All pages规则。</li>
<li>
<div>点击在Versions -&gt; Overview页面的右上角，Create Version，选择Save and Preview，这时会进入调试模式，在弹出的对话框里，点击：jiyang.me链接。</div>
<p style="margin-left: 1pt;"><img src="http://jiyang.me/wp-content/uploads/2012/10/101512_0359_GoogleTagMa412.png" alt="" /></p>
<p style="margin-left: 1pt;">在默认的首页下方，会提示当前页面加载的tag脚本与名称。</p>
<p><img src="http://jiyang.me/wp-content/uploads/2012/10/101512_0359_GoogleTagMa512.png" alt="" /></p>
<p>&nbsp;</li>
<li>确认没有问题后，我们回到最新的版本，这儿是版本3，选择右上角的：Publish即可。</li>
</ol>
<p><span style="color: #4f81bd;"><strong>定制与筛选：<br />
</strong></span></p>
<p>假设我们希望在博客的关于页添加一些定制脚本，如：触发个view_about事件，我们可以这样做：</p>
<ol>
<li>添加一个新rule，名称叫：about_page，条件是 url 等于：<a href="http://jiyang.me/?page_id=13">http://jiyang.me/?page_id=13</a></li>
<li>添加一个新tag，名称叫：about_track，触发的规则选：about_page，保存。</li>
<li>创建一个新版本，在调试模式中测试，这时我们在首页会看到：ga_track被触发，about_track没有触发，再进入关于页，这时2个tag都提示被触发了。</li>
</ol>
<p><span style="color: #4f81bd;"><strong>注意点：<br />
</strong></span></p>
<ol>
<li>Tag里是不支持document.write形式的脚本的。</li>
<li>Tag里的脚本是异步加载的，不保证执行顺序，这样如果是Google Analytics的事件代码，要写上：var _gaq = _gaq || [];，保证gaq被初始化。</li>
<li>预览和调试，在发布前，选择预览或调试，可以指定当前站点加载指定版本的代码，相关说明在这儿：<a href="http://support.google.com/tagmanager/bin/answer.py?hl=zh-Hans&amp;answer=2695660">http://support.google.com/tagmanager/bin/answer.py?hl=zh-Hans&amp;answer=2695660</a></li>
</ol>
<p><span style="color: #4f81bd;"><strong>Tag Manager的风险：<br />
</strong></span></p>
<p>凡事都有风险，使用Tag Manager虽然可以方便我们管理脚本，但也增加了所有鸡蛋都放在一个篮子里的风险。</p>
<ol>
<li>有可能影响前端加载速度，以我们的部署的Container为例，实际加载的脚本是：<a href="http://www.googletagmanager.com/gtm.js?id=GTM-K9GV">http://www.googletagmanager.com/gtm.js?id=GTM-K9GV</a>，你可以用一些测速工具看一下加载速度和文件大小是否可以接受，我这边测了一下，电信和网通平均在200毫秒这样，大体可以接受。这儿的gtm.js的浏览器缓存时间大概是15分钟，如果要强制刷新，可以在js的末尾加个附加的参数如：&amp;v=1。</li>
<li>被墙的风险，这个还真是麻烦，解决的办法是：祈祷不会被墙 或者 本地缓存这个gtm.js脚本，在全局的页脚加载本地缓存的js文件。可以参考我的这篇文章：<a href="http://jiyang.me/?p=21">《多站点Google Analytics脚本部署与管理》</a></li>
</ol>
<p><span style="color: #4f81bd;"><strong>小结：<br />
</strong></span></p>
<p>Google Tag Manager引入了更好的统计脚本管理，调试，发布方式，减少了IT部门的压力，让网站分析人员可以专注于业务逻辑，如果你的站点多，脚本复杂，不妨试一试这个产品。如果你有问题或想法，欢迎与我讨论，我的微博：<a href="http://www.weibo.com/jasseyyang">@jasseyyang</a>或在知乎里给我提问：<a href="http://www.zhihu.com/people/jiyang">http://www.zhihu.com/people/jiyang</a>。</p>
<p><span style="color: #4f81bd;"><strong>参考：<br />
</strong></span></p>
<ol>
<li>官方帮助：<a href="http://support.google.com/tagmanager/?hl=zh-Hans">http://support.google.com/tagmanager/?hl=zh-Hans</a></li>
<li>开发者中心：<a href="https://developers.google.com/tag-manager/">https://developers.google.com/tag-manager/</a></li>
<li>Justin Cutroni大神的系列文章：<a href="http://cutroni.com/blog/category/tag-management-2/">http://cutroni.com/blog/category/tag-management-2/</a></li>
<li>Cloga的：Google Tag Manager简介：<a href="http://www.cloga.info/2012/10/10/google-tag-manager%E7%AE%80%E4%BB%8B/">http://www.cloga.info/2012/10/10/google-tag-manager%E7%AE%80%E4%BB%8B/</a></li>
<li>肖庆的：Google Tag Manager，免费可靠的标签管理工具：<a href="http://xiaoq.in/net/google-tag-manager/">http://xiaoq.in/net/google-tag-manager/</a></li>
<li>
<div>Tag里的价值：管理Tag的创业公司Tealium获1050万美元投资：<a href="http://www.36kr.com/p/135233.html">http://www.36kr.com/p/135233.html</a></div>
<p>&nbsp;</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jiyang.me/?feed=rss2&#038;p=441</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GA代码定制：_TrackPageview时指定页面标题</title>
		<link>http://jiyang.me/?p=242&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ga%25e4%25bb%25a3%25e7%25a0%2581%25e5%25ae%259a%25e5%2588%25b6%25ef%25bc%259a_trackpageview%25e6%2597%25b6%25e6%258c%2587%25e5%25ae%259a%25e9%25a1%25b5%25e9%259d%25a2%25e6%25a0%2587%25e9%25a2%2598</link>
		<comments>http://jiyang.me/?p=242#comments</comments>
		<pubDate>Wed, 18 Jul 2012 17:45:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[统计脚本部署与定制]]></category>

		<guid isPermaLink="false">http://jiyang.me/?p=242</guid>
		<description><![CDATA[大家都知道可以用_TrackPageview来提交一个虚拟页面请求，例如有一个商品列表页，当点击购买时，因为是 [...]]]></description>
				<content:encoded><![CDATA[<p>大家都知道可以用_TrackPageview来提交一个虚拟页面请求，例如有一个商品列表页，当点击购买时，因为是Ajax回调，其实并没有产生页面跳转，这时可以在onClick事件里这样写：<br />
_gaq.push([ "_TrackPageview", "/pruduct/10032/buy_succ"]);</p>
<p>但这样有个小问题，提交到GA服务器的页面标题，还是这个列表页的标题，而不是我们希望的：商品名称 &#8211; 购买成功。要想指定虚拟页面的标题，做法很简单，在TrackPageview前，先改变一下页面的标题，提交后，再恢复原有标题：</p>
<p>_gaq.push (<br />
function() {old_title = document.title; document.title = &#8220;商品名称 &#8211; 购买成功&#8221;},<br />
[ "_trackPageview", "/pruduct/10032/buy_succ"],<br />
function() {document.title = old_title}<br />
)</p>
<p>这儿用到了_gaq的push方法的特点，如果是push一个函数，则会按顺序，依次调用指定的函数。</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://jiyang.me/?feed=rss2&#038;p=242</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>多站点Google Analytics脚本部署与管理</title>
		<link>http://jiyang.me/?p=21&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=multi_ga_site_manage</link>
		<comments>http://jiyang.me/?p=21#comments</comments>
		<pubDate>Wed, 20 Jun 2012 10:46:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[统计脚本部署与定制]]></category>
		<category><![CDATA[google analytics]]></category>

		<guid isPermaLink="false">http://jiyang.me/?p=21</guid>
		<description><![CDATA[ga脚本部署有2个地方需要注意： 1 ga.js 的CDN加速 由于国内网络环境的复杂性，像教育网，铁通等环境 [...]]]></description>
				<content:encoded><![CDATA[<p>ga脚本部署有2个地方需要注意：</p>
<p><strong>1 ga.js 的CDN加速</strong></p>
<p>由于国内网络环境的复杂性，像教育网，铁通等环境，加载 <a title="http://www.google-analytics.com/ga.js" href="http://www.google-analytics.com/ga.js" target="_blank">http://www.google-analytics.com/ga.js</a> 会速度慢，影响页面加载和数据的收集，解决的办法是放到自己的CDN加速服务器上，同时用脚本，定期获取最新的ga.js。如果没有自己的CDN服务加速，也可以考虑用又拍的云存储，<a title="www.upyun.com" href="http://www.upyun.com" target="_blank">www.upyun.com</a>，顺便把静态资源放上去。</p>
<p>下载：<a href="http://jiyang.me/wp-content/uploads/2012/06/update_ga.zip">ga.js 的定期更新脚本</a></p>
<p><strong>2 各个站点的统计脚本统一管理</strong></p>
<p>ga的统计脚本需要做定制才好用，如：增加国内的搜索引擎，忽略品牌关键字，指定cookie作用域等，这些脚本如果都直接写在各个站点页面里，需要统一更新时会很麻烦，推荐的做法是，按站点，创建多个独立的脚本，例如：</p>
<p>[ga_jiyang.js]</p>
<p>var _gaq = _gaq || [];<br />
_gaq.push(['_setAccount', 'UA-00000000-1']);</p>
<p>_gaq.push(['_addOrganic', 'sogou', 'query']);<br />
_gaq.push(['_addOrganic', 'soso', 'w']);<br />
_gaq.push(['_addOrganic', 'gougou', 'search']);<br />
_gaq.push(['_addOrganic', 'yodao', 'q']);</p>
<p>_gaq.push(["_addIgnoredOrganic", "品牌关键字1"]);<br />
_gaq.push(["_addIgnoredOrganic", "品牌关键字2"]);</p>
<p>_gaq.push(['_setDomainName', '.jiyang.me']);</p>
<p>(function() {<br />
var ga = document.createElement(&#8216;script&#8217;); ga.type = &#8216;text/javascript&#8217;; ga.async = true;<br />
ga.src = (&#8216;https:&#8217; == document.location.protocol ? &#8216;https://ssl&#8217; : &#8216;http://www&#8217;) + &#8216;.your_cdn_site.com/ga.js&#8217;;<br />
var s = document.getElementsByTagName(&#8216;script&#8217;)[0]; s.parentNode.insertBefore(ga, s);<br />
})();</p>
<p>然后在各个站点加载对应的js脚本即可<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;http://www.your_cdn_site.com/ga/ga_jiyang.js&#8221;&gt;&lt;/script&gt;</p>
<p><strong>参考资料：</strong></p>
<p>ga脚本的官方帮助：<br />
<a title="https://developers.google.com/analytics/devguides/collection/gajs/" href="https://developers.google.com/analytics/devguides/collection/gajs/" target="_blank">https://developers.google.com/analytics/devguides/collection/gajs/</a></p>
<p>ga脚本更新列表：<br />
<a title="https://developers.google.com/analytics/community/gajs_changelog" href="https://developers.google.com/analytics/community/gajs_changelog" target="_blank">https://developers.google.com/analytics/community/gajs_changelog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jiyang.me/?feed=rss2&#038;p=21</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
