如何通过代码识别iOS应用安装是否来自Google Ads?
如何通过App内代码识别安装是否来自Google Ads点击?
问题描述
我使用Google Ads推广应用,已集成Firebase,能在Google Ads后台查看该渠道带来的转化量。现在想通过App内代码判断当前安装是否来自Google Ads的点击——用户点击广告后会通过click.google-analytics....redirect=...这类链接跳转至App Store,我尝试在AppDelegate的application(_:open:options:)方法里判断是否来自这类链接,但不确定能否从中获取到标识,或者是不是因为经过App Store跳转就无法实现?
提供的代码片段:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { // Get CampaignName or some identifier from the Google Ad return true }
解答
首先明确:直接通过application(_:open:options:)拿不到Google Ads的跳转标识
用户点击广告后,经过click.google-analytics链接跳转至App Store,当App从App Store完成安装并首次启动时,App Store不会将之前的Google Ads跳转URL参数传递给你的App,所以application(_:open:options:)方法里无法获取到这类来源标识。
正确实现:利用Firebase Analytics的归因能力
既然你已经集成了Firebase,Firebase会自动和Google Ads做归因数据同步,你可以通过Firebase提供的API直接获取安装来源的归因信息,判断是否来自Google Ads。
代码示例
在App启动时调用Firebase的归因查询API,获取来源参数:
import FirebaseAnalytics func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { FirebaseApp.configure() // 获取安装归因数据 Analytics.getAttribution { attributionDict, error in guard let attribution = attributionDict, error == nil else { print("归因数据获取失败:\(error?.localizedDescription ?? "未知错误")") return } // 提取关键归因参数 let source = attribution[AnalyticsParameterSource] as? String let medium = attribution[AnalyticsParameterMedium] as? String let campaignName = attribution[AnalyticsParameterCampaign] as? String // 判断是否来自Google Ads(cpc代表付费点击广告) if source == "google" && medium == "cpc" { print("当前安装来自Google Ads,活动名称:\(campaignName ?? "未命名")") // 在这里执行你需要的自定义逻辑 } } return true }
注意事项
- iOS 14+ ATT权限:iOS 14及以上系统中,必须获取用户的App Tracking Transparency权限,否则Firebase无法获取到完整的归因数据。
- Google Ads与Firebase关联:确保在Google Ads后台已正确关联你的Firebase项目,这样归因数据才能准确同步到Firebase中。
- 首次启动触发:归因数据仅在App首次安装启动时能获取到有效来源信息,后续启动可能无法拿到完整的安装来源数据。
内容的提问来源于stack exchange,提问作者mars
相关产品推荐
相关产品推荐

