0

私のアプリには、ユーザーが操作できるさまざまなページがあります。私が必要とするのは次のとおりです。追跡したい:

  1. 各ページには何人のユーザーがいますか?
  2. 各ページのユニーク ユーザー数は?

自分でデータを分析したいので、Google アナリティクスを使わずにデータを追跡したい。

4

1 に答える 1

2

Grails フィルターを使用します。

class TrackingFilters {
    def trackingService

    def filters = {
        access(controller: '*', action: '*') {
            before = {
                if (!session.user) {
                    trackingService.trackIpAddress(getIpAddress())
                } else {
                    trackingService.trackUser(session.user)
                }
            }
        }
    }
}

UPDATE Grails フィルターは、リクエストの前後に Grails を実行できるコードの断片です。修飾子を使用して、影響を受けるコントローラーとアクションを指定します。

コマンド grails create-filters example.Tracking を使用してフィルターを作成します。

あなたが選ぶ名前はあなただけのものです。

次に、生成されたスケルトン クラスでフィルターを定義できます (すべてのコントローラーとアクションに適用する「アクセス」フィルターを作成しました)。

フィルター内でリクエストとセッションにアクセスできるため、このコンテキストを使用してユーザーを追跡できるはずです。次に例を示します。

request.getRemoteAddr()
request.getHeader("X-Forwarded-For")
request.getHeader("Client-IP")

完全に衒学的に言うと、trackingService はあなたによって実装された架空のサービスです。

于 2013-06-03T08:09:56.127 に答える