2

私たちは、Sencha Touch 2(Ext JS、JavaScript)を使用して作成されたHTML5サイトである、まったく新しいモバイルバージョンのサイトを開発しています。

メインサイトではGoogleAnalyticsを使用しており、モバイルサイトでもGAを使用したいと考えています。ただし、望ましいユースケースは少し特殊です。 モバイルサイトの記事へのヒットを、メインサイトの対応する記事へのヒットとして追跡する必要があります。 この背後にある理由は、統計を集約し、データを個別に追跡したくないという願望です。

ドメインとURL構造は、2つのサイトで異なりますが、サイトの階層は多少似ています(どちらも、Sharepointバックエンドからコンテンツを取得します)。ここに課題があります。'setDomainName'のようなものを使用してのみドメインを変更することはできません。

モバイル版のすべてのページで、メインサイトの元のページ/記事への完全なURLを利用できます。私たちがやりたいのは、実際に表示されているURLではなく、そのURLへのヒットとしてビューを追跡するようにGoogleに指示することです。

'trackPageView'に関するいくつかのスレッド(ここではf ex)を見てきましたが、私たちのニーズには十分かもしれませんが、完全にはわかりません。少し単純すぎるように聞こえますが、ここで明白な解決策が見当たらない可能性もあります。このメソッドに目的のヒットURLを提供できますか?それだけですか?次に、このURLで設定された変数をチェックするスクリプトをヘッダーに含め、それが存在する場合は、通常のヒットを追跡するだけでなく、パラメーターとして「trackPageView」を呼び出しますか?このアプローチの構文に関するヘルプは大歓迎です。

すべてのヘルプと提案はここで高く評価されています!私はこの特別なケースに関する情報をあまり助けずにGAドキュメントを精査しました。

4

3 に答える 3

1

はい、トラックページビューイベントを使用して、対応するURLパラメータを渡すだけです。senchaでは、すべてのビューが同じHTMLページに存在するため、これをプログラムで呼び出す必要があります。

同じIDでライブサイトで使用しているものと同じトラッキングコードを含めます...これは期待どおりに機能するはずです...非常に良い質問です...お役に立てば幸いです...

于 2012-12-22T05:13:46.557 に答える
1

これがGATrackingの詳細で、ST2+用にシンプルになっています。初期化する方法、基本的なナビゲーショントラッキングを設定する方法、およびカスタム変数とイベントトラッキングを含むいくつかの代替方法を含めました。

/*
Standard method to init GA tracking.
These can be fired from launch.
*/

initialiseGoogleAnalytics : function() {
    //Add Google Analytics Key
    window._gaq = window._gaq || [];
    window._gaq.push(['_setAccount', MyApp.config.googleAnalytics.code]);
    window._gaq.push(['_setDomainName', MyApp.config.googleAnalytics.domain]);
    window._gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
},

/* 
    This method can be set to a globally accessable reference.
    For instance:
        MyApp.Util = {}; // reference for common utility functions
        MyApp.Util.gaTrackEvent = function(data) {};

    Thus allowing MyApp.Util.gaTrackEvent(data) from anywhere in app.

    Alternatively, add as function to Application for 
        this.getApplication().gaTrackEvent(data);
*/
gaTrackEvent : function(data) {
    //Push data to Google Analytics

    // optional prefix for mobile devices - unnecessary for your interest
    var prefix = 'mobile/';

    // don't track homepage/default hits
    if (data == 'home') {
        //Ignore Home
        return;
    }

    // basic tracking
    _gaq.push(['_trackPageview', prefix + data]);

    // OPTIONAL ALTERNATIVES FOR DETAILED TRACKING
    // detailed tracking - condensed
    _gaq.push(['_setCustomVar',
        1,                      // custom variable slot
        'customEventName',      // custom variable name
        'value1|value2|value3', // multiple values using 1 slot
        2                       // sets scope to session-level
    ]);
    _gaq.push(['_trackEvent',
        'ParentEventName',
        'SomeValue'
    ]);

    // detailed tracking - each variable using own slot
    _gaq.push(['_setCustomVar',
        1,
        'stage1',
        'value1',
        2
    ]);
    _gaq.push(['_setCustomVar',
        2,
        'stage2',
        'value2',
        2
    ]);
    _gaq.push(['_setCustomVar',
        3,
        'stage3',
        'value3',
        2
    ]);
    _gaq.push(['_trackEvent',
        'ParentEventName',
        'SomeValue'
    ]);

}


/*
Set up a controller to handle GA tracking.
This way you can keep the unique events you wish to track central,
while also handling default tracking and SEO.

For example, a controller for Registration might want tracking on success.
this.getRegistration().fireEvent('registrationsuccess');
*/
    config: {
        control: {
                "navigationview": {
                    activeitemchange: 'generalSEOhandler'
                },
                "#registration": {
                    registrationsuccess: 'onRegistrationSuccess'
                },
                ...
        },
    },

    generalSEOhandler: function(container, value, oldValue, eOpts) {
        if (value === 0) {
            return false;
        }

        // ignoreDefaultSeo - boolean custom config that can be applied to views.
        var ignoreDefaultSeo = value.getInitialConfig('ignoreDefaultSeo');

        if (Ext.isDefined(ignoreDefaultSeo) && ignoreDefaultSeo == 1) {
            // optional handler for special cases...
        } else {
            // Use default
            var itemId = value.getItemId();
            itemId = itemId.replace(/^ext-/,'');    // Remove the prefix ext-
            itemId = itemId.replace(/-[0-9]?$/,''); // Remove the suffix -1,-2...

            // Alternatively use xtype of the view (my preference)
            // This will require the xtypes of your views to match the main site pages.
            var itemId = value.config.xtype;

            this.trackEvent(itemId);
            //console.log('USE DEFAULT', value.getId(), value.getItemId(), value);
        }
    },

    onRegistrationSuccess: function(eventOptions) {
        var app = this.getApplication(),
            trackUrl;

        trackUrl = 'new-member';

        if (Ext.isDefined(app.accountReactivated) && app.accountReactivated == 1) {
            trackUrl = 'reactivated-member';
        }

        if (Ext.isDefined(app.registeredUsingFacebook) && app.registeredUsingFacebook == 1) {
            trackUrl += '/facebook';
        } else {
            trackUrl += '/non-facebook';
        }

        // console.log('onRegistrationSuccess', trackUrl);
        this.trackEvent(trackUrl);
    },

    trackEvent: function(data) {
        // if using MyApp.Util.gaTrackEvent() technique
        MyApp.Util.gaTrackEvent(data);

        // if gaTrackEvent() an application method
        this.getApplication().gaTrackEvent(data);
    }
}
于 2014-03-01T06:53:39.083 に答える
0

この記事がGoogleAnalyticsとSenchaTouchについて話しているのを見つけました

http://wtcindia.wordpress.com/2013/03/21/using-google-analytics-in-sencha-touch-based-mobile-website/

于 2013-03-22T06:30:21.837 に答える