概要
Self-Handled On-site Messaging (OSM) は、開発者がキャンペーンデータを JSON ペイロードとして直接受け取れる柔軟性を提供する強力な機能です。MoEngage SDK に事前定義済みのテンプレートをレンダリングさせる代わりに、この方法ではアプリケーション側で、Web サイトのネイティブなデザインやユーザー体験とシームレスに統合されたカスタム UI を構築して表示できます。この方法は、高度にカスタマイズされた、動的で深く統合された On-site メッセージを作成するのに最適です。
MoEngage Web SDK バージョン 2.55.0 以降を使用する必要があります。
キャンペーンデータの受信
キャンペーンデータを受信するには、コールバック関数を登録する必要があります。MoEngage SDK は、Self-Handled OSM キャンペーンのトリガー条件が満たされたときにこの関数を実行します。Moengage.onsite.getSelfHandledOSM(callbackFunction)
このメソッドは、Self-Handled OSM キャンペーンのリスナーを登録します。リスナーが有効になり、データを受信できる状態にするため、MoEngage はページの読み込み時にこのメソッドを呼び出すことを推奨します。 実装例:キャンペーンデータのペイロードについて
キャンペーンによって登録済みのコールバックがトリガーされると、関数はキャンペーンに関する必要な情報をすべて含むfullCampaignData オブジェクトを受け取ります。
fullCampaignData ペイロードの例:
ペイロードのフィールド
urlFilters オブジェクトの例
urlFilters オブジェクトは、キャンペーンをどのページに表示できるかを決定するロジックを定義します。以下の例は、URL に “loc” または “hos” のいずれかが含まれている場合にキャンペーンを表示する設定を示しています。
キャンペーン配信のロジックとベストプラクティス
イベントがトリガーされると、MoEngage は対象となるすべてのキャンペーンを評価し、配信するキャンペーンを 1 つ選択します。キャンペーンの選択アルゴリズム:
- フィルタリング: MoEngage は、ユーザーの適格性とターゲティング条件に基づいてキャンペーンをフィルタリングします。
- 除外: MoEngage は、フリークエンシーキャップ、遅延、有効期限のステータスなどのルールに基づいて、対象外のキャンペーンを除外します。
- 優先順位付け: MoEngage は、残りのキャンペーンを優先度順 (P0 が最高) に並べ替えます。
- タイブレーク: 複数のキャンペーンが最高の優先度を共有している場合、MoEngage は「最終更新」のタイムスタンプが最も新しいキャンペーンを選択します。
getSelfHandledOSM コールバックは、選択された 1 つのキャンペーンのみを受け取ります。
キャンペーンを整理するためのベストプラクティス:
適切なコンテキストで正しいキャンペーンを表示するために、明確な優先度を設定してキャンペーンを整理してください。- ホームページのコンテキスト: Campaign A (P0)、Campaign B (P1)
- 商品ページのコンテキスト: Campaign C (P0)、Campaign D (P1)
- チェックアウトのコンテキスト: Campaign E (P0)
キャンペーン統計のトラッキング
UI はアプリケーションが制御するため、ユーザーのインタラクションを SDK に通知する責任はお客様にあります。この手順は、正確な分析のために不可欠です。トラッキングデータオブジェクトの作成
トラッキングメソッドに渡す data オブジェクトは、fullCampaignData オブジェクト全体ではありません。トラッキング用に、新しい専用のオブジェクトを作成する必要があります。
必要な trackingData の形式:
コードの実装例
この例では、データを受信し、トラッキングメソッド用に準備するための主要なロジックを示します。トラブルシューティング
Moengage.onsite.getSelfHandledOSM コールバック関数がトリガーされない場合は、以下の一般的な問題を確認することを推奨します。
- SDK の初期化:
getSelfHandledOSM()は、MoEngage SDK が正常に初期化された後にのみ呼び出してください。ページ読み込みのシーケンスでこのメソッドを早く呼び出しすぎると、コールバックが正しく登録されない可能性があります。 - 正しいメソッド:
Moengage.onsite.getSelfHandledOSM()メソッドを使用していることを確認してください。誤って別のモジュールのメソッドを呼び出していないことを確認してください。 - SDK バージョンの互換性: Web SDK のバージョンが、前提条件に記載されている最小要件を満たしていることを確認してください。
- ブラウザコンソールのエラー: ブラウザで開発者コンソールを開き、MoEngage SDK の動作を妨げる可能性のある、MoEngage SDK に起因する JavaScript エラーがないかを確認してください。