概要
MoEngage iOS SDKは、パーソナライズされたキャンペーンを配信するための安全なフレームワークを提供します。ユーザーIDと認証を内部で処理することで統合を簡素化し、APIシークレットの管理や手動でのHTTPS呼び出しを不要にします。これにより、合理化されたネイティブインターフェイスを通じて、パーソナライズされたキャンペーン情報を直接取得およびトラッキングできます。MoEngage Personalizationの統合
- SPM (Swift Package Manager)
- CocoaPods
SPMを使用して
MoEngagePersonalization をインストールするには、次の手順を実行します。- File > Add Package に移動します。
- 適切なリポジトリURLを入力します。
- https://github.com/moengage/apple-sdk.git (MoEngage-iOS-SDKバージョン9.23.0以上の場合)
- https://github.com/moengage/MoEngage-iOS-SDK.git (その他のバージョンの場合)
- masterブランチまたは目的のバージョンを選択します。
- Add Package をクリックします。
- 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メソッドを使用します。
3. インプレッションのトラッキング
キャンペーンのパフォーマンスを正確に測定するには、パーソナライズされたコンテンツをUIにレンダリングした後に、ユーザーのインタラクションをトラッキングする必要があります。以下のトラッキングコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。3a. Experienceキャンペーンのインプレッションのトラッキング
Objective-C
experienceShown / experiencesShown)を記録できます。
3b. Offeringキャンペーンのインプレッションのトラッキング
Offeringsは、パーソナライズされたコンテンツの独自のサブタイプです。SDKは、Offering固有の属性を受け取る専用のトラッキング関数を提供します。以下のトラッキングコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。Objective-C
campaign.payload 内の offerings 配列の1要素)をサーバーに送信し、カスタムオファーについて非常に詳細な分析を提供します。
4. クリックのトラッキング
4a. Experienceキャンペーンのクリックのトラッキング
Objective-C
experienceClicked)を記録できます。
4b. Offeringキャンペーンのクリックのトラッキング:
Offeringsは、パーソナライズされたコンテンツの独自のサブタイプです。SDKは、Offering固有の属性を受け取る専用のトラッキング関数を提供します。以下のトラッキングコードスニペットは、SwiftとObjective-Cの両方の実装と互換性があります。Objective-C
これらのOffering固有の関数は、データがOfferingペイロードの一部である場合にのみ使用できます。その他のすべてのエクスペリエンスデータには、標準のexperience shown/clicked関数を使用してください。
campaign.payload 内の offerings 配列の1要素)をサーバーに送信し、カスタムオファーについて非常に詳細な分析を提供します。
詳細については、APIドキュメントを参照してください。
FAQ
SDKはUIのレンダリングを処理しますか?
SDKはUIのレンダリングを処理しますか?
いいえ。SDKは生のJSONペイロードを返します。データの解析とUIコンポーネント(バナーやカルーセルなど)の構築はお客様の責任で行ってください。
SDKは画像や動画をキャッシュしますか?
SDKは画像や動画をキャッシュしますか?
いいえ。SDKはメディアアセットをダウンロードまたはキャッシュしません。JSONで参照される画像、動画、フォントの処理には、標準的なメディア読み込みライブラリを使用してください。
取得できるエクスペリエンスの数に上限はありますか?
取得できるエクスペリエンスの数に上限はありますか?
はい。1回の呼び出しで最大25件のエクスペリエンスを取得できます。これを超えた場合、SDKは最近更新された25件のエクスペリエンスを返し、取得されなかったキーを通知します。
デバイスがオフラインで有効なキャッシュがない状態で取得リクエストが行われた場合はどうなりますか?
デバイスがオフラインで有効なキャッシュがない状態で取得リクエストが行われた場合はどうなりますか?
SDKは、空のペイロードと標準化されたエラーコード(例: NETWORK_ERROR)を返します。すべてのエラーの詳細については、こちらを参照してください。