Firebase iOS SDK - 为推送通知执行 utm 归因的正确方法

Firebase iOS SDK - proper way to do utm attribution for Push Notifications

有一个客户使用“session_start”事件来跟踪 Web+App 上 3 个平台的转化情况 属性。

对于应用 links 和深度 links,这非常有效。单击通用 link 打开应用程序并触发带有 utm 属性的 SESSION_START。

对于推送通知,这在网络上是可以的,在 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 函数

https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics#appdelegate

  • 但特别是,从 application(_:open:options:) 调用 handleopenurl(url),传入从键值对中选择的推送通知提供商提取的 url。对于 Localytics,在 ll_deep_link_value
  • 中找到了深度 link

https://firebase.google.com/docs/reference/ios/firebaseanalytics/api/reference/Classes/FIRAnalytics#+handleopenurl:

希望这对未来的侦探有所帮助。由于我不是真正的开发者,上面的一些细节可能不是 100% 准确,所以如果你找到了,请留下更正。

一般来说,如果组合多个推送通知和分析提供程序,请避免使用 FB Swizzling 和 Localytics auto init 等自动集成。