InApp Messaging在自定义事件中不会显示消息

时间:2019-11-14 13:09:01

标签: android ios firebase firebase-in-app-messaging

使用

implementation 'com.google.firebase:firebase-analytics:17.2.1'
implementation 'com.google.firebase:firebase-inappmessaging-display:19.0.2'

在Firebase中使用“在设备上测试”功能时,我收到消息 使用事件“ on_foreground”时也会收到消息,但我不想直接在应用启动时显示消息,而是在进入新屏幕时(当我发送事件“ Show_Category_Screen”时)

像这样

FirebaseAnalytics mFirebaseAnalytics = FirebaseAnalytics.getInstance(activity);
mFirebaseAnalytics.logEvent("Show_Category_Screen", null);

然后将InApp Message触发事件设置为“ Show_Category_Screen”。但是什么也没发生

该事件成功显示在Firebase的DebugView中

我在日志中看到了

I/FIAM.Headless: Successfully fetched 2 messages from backend
I/FIAM.Headless: Removing display event listener
I/FIAM.Headless: Already impressed InAppCategoryMessage ? : false

我的iOS应用程序中存在相同的问题。可以这样做吗?

2 个答案:

答案 0 :(得分:1)

我今天开始玩应用程序消息传递,这使用了著名的反复试验技术来弄清楚。

有两种触发事件的方法:

FirebaseAnalytics.getInstance(this).logEvent("main_screen_opened", null);

FirebaseInAppMessaging.getInstance().triggerEvent("main_screen_opened");

我已使用触发器main_screen_opened发布了一个广告系列,因为您在测试时无法执行此操作,因此测试消息会在应用打开时显示:

Test on device screenshot

现在,请确保您在活动的triggerEvent()中调用logEvent()onResume()如果您在OnCreate()上执行此操作将不起作用!

@Override
protected void onResume() {
    super.onResume();

    FirebaseAnalytics.getInstance(this).logEvent("main_screen_opened", null);
    FirebaseInAppMessaging.getInstance().triggerEvent("main_screen_opened");
    ...
}

注意:* :它不会(可能是?)不会首次触发,也不会立即对用户造成错误。当您转到主屏幕并返回到应用程序时,它应该立即显示。

编辑:经过更多测试后,将其放在onCreate()中就可以了。查看日志记录时,您会看到

Already impressed <your campaign name> ? : false

第二次执行logEvent() / Trigger()时,将显示弹出窗口

答案 1 :(得分:0)

在应用build.gradle文件中添加以下行:

// in app messaging
implementation 'com.google.firebase:firebase-inappmessaging-display:19.0.3'
implementation 'com.google.firebase:firebase-analytics:17.2.2

onCreate()的开始活动中添加以下几行

FirebaseDatabase.getInstance().setPersistenceEnabled(false);
FirebaseInAppMessaging.getInstance().setAutomaticDataCollectionEnabled(true);

我通过上述步骤解决了同样的问题。