3

我以使用 FileLibrary 的方式实现。

然后我有以下代码:

updateRoot:一个HtmlRoot

super updateRoot: anHtmlRoot.
anHtmlRoot title: self title.
anHtmlRoot link beShortcutIcon; url: MyfileLibrary  / #myGraphicPng.
anHtmlRoot javascript url: (MyFileLibrary urlOf: #analyticsJs)

谷歌检查页面没问题,但我从来没有得到实数,一直处于“等待数据”的状态。

任何提示或示例将不胜感激。

4

2 回答 2

3

Google Analytics 与 Seaside 配合得很好。我多年来一直在许多(主要是基于码头的)海滨网站上使用它。

  1. 确保其中#analyticsJs包含正确的 Google Analytics(分析)跟踪代码。将代码内联到脚本标记中效率更高(并且由 Google 建议),但我认为它也可以使用 URL。

  2. 确保您的应用程序在完全限定的域名 (FQDN) 上运行。我假设跟踪器无法在 上运行localhost,请参阅Google Analytics 帮助以获取更多信息。

于 2011-01-18T03:36:34.783 回答
3

这是一个稍微复杂的(逐字)示例,用于支持多个跟踪器(例如,将跟踪数据 CC 到客户帐户)、自定义变量和 URL 生成:

更新根:根

super updateRoot: root.
root javascript with: (String streamContents: [:ws | self renderAnalyticsOn: ws]).

renderAnalyticsOn:流

| options |
options := OrderedCollection new.
self trackingConfiguration keysAndValuesDo: 
        [:tracker :accountid |
        | isForClient |
        isForClient := tracker notEmpty.
        options add: (Array with: tracker , '_setAccount' with: accountid).
        isForClient
            ifTrue: 
                [options
                    add: (Array with: tracker , '_setDomainName' with: 'none');
                    add: (Array with: tracker , '_setAllowLinker' with: true);
                    add: (Array with: tracker , '_setAllowHash' with: false)].
        self trackingCustomVariables do: 
                [:array |
                array at: 1 put: tracker , array first.
                options add: array].
        options add: (Array with: tracker , '_trackPageview' with: '/' , self trackingURL)].
stream
    nextPutAll: 'var _gaq = _gaq || [];';
    nextPutAll: '_gaq.push('.
options do: [:ea | stream json: ea] separatedBy: [stream nextPut: $,].
stream nextPutAll: ');'.
stream
    nextPutAll: '(function() {';
    nextPutAll: 'var ga = document.createElement(''script''); ga.type = ''text/javascript''; ga.async = true;';
    nextPutAll: 'ga.src = (''https:'' == document.location.protocol ? ''https://ssl'' : ''http://www'') + ''.google-analytics.com/ga.js'';';
    nextPutAll: 'var s = document.getElementsByTagName(''script'')[0]; s.parentNode.insertBefore(ga, s);';
    nextPutAll: '})();'.

跟踪配置

| trackers |
trackers := (Dictionary new)
            at: '' put: 'UA-XXXX-YY';
            yourself.
self session googleAnalytics ifNotNil: [:v | trackers at: 'b.' put: v].
^trackers.

跟踪自定义变量

^Array with: (Array
                with: '_setCustomVar'
                with: 1
                with: 'Application'
                with: self class applicationName
                with: 2).

跟踪网址

^String streamContents: [:ws | crumbs do: [:ea | ws nextPutAll: ea title asAnalyticsURL] separatedBy: [ws nextPut: $/]].

asAnalyticsURL

^self asLowercase copyReplace: Character space with: $_
于 2011-01-18T09:54:24.620 回答