v7 v8
推送通知渠道更改
- 适用对象:
- Campaign v8
- Campaign v8 Client Console
- 主题:
- 推送
创建对象:
- 有经验的
- 管理员
您可以使用Campaign在iOS和Android设备上发送推送通知。 为此,Campaign依赖于移动应用程序订阅服务。
Android Firebase Cloud Messaging (FCM)服务的一些重要更改将于2024年发布,可能会影响您的Adobe Campaign实施。 您可能需要更新Android推送消息的订阅服务配置才能支持此更改。
此外,Adobe强烈建议迁移到基于令牌的连接而不是APN的基于证书的连接,这种连接更加安全和可扩展。
Google Android Firebase Cloud Messaging (FCM)服务
更改了哪些内容?
作为Google不断努力改进其服务的一部分,旧版FCM API将于 2024年7月22日 终止。 请参阅Google Firebase文档以了解有关Firebase Cloud Messaging HTTP协议的更多信息。
Adobe Campaign Classic v7和Adobe Campaign v8已支持用于发送推送通知消息的最新API。 但是,某些旧实施仍依赖旧版API。 必须更新这些实施。
您是否受影响?
如果您当前的实施支持使用旧版API连接到FCM的订阅服务,则您会受到影响。 必须转换为最新的API才能避免任何服务中断。 在这种情况下,Adobe团队将会与您联系。
要检查您是否受到影响,您可以按照以下筛选条件筛选您的 服务和订阅:
-
如果您的任何活动推送通知服务使用 HTTP (旧版) API,则您的设置将直接受到此更改的影响。 您必须查看当前配置并迁移到如下所述的新API。
-
如果您的安装程序仅使用 HTTP v1 API来接收Android推送通知,则表明您已符合要求,无需执行任何进一步操作。
如何更新?
先决条件
-
需要Android Firebase Admin SDK服务的帐户JSON文件才能将移动应用程序移动到HTTP v1。 请参阅Google Firebase文档以了解如何获取此文件。
-
对于Campaign Classicv7,20.3.1版本中添加了对HTTP v1的支持。 如果您的环境运行在旧版本上,则迁移到HTTP v1的先决条件是将环境升级到最新的Campaign Classic内部版本。 对于Campaign v8,所有版本都支持HTTP v1,无需升级。
-
作为Campaign Classic v7内部部署用户,您必须同时升级营销和实时执行服务器。
-
对于混合、托管和托管Cloud Service部署,除了下面的过渡过程之外,请联系Adobe以更新实时(RT)执行服务器。
-
关于Android路由外部帐户:
-
作为Campaign Classicv7内部部署或混合用户,检查您的Android路由外部帐户是否配置了
androidPushConnectorV2.js
。 请参阅Campaign Classicv7文档以了解详情。 -
对于混合、托管和托管Cloud Service部署,还必须与Adobe客户关怀团队联系,以验证是否在Android路由中间源服务器的外部帐户中选择了
androidPushConnectorV2.js (nms)
连接器。
-
过渡过程
要将环境移动到HTTP v1,请执行以下步骤:
-
浏览到您的 服务和订阅 列表。
-
使用 HTTP (旧版) API版本列出所有移动应用程序。
-
对于每个移动设备应用程序,请将 API版本 设置为 HTTP v1。
-
单击 Load project json file to extract project details… 链接以直接加载您的JSON密钥文件。
您还可以手动输入以下详细信息:
- Project Id
- Private Key
- Client Email
-
单击 Test the connection 以检查您的配置是否正确,以及营销服务器是否有权访问FCM。 请注意,对于中间源部署,Test connection 按钮无法检查服务器是否有权访问Android Firebase Cloud Messaging (FCM)服务。
-
作为一个选项,您可以根据需要使用大约 Application variables 扩充推送消息内容。 这些都是完全可自定义的,并且是发送到移动设备的消息有效负载的一部分。
-
单击 Finish,然后单击 Save。
以下是FCM有效负荷名称,用于进一步个性化您的推送通知。 此处详细介绍这些选项。
消息类型可配置消息元素(FCM有效负荷名称)可配置选项(FCM有效负荷名称)数据消息N/Avalidate_only通知消息title,正文, android_channel_id,图标,声音,标记,颜色,点击操作,图像,滚动条,粘性,可见性,通知优先级,通知计数validate_only
更新现有模板
过渡HTTP v1完成后,您必须为Android推送通知更新 投放模板 以增加批处理消息数量。 为此,请浏览到Android投放模板的属性,然后在 投放 选项卡中,将消息批次数量设置为 256。 将此更改应用于您的Android投放使用的所有投放模板,以及您所有现有的Android投放。
您还可以更新在升级到支持HTTP v1的版本之前创建的现有投放和投放模板。 要执行此操作,请执行以下操作:
-
作为托管Cloud Service或托管客户,请联系Adobe以更新现有Android交付模板。
-
对于内部部署环境,请下载
fcm-httpv1-migration.js
脚本并运行它,如下所述。CAUTION
必须在内部部署营销实例上执行脚本。更新现有投放和模板的步骤(仅限内部部署)要修补在升级到支持HTTP v1的版本之前创建的所有投放和投放模板,请执行以下步骤:
-
将现有的投放和投放模板导出到一个程序包中,以便在修补期间发生意外问题时能够恢复它们。
-
在Posgresql中运行以下命令:
pg_dump -Fp -f /sftp/<db_name>-nmsdelivery-before_rd_script.sql -t nmsdelivery -d <db_name>
-
默认情况下,脚本处于
dryrun
模式,您可以在该模式下启动脚本以检查是否需要修补某些投放。命令
nlserver javascript -instance:<instance_name> -file fcm-httpv1-migration.js
输出
... HH:MM:SS > Processing delivery (id:123456, label:'Deliver on Android - New', name:'DM1234') HH:MM:SS > Dry run: Would update androidCheckParams for delivery (id:123456, label:'Deliver on Android - New', name:'DM1234') HH:MM:SS > Processing delivery (id:567890, label:'Deliver on Android - New', name:'DM5678') HH:MM:SS > Dry run: Would update androidCheckParams for delivery (id:567890, label:'Deliver on Android - New', name:'DM5678') ... HH:MM:SS > Summary (XYZ processed deliverie(s) or delivery template(s)): HH:MM:SS >> - X had not patchable androidCheckParams formula! HH:MM:SS > - Y had androidCheckParams formula patched. HH:MM:SS > - Z ignored as alreading having androidCheckParams formula patched.
NOTE
需要手动更新not patchable
投放。 可以在日志中找到他们的ID。 -
在执行模式下通过以下方式运行脚本以更新投放:
nlserver javascript -instance:<instance_name> -file fcm-httpv1-migration.js -arg:run
-
这对我的Android应用程序有何影响?
无需对Android Mobile应用程序的代码进行特定更改,通知行为不应发生变化。
但是,使用HTTP v1,您可以使用 HTTPV1 additional options 进一步个性化推送通知。
您可以:
- 使用 Ticker 字段设置通知的滚动条文本。
- 使用 Image 字段设置要在通知中显示的图像URL。
- 使用 Notification Count 字段设置直接显示在应用程序图标上的新未读信息数。
- 将 Sticky 选项设置为false,以便在用户单击该通知时自动将其关闭。 如果设置为true,则即使用户单击通知,也会显示通知。
- 将通知的 Notification Priority 级别设置为默认、最小、低或高。
- 将通知的 Visibility 级别设置为public、private或secret。
有关 HTTP v1 additional options 以及如何填写这些字段的更多信息,请参阅FCM文档。
Apple iOS推送通知服务(APN)
更改了哪些内容?
按照Apple的建议,您应使用无状态身份验证令牌保护与Apple推送通知服务(APN)的通信。
基于令牌的身份验证提供了与APN进行通信的无状态方式。 无状态通信比基于证书的通信速度更快,因为它不要求APN查找与您的提供商服务器相关的证书或其他信息。 使用基于令牌的身份验证还有其他优势:
-
您可以使用来自多个提供程序服务器的相同令牌。
-
您可以使用一个令牌为您的公司的所有应用程序分发通知。
在Apple开发人员文档中了解有关基于令牌的APN连接的更多信息。
Adobe Campaign Classic v7和Adobe Campaign v8支持基于令牌和基于证书的连接。 如果您的实施依赖于基于证书的连接,Adobe强烈建议您将其更新为基于令牌的连接。
您是否受影响?
如果您当前的实施依赖于基于证书的请求来连接到APN,则您会受到影响。 建议转换为基于令牌的连接。
要检查您是否受到影响,您可以按照以下筛选条件筛选您的 服务和订阅:
-
如果您的任何活动推送通知服务使用 基于证书的身份验证 模式(.p12),则应审查您当前的实施并将其移动到基于 令牌的身份验证 模式(.p8),如下所述。
-
如果您的设置仅对iOS推送通知使用 基于令牌的身份验证 模式,则表明您的实施已处于最新状态,无需您执行任何进一步操作。
如何更新?
先决条件
-
对于Campaign Classicv7,已在20.2版本中添加了对 基于令牌的身份验证 模式的支持。 如果您的环境运行在旧版本上,则此更改的先决条件是将您的环境升级到最新的Campaign Classic内部版本。 对于Campaign v8,所有版本都支持 基于令牌的身份验证 模式,无需升级。
-
您需要APN身份验证令牌签名密钥来生成您的服务器使用的令牌。 您从Apple开发人员帐户请求此密钥,如Apple开发人员文档中所述。
-
对于混合、托管和Managed Services部署,除了下面的过渡过程之外,请联系Adobe以更新实时(RT)执行服务器。 不影响中间源服务器。
-
作为Campaign Classic v7内部部署用户,您必须同时升级营销和实时执行服务器。 不影响中间源服务器。
过渡过程
要将iOS移动应用程序移动到基于令牌的身份验证模式,请执行以下步骤:
-
浏览到您的 服务和订阅 列表。
-
使用 基于证书的身份验证 模式(.p12)列出所有移动应用程序。
-
编辑每个移动应用程序,并浏览到 证书/私钥 选项卡。
-
从 身份验证模式 下拉列表中,选择 基于令牌的身份验证 模式(.p8)。
-
填写APNs连接设置 Key Id、Team Id 和 Bundle Id,然后单击 Enter the private key… 选择您的p8证书。
-
单击 Test the connection 以检查您的配置是否正确,以及服务器是否有权访问APN。 请注意,对于中间源部署,Test connection 按钮无法检查服务器是否有权访问APN。
-
单击 Next 开始配置生产应用程序,并遵循上面详述的相同步骤。
-
单击 Finish,然后单击 Save。
您的iOS应用程序现在已移至基于令牌的身份验证模式。