Google アナリティクスとの統合

Google アナリティクス プラットフォームでは、多様なデバイスと環境で、企業とユーザーのやり取りを測定できます。Google アナリティクスには、こうしたユーザーとのやり取りを収集、保存、処理、報告するためのリソースが備わっています。

アナリティクス データは、クライアント側とサーバー側で収集(コレクション)できます。

クライアント側アナリティクス コレクション

Google アナリティクスの API と SDK を使用して、ユーザーが企業のコンテンツやマーケティング活動とどのようにやり取りしているかを測定します。Google アナリティクスのユーザー インターフェースでユーザーとのやり取りのデータを表示できます。また、Reporting API を使用してデータを取得できます。クライアント側アナリティクス コレクションの詳細については、クライアントのタイプに応じて次のリンクを選択してください。

  • ウェブ トラッキング(analytics.js) - ウェブサイトやウェブ アプリケーションとユーザーのやり取りを測定します。
  • Android - Android アプリケーションとユーザーのやり取りを測定します。
  • iOS - iOS アプリケーションとユーザーのやり取りを測定します。
  • Measurement Protocol - この低レベル プロトコルを使用して、任意の環境内のユーザーのやり取りを測定します。

サーバー側アナリティクス コレクション

App Engine にはアプリケーション内のイベントをロギングするメカニズムが用意されていますが、Google アナリティクスを使用して Google アナリティクス内で特定のサーバー側イベントをトラッキングすると、次のことが可能になります。

  • 履歴データの分析 - App Engine では、ログファイルの最大日数やサイズを構成できます。この上限を超えると、それらのログファイルにアクセスできなくなります。Google アナリティクスでイベントをトラッキングすることで、過去のイベントを表示できる期間が大幅に長くなります。
  • 重要なイベントのトラッキング - アプリケーションのさまざまなコンポーネントがデータをログファイルに書き込むことによって、ログファイルが冗長になる場合があります。イベント トラッキングを使用することで、重要なイベントを正確に特定し、いくつかのメタデータとともにそれらをトラッキングできます。
  • ユーザー インターフェースの活用 - Google アナリティクスにある高機能のユーザー インターフェースを活用して、これらのサーバー側イベントの可視化、レポート、エクスポートを行います。

サーバー側アナリティクス コレクションを有効にするために、HTTP クライアントを使用して、Google アナリティクスの Measurement Protocol で HTTP リクエストを生成できます。詳細については、Google アナリティクス デベロッパー ガイドのイベント トラッキングをご覧ください。

サンプル アプリケーション

次のサンプル アプリケーションは、App Engine アプリケーション内のイベントをトラッキングする方法を示しています。このアプリケーションは HTTP リクエストを生成し、イベントに関するデータを Google アナリティクスに送信します。

App Engine で Google アナリティクスの Measurement Protocol を使用する前に、次の手順を行います。

  1. ユニバーサル アナリティクス プロパティを作成し、トラッキング ID を取得します

  2. app.yaml 内にこのトラッキング ID の環境変数を含めます。たとえば、このサンプル アプリケーションでは次のとおりです。

    runtime: ruby
    env: flex
    entrypoint: bundle exec ruby app.rb
    
    env_variables:
      GA_TRACKING_ID: <your-tracking-id>
  3. サンプルアプリをローカルで実行する前に、アプリで必要とされる環境変数を次のように設定します。

    export GA_TRACKING_ID=YOUR_TRACKING_ID
    bundle install
    
  4. コマンドラインを使用して、サンプルコードをローカルで実行します。例:

    bundle exec ruby app.rb
    

  5. 次のコードを App Engine アプリケーションに組み込んで、イベント トラッキング データを Google アナリティクスに送信します。

    require "sinatra"
    require "net/http"
    
    # The following environment variable is set by app.yaml when running on GAE,
    # but will need to be manually set when running locally. See README.md.
    GA_TRACKING_ID = ENV["GA_TRACKING_ID"]
    
    def track_event category, action, label, value
      # Anonymous Client ID.
      # Ideally, this should be a UUID that is associated
      # with particular user, device, or browser instance.
      client_id = "555"
    
      Net::HTTP.post_form(
        URI("http://www.google-analytics.com/collect"),
        v:   "1",             # API Version
        tid: GA_TRACKING_ID,  # Tracking ID / Property ID
        cid: client_id,       # Client ID
        t:   "event",         # Event hit type
        ec:  category,        # Event category
        ea:  action,          # Event action
        el:  label,           # Event label
        ev:  value            # Event value
      )
    end
    
    get "/" do
      track_event "Example category", "Example action", "Example label", "123"
    
      "Event tracked."
    end

Google アナリティクス管理コンソールで、スパイダーや bot からのトラフィックを除外している場合や、このトラフィックを自動的にフィルタリングする Google アナリティクス 4 を使用している場合、App Engine クライアントからのアナリティクスの結果が表示されないことがあります。このシナリオでは、デフォルトの App Engine ユーザー エージェントが除外されます。App Engine の結果を確認するには、トラッキング データに ua パラメータを含めて、カスタム値を設定します。