首页 > 解决方案 > Firebase iOS SDK - 为推送通知进行 utm 归因的正确方法

问题描述

有一个客户正在使用“session_start”事件在 Web+App 媒体资源上跟踪跨 3 个平台的转化。

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

对于推送通知,这在 web 上是可以的,在 Android 上是可以的(现在不确定如何,但那是另一回事了)。但在 iOS 上,不会触发 SESSION_START 归因。

考虑使用自定义 NOTIFICATION_OPENED 事件,并在那里附加归因参数。

SDK 不支持修改或劫持 SESSION_START 事件。

将属性附加到推送通知的正确方法是什么?

标签: iosfirebasepush-notificationfirebase-analytics

解决方案


简而言之 - 默认情况下,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

  • 但特别是,调用handleopenurl(url)from application(_:open:options:),传入从键值对中从您选择的推送通知提供程序中提取的 url。在 Localytics 的情况下,深层链接位于ll_deep_link_value

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

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

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


推荐阅读