メインコンテンツへスキップ
Kameleoon SDK をウェブサイト、モバイルアプリ、バックエンドサーバー間で連携させ、統一された訪問者 ID を維持します。この連携により、すべてのプラットフォームで一貫した実験処理とデータフローが保証されます。 プロジェクトが複数の Kameleoon SDK を実装する場合、本ガイドを使用してください。
  • Web 環境向けの JavaScript SDK または engine.js
  • Android または iOS アプリ向けのモバイル SDK。
  • バックエンド統合と意思決定ロジック向けのサーバーサイド SDK。

アーキテクチャ概要

典型的なマルチ環境セットアップは、次のコンポーネントで構成されます。
  • ウェブサイト: JavaScript SDK または engine.js を使用して、クライアントサイドの実験とパーソナライゼーションキャンペーンを実行します。
  • モバイルアプリ: モバイル SDK を使用して、バリエーションを表示し、コンバージョンをトラッキングします。
  • バックエンドサーバー: サーバーサイド SDK を使用して、バリエーションの集中決定または訪問者データの同期を行います。

データと訪問者コードのフロー

  • 訪問者コードは、すべての環境間でユーザーを一貫して識別します。
  • サーバーサイド SDK は、必要に応じてバリエーション決定を調整します。
  • 各 SDK は、分析およびトラッキングデータを Kameleoon プラットフォームに直接送信します。

訪問者コードとクロスデバイス管理

訪問者コードの生成と共有

各ユニークな訪問者は、すべてのプラットフォーム間で一貫した1つの訪問者コードを持つ必要があります。このコードにより、Kameleoon は実験決定とトラッキングを統一できます。 次のクロスプラットフォームフローに従ってください。
  1. エンジン、Web SDK、サーバーサイド SDK、またはモバイルアプリケーションが訪問者コードを生成します。
  2. バックエンドは、ユーザーが新しいプラットフォームでログインしたときに既存の訪問者コードを取得します。
  3. システムは、訪問者コードをモバイル、サーバーサイド、Web SDK に渡します。これにより、すべてのプラットフォームで同じユーザーが一貫して評価されます。

訪問者コードを同期する

  • 訪問者コードをバックエンドまたはユーザーデータベースに安全に保存し、ユーザー ID にリンクします。
  • ユーザーが別のプラットフォームでログインした場合は、次の手順に従います。
    • モバイルアプリ: バックエンドから訪問者コードをリクエストします。
    • サーバーサイド SDK: すべてのバリエーションおよびトラッキングコールに同じ訪問者コードを使用します。
    • Web SDK: JavaScript API を使用して訪問者コードを設定します。
kameleoon.API.Visitor.setVisitorCode(visitorCode);
Web SDK とサーバーサイド SDK は、kameleoonVisitorCode Cookie を介して自動的に通信します。これら2つをリンクするための追加手順を実行する必要はありません。

ベストプラクティス

  • 既存のユーザー識別子 (例: userId) を、すべてのプラットフォーム間で単一の Kameleoon 訪問者コードにマッピングします。
  • バックエンドを訪問者コードの真実の情報源として維持します。
  • 既知のユーザーの既存の訪問者コードが SDK によって上書きされないようにします。
統一された識別により、すべてのユーザーアクション、コンバージョン、バリエーション決定が Kameleoon の同じ訪問者にリンクされます。

環境間の実験処理

モバイルとバックエンドなど、複数の環境にまたがる実験のために、決定とバリエーション表示を調整します。

シナリオ例

このシナリオでは:
  • モバイルアプリがバリエーションを表示します。
  • バックエンドサーバーが割り当てられるバリエーションを決定します。

実装オプション

オプション 1: サーバーサイド決定ロジック
  1. モバイルアプリが訪問者コードをバックエンドに送信します。
  2. サーバーサイド SDKgetVariation() (またはその同等メソッド) を呼び出して、割り当てられたバリエーションを取得します。
  3. バックエンドはバリエーション ID または名前をモバイルアプリに返します。
  4. モバイルアプリがバリエーションを表示し、エクスポージャーをトラッキングします。
  5. モバイルおよびサーバー SDK の両方が、イベントトラッキングに同じ訪問者コードを使用します。
利点:
  • バリエーションロジックを集中化し、一貫した決定を保証します。
  • バックエンドロジックと UI 要素の両方に影響する実験をサポートします。
オプション 2: クライアントサイド (モバイル) 決定ロジック
  1. モバイル SDK が訪問者コードを使用してバリエーション割り当てを取得します。
  2. モバイルアプリがバリエーションをローカルに適用し、エクスポージャーを直接トラッキングします。
  3. (オプション) バックエンドもトラッキングまたは検証に参加する場合、サーバーサイド SDK が同じ訪問者コードを再利用して、一貫したレポートを保証します。
利点:
  • 同期で遅延のない決定を提供します。
  • サーバーへの往復を回避することで遅延を削減します。
  • バックエンドロジックに依存しない UI 中心の実験を最適化します。

適切なセットアップを選ぶ

ユースケース決定レイヤー訪問者コードのソース備考
モバイル UI 実験モバイル SDKバックエンドバリエーションをローカルに処理
バックエンドまたは API 駆動サーバーサイド SDKアプリまたはウェブサイト集中化された決定ロジック
クロスデバイス一貫性任意バックエンド統一されたトラッキングを保証

コード例: レイヤー間で訪問者コードを渡す

const visitorCode = kameleoon.API.Visitor.code;
fetch("/api/syncVisitor", {
  method: "POST",
  body: JSON.stringify({ visitorCode }),
});

異なるレイヤー間で SDK 実装を処理するには:
  • すべてのプラットフォームで、ユーザーごとに単一の訪問者コードを割り当てます。
  • バックエンドから訪問者コードを管理および配布します。
  • 実験タイプに基づいてバリエーションロジックレイヤーを選択します (集中化されたロジックにはサーバー、アプリ駆動の UI にはクライアントサイド)。
  • 同じ訪問者コードですべてのユーザーアクティビティをトラッキングして、一貫したクロスデバイスデータを維持します。