You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端Firebase动态链接来源追踪与个性化消息实现问询

解决方案:追踪Firebase动态链接来源并展示对应欢迎消息

当然可以实现!你完全可以追踪Firebase动态链接的点击来源,并据此展示对应的欢迎消息。下面结合Firebase动态链接的分析文档,一步步教你落地需求:

一、确认你的UTM参数配置(已完成,再做个小检查)

你已经通过FIRDynamicLinkGoogleAnalyticsParameters配置了UTM参数,这一步非常关键——确保你把utm_source设置为Facebook(或者你实际用的Source值),这样后续才能精准识别来源是Facebook。

二、在App中获取动态链接的跳转参数(核心步骤)

当用户点击动态链接打开App时,Firebase会自动把链接携带的参数传递给App,你需要在App的入口处捕获这些参数:

1. 在AppDelegate/SceneDelegate中处理链接

根据你的iOS版本,选择对应的入口方法添加处理逻辑:

// 适配iOS 12及以下的AppDelegate
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    return [[FIRDynamicLinks dynamicLinks] handleUniversalLink:url completion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) {
        if (error) {
            NSLog(@"处理动态链接出错:%@", error.localizedDescription);
            return;
        }
        
        if (dynamicLink) {
            [self processDynamicLinkParams:dynamicLink];
        }
    }];
}

// 适配iOS 13+的SceneDelegate
- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
    for (UIOpenURLContext *context in URLContexts) {
        [[FIRDynamicLinks dynamicLinks] handleUniversalLink:context.URL completion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) {
            if (dynamicLink) {
                [self processDynamicLinkParams:dynamicLink];
            }
        }];
    }
}

2. 解析UTM参数并展示对应欢迎消息

接下来编写processDynamicLinkParams:方法,从动态链接中提取你之前设置的UTM参数,判断来源后展示欢迎语:

- (void)processDynamicLinkParams:(FIRDynamicLink *)dynamicLink {
    FIRDynamicLinkGoogleAnalyticsParameters *analyticsParams = dynamicLink.analyticsParameters;
    if (!analyticsParams) return;
    
    NSString *source = analyticsParams.source;
    // 判断是否来自Facebook
    if ([source isEqualToString:@"Facebook"]) {
        [self showCustomWelcomeMessage:@"Facebook"];
    } else {
        // 其他来源可以做通用处理
        [self showCustomWelcomeMessage:source ?: @"未知渠道"];
    }
}

- (void)showCustomWelcomeMessage:(NSString *)source {
    NSString *welcomeText = [NSString stringWithFormat:@"嗨!欢迎来自%@的用户😊", source];
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"欢迎" message:welcomeText preferredStyle:UIAlertControllerStyleAlert];
    [alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]];
    
    // 这里根据你的App结构获取当前顶层ViewController来弹窗
    UIViewController *topVC = [UIApplication sharedApplication].keyWindow.rootViewController;
    [topVC presentViewController:alert animated:YES completion:nil];
}

三、处理首次安装后的参数(避免遗漏)

如果用户是通过动态链接跳转至App Store安装App,首次打开时Firebase会把链接参数缓存下来,你需要在App启动时主动获取,避免丢失这个关键信息:

// 在App启动方法(比如application:didFinishLaunchingWithOptions:)中添加
[[FIRDynamicLinks dynamicLinks] retrievePendingDynamicLinkWithCompletion:^(FIRDynamicLink * _Nullable dynamicLink, NSError * _Nullable error) {
    if (dynamicLink) {
        [self processDynamicLinkParams:dynamicLink];
    }
}];

四、验证归因追踪效果

  • Google Analytics端:你可以在GA的广告活动报告中,看到utm_source=Facebook的流量数据,包括该动态链接带来的用户数、用户行为等详细统计。
  • App Store Connect端:对应的归因参数会自动传递给App Store,你可以在后台的来源报告中查看该渠道的安装数据。

这样就完全满足你的需求了:用户点击Facebook分享的动态链接,已安装App则直接跳转,未安装则引导至App Store;进入App后根据来源展示专属欢迎消息,同时GA和App Store Connect能正常完成归因追踪。

内容的提问来源于stack exchange,提问作者Mad Burea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 14:17:41