メインコンテンツへスキップ
Kameleoon Google Analytics 4イベントストリーミング統合により、訪問者がKameleoon実験に露出するたびに、Google Analytics 4アカウントへ自動的にイベントを送信できます。この機能により、Google Analytics 4での分析が強化され、実験露出に関する洞察を提供し、ユーザーの行動とエンゲージメントの理解を深めます。
この統合はKameleoonのイベントディスパッチャーを使用して、Google Analytics 4 HTTP API/mp/collect エンドポイントを通じて、サーバーサイドのイベントをバッチ形式でGoogle Analytics 4アカウントへ送信します。

主なメリット

  • 精密な行動洞察: この統合は、SDKベースのプロジェクトでWeb実験や機能フラグに露出した訪問者の特定のイベントを、サードパーティツールに送信します。この詳細な追跡により、異なるバリエーションがユーザー行動にどのように影響するかを明確に把握できます。例えば、どのバリエーションがより多くのクリック、コンバージョン、その他の望ましい結果をもたらすかを観察し、最も効果的なアプローチを判断できます。
  • リアルタイムの意思決定: この統合はリアルタイムでデータを提供します。最新の洞察を活用して、バリエーションが期待通りに機能していない場合、戦略を迅速に調整したり、成功しているバリエーションを活かすためにリソースを配分したりできます。
  • 簡単なセットアップ: Kameleoonアプリ内でサードパーティ統合を有効化できます。カスタムコードやSDK変更は不要です。

考慮事項

イベント配信のタイミング: Kameleoonサーバーは、最小30分の遅延でGoogle Analytics 4にイベントを送信します。

前提条件

この統合を構成するには、以下の情報が必要です:
  • Kameleoon SDK: サーバーサイドプロジェクトにSDKがインストールされている必要があります。
  • API secret: Google Analyticsで生成されたAPIシークレット(こちらに文書化されています)。
  • Measurement ID: Web SDKの場合、データストリームの識別子(こちらに文書化されています)。
  • Firebase app ID: モバイルSDKの場合、Firebaseアプリの識別子(こちらに文書化されています)。

適切なGA4識別子の選択

GA4レポートで適切なユーザー属性を確保するには、アプリの種類に応じて正しいカスタムデータを作成する必要があります:
  • Webベースのプロジェクト(gtag.js を使用するWebサイト)の場合: ga4_client_id という名前のカスタムデータを作成し、GA4から client_id を取得します(通常は _ga cookieに保存されています)。
  • Firebaseベースのモバイルアプリの場合: ga4_app_instance_id という名前のカスタムデータを作成し、Firebase SDKから app_instance_id を取得します。
この区別は、Web実験や機能フラグ実験のいずれであっても、Kameleoonのすべての種類のGA4統合に適用されます。

セットアップ

この統合はWeb実験および機能実験で使用できます。

Web実験の場合

Integrationページ から統合を有効化します。

GA4 client IDを識別する

訪問のたびにインスタンス識別子をKameleoonバックエンドに送信する必要があります。正確な識別子はGA4のセットアップによって異なります。gtag.js メソッドでGA4を使用している場合は、client_id を送信します。以下は、当社のActivation APIを使用した gtat.js 実装の例です。

カスタムデータをセットアップする

  • Name: ga4_client_id
  • プロジェクトを Select します。
  • Retrieval method: Kameleoon Activation API.
  • Type: Single
  • Format: String
  • Scope: Visit

Global scriptにコードを追加する

if(!Kameleoon.API.CurrentVisit.customData["ga4_client_id"]){

// First, create a ga4ClientId variable and obtain your GA4 client ID.
let gaClientId = null;

const getClientId = () =>{
    gtag('get', 'G-XXXXXXXXXX', 'client_id', function(clientId) {
        gaClientId = clientId;
    });
    return gaClientId !== null
}

Kameleoon.API.Core.runWhenConditionTrue(
    () => getClientId(),
    () =>{
        // Then set your Kameleoon "ga_client_id" custom data to this value using Kameleoon's Activation API
        Kameleoon.API.Data.setCustomData("ga4_client_id", gaClientId);
    },
    200
)

}

キャンペーンで統合を有効化する

Web実験を最終化する際に統合を追加します。

機能実験の場合

機能フラグ環境の Integrations セクションで統合をセットアップします。アクティブにしたい各環境で有効化します。

モバイルの場合

FirebaseアプリでGA4 analyticsを使用している場合は、Firebase app instance ID を送信する必要があります。 以下はKameleoon Android SDKを使用した例です:
  1. GA4 Firebase app instance IDを識別する
  2. カスタムデータをセットアップする
    • Name: ga_app_instance_id
    • プロジェクトを Select します。
    • Retrieval method: Kameleoon SDK method.
    • Type: Single
    • Format: String
    • Scope: Visit

Kameleoon Android SDKを使用したJavaの例

まず、Firebase app instance IDを取得して変数に保存します。 次に、Kameleoon SDKを使用して ga4_app_instance_id カスタムデータをこの値に設定します。Kameleoonインターフェースで確認できる ga4_app_instance_id カスタムデータの正しいインデックスを使用してください。 この例では、インデックスは 12 です: kameleoonClient.addData(new CustomData(12, appInstanceId)); 統合がアクティブになり、実験が公開されると、訪問者が露出するたびにKameleoonはGoogle Analytics 4に実験イベントを送信し始めます。これらのイベントは、Googleの推奨ベストプラクティスに従って構築されます。これらのイベントには次のような主要な詳細が含まれます:
  • SDKセットアップ専用のFirebaseアプリインスタンスの固有識別子(app_instance_id と呼ばれます)。
  • Webセットアップ専用のクライアントの固有識別子(client_id と呼ばれます)。
  • 露出時間
  • KAM-XXXX-YYYY 形式に従う実験とバリエーションの固有識別子(XXXX はKameleoon実験ID、YYYY はバリエーションIDです)。

イベントペイロードの例

Kameleoonは以下の形式でイベントをGoogle Analytics 4に送信します:
{
  "events": [
    {
      "name": "experience_impression",
      "exp_variant_string": "KAM-1234-5567",
      "timestamp_micros": 1718201234000
    },
    {
      "name": "experience_impression",
      "exp_variant_string": "KAM-5678-6978",
      "timestamp_micros": 1718201267000
    }
  ],
  "app_instance_id": "example-instance-id"
}
ユーザーの識別
Kameleoonはデフォルトでは、イベントペイロードにユーザー識別子(user_idclient_id など)を含めません。識別は、環境に応じて以下のフィールドで処理されます:
  • モバイル: app_instance_id(GA4モバイルアプリの標準)
  • Web: client_id(Webクライアントの app_instance_id 相当)
WebバックエンドまたはサーバーサイドのセットアップでKameleoonを使用している場合は、GA4の client_id をカスタムデータフィールド(例: ga4_client_id)として定義することで送信できます。 このフィールドは、Activation APIに限らず、利用可能な任意の取得方法で設定できます。Kameleoonセッションごとに少なくとも1回定義されている必要があります。
イベントの強化
Kameleoonは、サーバー間イベントペイロードにビジネス固有のカスタムデータを含めません。 client_id やユーザー属性などの追加データでペイロードを強化する必要があり、Kameleoonアカウントをお持ちの場合は、SDK構成のカスタムデータフィールドを通じて追加するか、機能リクエストを送信できます。