ios - Firebase iOS SDK - 为推送通知进行 utm 归因的正确方法
问题描述
有一个客户正在使用“session_start”事件在 Web+App 媒体资源上跟踪跨 3 个平台的转化。
对于应用链接和深层链接,这非常有效。单击通用链接会打开应用程序并触发带有 utm 属性的 SESSION_START。
对于推送通知,这在 web 上是可以的,在 Android 上是可以的(现在不确定如何,但那是另一回事了)。但在 iOS 上,不会触发 SESSION_START 归因。
考虑使用自定义 NOTIFICATION_OPENED 事件,并在那里附加归因参数。
SDK 不支持修改或劫持 SESSION_START 事件。
将属性附加到推送通知的正确方法是什么?
解决方案
简而言之 - 默认情况下,Firebase iOS SDK 不立即支持此功能,而 Firebase Android SDK 支持,因为 Android SDK 通过 FCM 触发并立即挂钩支持开箱即用的 utm 标签的动态链接功能(我认为)用于归因,而 Firebase iOS SDK 则挂钩到 APNS。
我们就这样解决了这个问题
- 禁用 swizzling(FirebaseAppDelegateProxyEnabled 在 .plist 中为 false)
- 挂钩到以下 AppDelegate 函数
- 但特别是,调用
handleopenurl(url)
fromapplication(_:open:options:)
,传入从键值对中从您选择的推送通知提供程序中提取的 url。在 Localytics 的情况下,深层链接位于ll_deep_link_value
希望这有助于未来的侦探。由于我不是实际的开发者,上面的一些细节可能不是 100% 准确的,所以如果你找到了,请留下更正。
一般来说,如果组合多个推送通知和分析提供程序,请避免使用 FB Swizzling 和 Localytics 自动初始化等自动集成。
推荐阅读
- reactjs - Admin-on-rest,编辑页面 - 不正确的元素错误
- node.js - Node.js Google Drive api 下载文件错误
- r - 如何给 Y 轴限制和中断作为 argumnet
- python - Django:尽管将用户作为 kwarg 传递,但表单对象没有属性“用户”?
- java - Android Studio - 它默认安装什么?
- docker - 堆栈无法找到要复制到 docker 容器的 Haskell 可执行文件
- python - tkinter:创建的图像不出现
- javascript - 对 html 输入中的数字求和,Javascript
- c# - 在 C#/Unity3D 中为 TCP/IP 客户端服务器连接更新线程
- java - 带有json类型的JAVA继承+ Postgresql