Skip to main content

概要

MoEngage iOS SDKは、パーソナライズされたキャンペーンを配信するための安全なフレームワークを提供します。ユーザーIDと認証を内部で処理することで統合を簡素化し、APIシークレットの管理や手動でのHTTPS呼び出しを不要にします。これにより、合理化されたネイティブインターフェイスを通じて、パーソナライズされたキャンペーン情報を直接取得およびトラッキングできます。
前提条件パーソナライズされたエクスペリエンスを取得する前に、アプリケーションのエントリーポイント(iOSでは didFinishLaunchingWithOptions)でSDKの initialize() メソッドを呼び出していることを確認してください。詳細については、SDKの初期化を参照してください。

MoEngage Personalizationの統合

SPMを使用して MoEngagePersonalization をインストールするには、次の手順を実行します。
  1. File > Add Package に移動します。
  2. 適切なリポジトリURLを入力します。
  3. masterブランチまたは目的のバージョンを選択します。
  4. Add Package をクリックします。
  5. MoEngagePersonalizationプロダクトをアプリのターゲットに追加します。

実装ワークフロー

MoEngageSDKPersonalize シングルトンは、iOS上で動的なパーソナライズされたコンテンツの取得と操作を簡素化するように設計されています。SDKは、ネイティブのSwiftメソッドとObjective-C互換のオーバーロードを提供します。

1. Meta Experienceの取得

特定のペイロードやエクスペリエンスを取得する前に、メタデータの呼び出しを実行する必要があります。この手順により、後続のリクエストを正確に処理するために必要な設定とコンテキストがSDKに提供されます。SDKには、SwiftとObjective-Cの両方に専用のメソッドが用意されています。
onSuccess コールバックは、キャンペーンの実行に必要なすべてのメタデータを含む ExperienceCampaignsMetadata オブジェクトを返します。一方、onFailure コールバックは、リクエストが失敗した具体的な理由を特定するための RequestFailureReasonCode とオプションのメッセージを提供します。 目的のエクスペリエンスステータスに基づいてコア設定を初期化するため、常に最初にメタデータの取得を呼び出してください。Swiftの配列には標準メソッドを使用し、Objective-Cコードから生のNSNumber値を渡す場合はObjC版を使用します。

2. パーソナライズされたコンテンツの取得

メタデータを取得したら、実際のパーソナライズされたペイロードを取得できます。コンテキストターゲティングを完全にサポートしながら、単一のエクスペリエンスまたは複数のエクスペリエンスを同時に取得できます。 単一のエクスペリエンスを取得する以下のコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。
Objective-C
複数のエクスペリエンスを取得するには:
onSuccess コールバックは、キャンペーンの実行に必要なすべてのメタデータを含む ExperienceCampaignsResult オブジェクトを返します。一方、onFailure コールバックは、リクエストが失敗した具体的な理由を特定するための RequestFailureReasonCode とオプションのメッセージを提供します。 以下を取得できます。
  • 単一のエクスペリエンス: 単一のexperienceKeyを使用して特定のペイロードを取得します。
  • 一括エクスペリエンス: 複数のペイロードを一度に取得します。Swiftでは、Set<String>を渡します。Objective-Cでは、[String]としてブリッジされたNSArrayを受け取る fetchExperiencesObjC メソッドを使用します。
ユースケース: コンテキストターゲティング: 取得時に属性のディクショナリ(例: [“current_page”: “home”, “cart_value”: “500”])を渡します。これにより、リアルタイムで状態に応じたコンテンツ配信が可能になります(例: カートの金額がしきい値を満たした場合に「送料無料」バナーを表示する)。

3. インプレッションのトラッキング

キャンペーンのパフォーマンスを正確に測定するには、パーソナライズされたコンテンツをUIにレンダリングした後に、ユーザーのインタラクションをトラッキングする必要があります。以下のトラッキングコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。

3a. Experienceキャンペーンのインプレッションのトラッキング

Objective-C
UIがコンテンツをレンダリングしたときに、これらのメソッドを使用して「インプレッション」(experienceShown / experiencesShown)を記録できます。

3b. Offeringキャンペーンのインプレッションのトラッキング

Offeringsは、パーソナライズされたコンテンツの独自のサブタイプです。SDKは、Offering固有の属性を受け取る専用のトラッキング関数を提供します。以下のトラッキングコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。
Objective-C
これらのメソッドは、Offeringのディクショナリ全体(campaign.payload 内の offerings 配列の1要素)をサーバーに送信し、カスタムオファーについて非常に詳細な分析を提供します。

4. クリックのトラッキング

4a. Experienceキャンペーンのクリックのトラッキング

Objective-C
ユーザーがUI要素を操作したときに、これらのメソッドを使用して「クリック」(experienceClicked)を記録できます。

4b. Offeringキャンペーンのクリックのトラッキング:

Offeringsは、パーソナライズされたコンテンツの独自のサブタイプです。SDKは、Offering固有の属性を受け取る専用のトラッキング関数を提供します。以下のトラッキングコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。
Objective-C
これらのOffering固有の関数は、データがOfferingペイロードの一部である場合にのみ使用できます。その他のすべてのエクスペリエンスデータには、標準のexperience shown/clicked関数を使用してください。
これらのメソッドは、Offeringのディクショナリ全体(campaign.payload 内の offerings 配列の1要素)をサーバーに送信し、カスタムオファーについて非常に詳細な分析を提供します。 詳細については、APIドキュメントを参照してください。

FAQ

いいえ。SDKは生のJSONペイロードを返します。データの解析とUIコンポーネント(バナーやカルーセルなど)の構築はお客様の責任で行ってください。
いいえ。SDKはメディアアセットをダウンロードまたはキャッシュしません。JSONで参照される画像、動画、フォントの処理には、標準的なメディア読み込みライブラリを使用してください。
はい。1回の呼び出しで最大25件のエクスペリエンスを取得できます。これを超えた場合、SDKは最近更新された25件のエクスペリエンスを返し、取得されなかったキーを通知します。
SDKは、空のペイロードと標準化されたエラーコード(例: NETWORK_ERROR)を返します。すべてのエラーの詳細については、こちらを参照してください。