CDNの背後にあるサイト上の各URLの一意のページビューを追跡する推奨方法

asp.net-mvc c# html
CDNの背後にあるサイト上の各URLの一意のページビューを追跡する推奨方法

CDN(Azure CDNとCloudFlareのコンボ)の背後にあるASP.NET MVC 3サイトがあります。 各ページビューは、SQLサーバーからデータを取得します(もちろんCDNによってキャッシュされている場合を除く)。

サイトの各ページ(〜1万ページ)に「Nページビュー」を表示できるようにしたいので、訪問者がページを表示したときに、そのページの人気度(または不人気度)がわかります。 Stackoverflowは、各質問ページでこれを行います。 ユーザーが誰であるかは気にしません。ページごとの総計だけです。

私はこれを行うための最良の方法は何だろうと思っています。 私はクライアントコードを使用することを考えましたが、これは悪意のあるユーザーがページビュー数を増やすために簡単に台無しにします。 したがって、これをサーバーに実装するのが最善の方法のようです。 Stackoverflowでコードサンプルと推奨されるアプローチを検索するために最善を尽くしましたが、私が求めているものに当てはまるものを見つけることができませんでした。

  0  0


ベストアンサー

これを実装する場合、おそらく既存の分析パッケージの上に立つだけです。 私はGoogleアナリティクスの使用が好きで、ページヒットカウントを含むあらゆる種類の素晴らしいデータを追跡します。

非同期javascriptの小さな部分では、APIを使用して合計ページビューを取得します。

私はそれが怠zyであることを知っていますが、彼らのコードを使用することで私が台無しにできるものははるかに少ないです:-)

0


これを行うために私が書いたサンプルコードを次に示します。+ https://github.com/TomGullen/C-Unique-Pageview-Tracker/blob/master/Tracker.cs

利点

  • データベースに依存しない

  • カスタマイズ可能なメモリ使用量

デメリット

  • キャッシュの有効期限+最大キューに応じて一意のビューを二重にカウントします
    size

使用例

var handler = new UniquePageviewHandler("BlogPost_" + blogPostID);

if(handler.ProcessPageView(visitorIPAddress)){
    // This is a new page view, so process accordingly
    // EG: Increment `unique page views` count in database by 1
}

プロジェクトで動作させるには、リンク先のコードを少し変更する必要がありますが、問題なく動作するはずです。

0


タイトルとURLをコピーしました