Fra*_*oni 6 javascript analytics google-analytics samsung-smart-tv
我正在尝试将Google Analytics集成到我的智能电视应用程序中.
它是一个基于Javascript的应用程序,我已经尝试了SamsungDForum上提供的所有解决方案,但没有人工作.
在主index.html文件的部分中,我加载了Google Analytics:
<script type='text/javascript' async='true' src='https://ssl.google-analytics.com/ga.js'></script>
Run Code Online (Sandbox Code Playgroud)
然后,我正在跟踪页面入口:
<script type='text/javascript'>
var _gaq = _gaq || [];
_gaq.push([ '_setAccount', 'UA-XXXXXXXX-X' ]);
_gaq.push([ '_setCustomVar', 1, 'Device Information', 'Samsung Smart TV' ]);
_gaq.push([ '_trackPageview' ]);
_gaq.push([ '_trackEvent', "Application", "Start" ]);
</script>
Run Code Online (Sandbox Code Playgroud)
很遗憾,我无法在我的Google Analytics帐户中看到该页面.真实账户ID不是UA-XXXXXXXX-X,我在实际代码中使用了正确的ID.
我做错了什么?
因此,您需要一个iframe来将带有GA代码段的文件放入其中.该文件必须位于远程服务器上,因为Samsung Smart TV应用程序适用于localhost,GA忽略来自本地的调用.
<iframe name='ga' src="http://example.com/ga.html" width="0" height="0"/>
Run Code Online (Sandbox Code Playgroud)
如果您不希望GA在iframe加载时计算trackPage,则可以从GA片段中删除该行.
_gaq.push(['_trackPageview']);
Run Code Online (Sandbox Code Playgroud)
然后在主脚本中添加此功能:
var trackPage = function(url) {
if (window.ga && window.ga._gaq)
window.ga._gaq.push(['_trackPageview', '/samsung' + url.replace(/ /g, "_")]);
};
Run Code Online (Sandbox Code Playgroud)
因此trackPage("/sports/football/barcelona chelsea")
,在应用程序中的某个位置调用将生成具有精确URL的GA跟踪页面:
/samsung/sports/football/barcelona_chelsea
Run Code Online (Sandbox Code Playgroud)
它非常高效 - 你可以玩GA Real时间,你可以看到它有多好用.由于GA工作异步,iframe永远不会重新加载.
据我所知,您需要使用 Iframe 链接到它,否则它不会触发事件。
<iframe src='http://yourwebserver.com/ga-code-application-start.html' width='0' height='0'/></iframe>
Run Code Online (Sandbox Code Playgroud)