1

私は人々に私のサイトにサインアップして、彼らが彼らのサイトに置かなければならないユニークなjavascriptスニペットを彼らに与えて欲しいです。2つの質問があります。

1)以下のコードを使用して、Webサイトの訪問時間を追跡するとします。以下のトラックは、ユーザーがサイトにアクセスしてサイトを離れたときを追跡しますが、そのサイトのドメインの別のページにアクセスするだけでなく、実際にサイトを離れることを確認するにはどうすればよいですか(ユーザーがまだサイトにいることを意味します)。クッキー?

var timeLog = {
        start: null,
        end: null,
        init: function(){
            this.start = new Date().getTime();
        },
        sendResults: function(){
            this.end = new Date().getTime();
            var jData = { "client": "some-access-string", "start": this.start, "end": this.end };

            var client = new XMLHttpRequest();
            client.open("POST", "http://yoursite.com/process_info.php");
            client.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
            client.send(JSON.stringify(jData));
        }
    };

    window.onbeforeunload = function() {
        timeLog.sendResults();
    };

    timeLog.init();

2)クロスサイトスクリプティングを行っていないので、javascriptスニペットがprocess_info.phpスクリプトを呼び出すかどうか疑問に思っています。Cookieを設定して、$ _SERVER['HTTP_USER_AGENT']などの$_SERVER変数を取得することもできますか。実際のphpスクリプトは別のドメインにあるので、それは機能しますか?

4

1 に答える 1

1

このコードはクロスブラウザではありません。ImageURL自体にすべての追跡データをダンプするだけで、追跡を実行するために使用することをお勧めします。

<noscript>利点は、多くの変更を加えることなく、非表示のトラッキングピクセルを含むスニペットを提供できることです。スクリプト自体の配布と初期化は、本文にタグを挿入して実行するこのような小さなスニペットを使用して実行できます。<script>

また、使用しないでください.onbeforeunload()、そのようなものは厄介です。リクエスト間の時間などのセッションプロパティを使用して、サイトの出発を判断することをお勧めします。X分以内に別のリクエストを受け取らなかった場合は、ユーザーが退出したと想定してください。

CookieドメインがスクリプトのURLに対応している(つまり、サードパーティのCookieがない)限り、PHPスクリプトからのCookieの設定は期待どおりに機能するはずです。

于 2012-12-18T07:59:01.310 に答える