什么是应用内消息
- 借助 Firebase In-App Messaging,可以向应用的活跃用户发送有针对性、且符合情景的消息来鼓励他们使用关键应用功能,从而吸引这些用户。举例:玩游戏通过某个关卡时发送应用内消息促使他们完成重要的应用内操作
- 应用内消息可以自定义,使其显示为卡片、横幅、模态窗口或图片,并设置触发器,使其在合适时机出现
In-App Messaging 的集成
- iOS、Android、flutter 集成,详情可见
- 注意:
- 发送测试消息,为节省能耗,Firebase In-App Messaging 每天仅从服务器检索一次消息。这可能会使测试难以进行,因此 Firebase 控制台允许您指定一部测试设备来按需显示消息。
- iOS、Android、flutter 相关处理,详情可见
In-App Messaging 用途
- 通过 Firebase 控制台可以修改消息的样式、定位和推送时间
Firebase In-App Messaging 提供消息模板,您可以进行实验并根据自己的喜好进行自定义
- 卡片
- 包含两个操作按钮的结构化消息
- 为用户提供选择
Snip20230915_17.png
- 模态
- 包含一个操作按钮的灵活消息对话框
- 只需使用您要展现的内容设置消息标题
Snip20230915_19.png
- 仅图片
- 上传您的自定义消息
- 可根据自己的审美轻松调整显示效果
Snip20230915_20.png
- 横幅
- 通知式消息
- 不占用大量屏幕空间
Snip20230915_21.png
定位特定用户
- 根据特定受众群体的行为、语言、互动度等信息来定位消息
Snip20230915_23.png
- 宣传活动的名称:用于宣传活动报告,不会显示在消息中
- 宣传活动说明:用于宣传活动报告,不会显示在消息中
- 可以定义多维度多角度的受众群体
- 应用内消息还支持多语言
Snip20230915_24.png
时间安排
Snip20230915_25.png
- 定义事件范围,在开始时间和结束时间期间响应应用内消息
- 至少需要添加一个响应事件。可以是默认事件或自定义事件,应用内消息会在指定的事件时触发
- 设置每台设备的推送频率限制
Snip20230915_27.png
转化事件
应用内消息将转化为事件进行统计
Snip20230915_29.png
修改 In-App Messaging 消息的行为
通过代码逻辑,可以定制应用内消息的行为:比如截获 In-App Messaging 消息,通过代码控制触发 In-App Messaging 消息,并允许用户控制与消息交互相关的个人数据共享等等
APP 截获 In-App Messaging 响应
通过添加代码逻辑,可以获取 In-App Messaging 响应方法,通过这些方法可以做出相应处理,比如获取应用内消息的参数等等
以 iOS 为例,其他 Android、flutter,详情可见
AppDelegate 代码
代码语言:javascript复制self.myFiamDelegate = [[CardActionFiamDelegate alloc]init];
[FIRInAppMessaging inAppMessaging].delegate = (id)self.myFiamDelegate;
CardActionFiamDelegate 代码
代码语言:javascript复制#import <FirebaseInAppMessaging/FirebaseInAppMessaging.h>
@interface CardActionFiamDelegate()<FIRInAppMessagingDisplayDelegate>
@end
@implementation CardActionFiamDelegate
- (void)messageDismissed:(FIRInAppMessagingDisplayMessage *)inAppMessage dismissType:(FIRInAppMessagingDismissType)dismissType{
NSLog(@"点击了关闭按钮");
}
- (void)messageClicked:(FIRInAppMessagingDisplayMessage *)inAppMessage withAction:(FIRInAppMessagingAction *)action{
NSLog(@"点击非关闭按钮");
//获取参数
NSDictionary *dic = inAppMessage.appData;
NSLog(@"----%@",dic);
}
- (void)impressionDetectedForMessage:(FIRInAppMessagingDisplayMessage *)inAppMessage{
NSLog(@"消息加载成功");
}
- (void)displayErrorForMessage:(FIRInAppMessagingDisplayMessage *)inAppMessage error:(NSError *)error{
NSLog(@"消息显示失败了");
}
@end
以编程方式触发应用内消息
除了以 Analytics 触发应用内消息,还可以使用 代码逻辑触发
以代码控制应用内消息触发时机,事件名要与控制台对应
代码语言:javascript复制[[FIRInAppMessaging inAppMessaging] triggerEvent:@"goto_baidu"];
Snip20230915_30.png
暂时停用应用内消息
默认情况下,应用内消息一旦触发就会显示,如果想暂停使用,可以通过代码修改,Android、flutter,详情可见
将该属性设置为 YES
,应用内消息则无法显示,设置为 NO
,则可重新允许显示应用内消息。要想生效,必须重新启动 APP 才能满足其触发条件
[FIRInAppMessaging inAppMessaging].messageDisplaySuppressed = YES;
允许选择停用消息传送
默认情况下,应用内消息会发送给安装该 APP 的所有用户,这是因为 Firebase In-App Messaging SDK 与 APP ID 绑定的,如果想让用户对其有更多的选择权,则需要询问用户是否同意数据共享
以 iOS 为例,Android、flutter 详情可见
修改 Info.plist
文件,将 FirebaseInAppMessagingAutomaticDataCollectionEnabled
设置为 NO
当用户选择同意共享,则执行以下代码。重启 APP 之后生效
代码语言:javascript复制// YES 为允许共享数据,NO 为拒绝贡献数据
[FIRInAppMessaging inAppMessaging].automaticDataCollectionEnabled = YES;
自定义 In-App Messaging 消息
In-App Messaging 提供一些消息模板,同时也可以自定义消息模板
向消息添加操作
通过添加操作,您可以使用应用内消息将用户定向到某个网站或应用中的特定界面
- 使用链接处理程序 可以使用 Firebase Dynamic Links。如需了解详情,请参阅创建动态链接 (iOS)。
- 使用 Firebase 控制台向消息添加操作
- 修改卡片、按钮文字、按钮操作、图片等等
Snip20230915_32.png
修改消息的外观和风格
- iOS、Android、Flutter,详情可见