web-dev-qa-db-ja.com

ランディングページとコンバージョンに影響するGoogleアナリティクスセッションのタイムアウト

Googleアナリティクスで、User Explorerレポートを使用して発見できた興味深いシナリオに遭遇しました。

このユーザーがページにアクセスしてから1時間そのままにしておくと、Googleアナリティクスセッションがタイムアウトしました。再びアクティブになったときに、ページをリロードしませんでした。代わりに、いくつかのイベントをトリガーし、最終的に目標の変換をトリガーするフォームに記入し、「ありがとう」ページにリダイレクトしました。

発生したのは、Thank Youページがランディングページと見なされ、目標の完了場所が「(entrance)」に設定されていることです。

ユーザーエクスプローラーレポートのスクリーンショットを次に示します。私はそれを上から下に時系列順に整理しました。

GA User Explorer Report

「ありがとう」ページはセッションタイムアウト後の最初のページビューであるため、すべてに関連付けられています。異なるアトリビューションモデリングでこれを変更できると確信していますが、コードでできる代替アイデアを検討したいと思います。window.locationをfieldsObjectのga('send', 'event'...関数?

他に考えはありますか?

2
GreatBlakes

これを支援するために思いついたのは、イベントをリッスンし、ペイロードにページの場所とタイトルが含まれていることを確認するカスタムのGoogle Analyticsタスクです。

//Modify the payload if needed before sending data to Google Analytics
ga(function(tracker){
    var originalSendHitTask = tracker.get('sendHitTask'); //Grab a reference to the default sendHitTask function.

    tracker.set('sendHitTask', function(model){
        //Always make sure events have the page location and title associated with them (in case of session timout)
        if ( model.get('hitType') === 'event' ){
            if ( !model.get('location') ){
                tracker.send('pageview'); //Send a new pageview if the event does not have contextual data.
            }
        }

        originalSendHitTask(model); //Send the payload to Google Analytics
    });
});

これは、ページビューのようにすべてのフィールド値を更新するわけではないので(ニース)、locationが空であるかどうかを確認し、そうであれば最初に新しいページビューを送信し、次にイベントを送信します...

1
GreatBlakes