13

Python(Flask )でRESTfulAPIを実行しています。

追跡できるようにしたい:

  • どのリクエストが行われたか
  • それらの要求はいつ発生しましたか
  • 応答を送信するのにどのくらい時間がかかりましたか

素晴らしいダッシュボードと拡張機能があるので、これにはGoogleAnalyticsを使用したいと思います。

私の質問

GoogleAnalyticsをRESTAPIに実装するにはどうすればよいですか?
または、実装できる別のツール/ライブラリを知っている人はいますか?

これは私が現時点で見つけたものです:

  • MongoDBを使用する追跡アプリ
  • GoogleデータAPI-しかし、これはGAデータを読み取るためのものであり、APIを追跡するためのものではありませんか?
4

2 に答える 2

10

サーバー側のデータをGoogleAnalyticsに送信する方法は実際には2つあります。標準的な方法はGIFImageRequest APIです。これは、ga.jsがクライアント側で使用するのと同じAPIです。GoogleはMeasurementProtocolと呼ばれる新しいRESTAPIの開発を開始しましたが、これは開発者向けのプレビューのみです。

サーバーサイドGA

サーバー側のデータをGAに送信しようとする場合、解決すべき問題がいくつかあります。

上で指摘した@mehaaseのように、gif APIはリクエストからIPアドレスを取得するため、サーバー側のリクエストはすべて、サーバーの場所からのユーザーとして表示されます。測定プロトコルでは、リクエストのIPを変更することもできません。この回答では、公開されているgifAPIを想定しています。

もう1つの問題は、gifエンドポイントにクライアント側のCookieが必要なことです。リクエストごとにこのCookieを偽造することができますが、これにより、各イベントが新しい訪問者のように見えます。サーバー側のAPIとウェブサイトを別々のGoogleAnalyticsプロファイルに保持している限り、これで問題ありません。

また、イベントを送信してからGoogleがイベントを表示するのに最大1時間かかる場合があることにも注意してください。これにより、デバッグが少し面倒になる可能性があるため、しばらくお待ちください。

GA Cookieの各変数の意味の内訳と、サーバー側のデータをGAに送信する優れたnode.jsの例を次に示します。

その他のイベント追跡オプション

GAはウェブサイトの指標を追跡するのに優れていますが、サーバー側のイベントを追跡するために構築されたものではありません。イベントトラッキングと呼ばれる分析のカテゴリは、RESTfulAPI使用状況トラッキングに最適なアプリケーションです。

APIは一般的に次のようになります。

analytics.track('API Response', {
    method  : 'POST',
    endpoint: '/comments'
    duration: 124
    status  : 500
});

また、各イベントとイベントプロパティの頻度と分布に関するレポートを表示できます。次のような質問に答えることができます。今日、API呼び出しがいくつ発生しましたか。200代は何人でしたか?200msを超える応答があったのはいくつですか?等

これを行うのに役立つイベント追跡ツールを次に示します。

  1. ミックスパネル
  2. KissMetrics
  3. Keen.IO

私は、クライアント側、サーバー側、およびモバイル分析用のシンプルなAPIを提供する会社であるSegment.ioの共同創設者です。python、php、ruby、node、java、.net、javascript、iOSからデータを送信できます。データは、Google Analytics、Mixpanel、KissMetrics、Keen.IO、またはその他のサポートされているサービスに転送されます。あなたは彼らのAPIを学ぶ必要があります。

そして最後に、イベント追跡が役立つ理由を説明する分析アカデミーの記事があります。

于 2013-03-21T00:45:09.443 に答える
1

私はこれが非常に古い投稿であることを知っています。私はPythonでグーグルアナリティクスのサポートに出くわしました

https://developers.google.com/api-client-library/python/apis/analytics/v3

これも文書化するのに適切な場所だと思いました(y)

于 2017-08-12T19:38:49.390 に答える