問題は何ですか?
ユーザーは、配信制御条件を「1回のみ表示」に設定しても、アプリ内メッセージを何度も見ています。
そのようなシナリオはいつ発生する可能性がありますか?
- ユーザーが複数のデバイスで同じユーザープロファイルでログインし、両方のデバイスでトリガー条件を実行した場合。
- ユーザーがログアウトし、その後再度ログインしてアプリ内トリガー条件を実行する場合。
- セッションの期限切れや非アクティブによりユーザーがログアウトされ、その後アプリを使用するために再ログインする場合。
なぜこれが起こるのですか?
アプリ内メッセージは、ユーザーのデバイスIDに基づいてポップアップウィンドウを表示するように設計されています。ユーザーがログアウトすると、ユーザーは匿名ユーザーに設定され、デバイスの配信コントロールがリフレッシュされます。ユーザーが再度ログインすると、キャンペーンはトリガー条件を満たすと再表示されます。古い配信コントロールが削除され、ユーザーがキャンペーンを見ることができる最大回数が0にリセットされたためです。
期待される動作は何ですか?
デザインによれば、ユーザーが複数のデバイスから同じユーザーIDでログインした場合や、ユーザーが手動でログアウトして再度ログインした場合、再びキャンペーンが表示されます。これは解決できません。MoEngageは、ログアウトがアプリによって開始された場合にのみ、キャンペーンを複数回表示するのを避けることができますが、ユーザーによって開始された場合はそうではありません。
この問題をどのように解決できますか?
ユーザーがセッションの期限切れや非アクティブによりアプリからログアウトされると、ログイン時に再度キャンペーンが表示されます。 これを避けるために、ユーザーが自動的にログアウトされたときにMoEngage SDKへの呼び出しを削除する必要があります。方法は次のとおりです:
-
For Android, remove the following function from the auto-logout call. Do not call the logout function of MoEngage when you call logout from your end.
MoECoreHelper.logoutUser(context)
MoECoreHelper.INSTANCE.logoutUser(context);
-
For IOS, remove the following function from the auto-logout call. Do not call the logout function of MoEngage when you call logout from your end.
[[MoEngageSDKAnalytics sharedInstance] resetUser];
MoEngageSDKAnalytics.sharedInstance.resetUser()