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

React Native/Flutter中如何从Firebase获取Google Ad引流信息同步至Mixpanel?

解决方案

可以从Firebase获取用户是否来自Google Ad的追踪信息,以下是具体实现步骤:

1. 确认Firebase归因数据可用性

Firebase Analytics已自动收集Google Ads的归因数据(包括来源、媒介、活动名称等),你已完成Firebase与Google Ads的关联,这一步无需额外配置,只需确保项目已集成Firebase Analytics SDK。

2. 在应用内读取Firebase归因属性

React Native 实现

使用@react-native-firebase/analytics库读取预定义的归因用户属性:

import analytics from '@react-native-firebase/analytics';

const fetchGoogleAdAttribution = async () => {
  try {
    const userProperties = await analytics().getUserProperties();
    // 判断是否来自Google Ad:source为google,medium为cpc(付费点击)
    const isFromGoogleAd = userProperties.source === 'google' && userProperties.medium === 'cpc';

    if (isFromGoogleAd) {
      // 可先在Firebase内标记该用户属性,方便后续分析
      await analytics().setUserProperty('from_google_ad', 'true');
      // 同步到Mixpanel的逻辑放在这里
    }
  } catch (err) {
    console.error('读取归因数据失败:', err);
  }
};

// 在应用冷启动后调用(建议延迟1-2秒,确保数据加载完成)
fetchGoogleAdAttribution();

Flutter 实现

使用firebase_analytics包获取归因属性:

import 'package:firebase_analytics/firebase_analytics.dart';

Future<void> fetchGoogleAdAttribution() async {
  try {
    final String? source = await FirebaseAnalytics.instance.getUserProperty(name: 'source');
    final String? medium = await FirebaseAnalytics.instance.getUserProperty(name: 'medium');
    
    final bool isFromGoogleAd = source == 'google' && medium == 'cpc';

    if (isFromGoogleAd) {
      await FirebaseAnalytics.instance.setUserProperty(
        name: 'from_google_ad',
        value: 'true',
      );
      // 同步到Mixpanel的逻辑放在这里
    }
  } catch (e) {
    print('读取归因数据失败: $e');
  }
}

// 在应用初始化时调用
fetchGoogleAdAttribution();

3. 同步数据到Mixpanel

获取到归因结果后,通过Mixpanel SDK将属性同步到用户档案:

React Native Mixpanel 同步

import Mixpanel from 'react-native-mixpanel';

// 假设已完成Mixpanel初始化
if (isFromGoogleAd) {
  Mixpanel.setUserProperties({
    from_google_ad: true,
    campaign: userProperties.campaign,
    ad_source: userProperties.source,
    ad_medium: userProperties.medium
  });
  // 可选:触发一个自定义事件标记用户来源
  Mixpanel.track('User_Acquired_From_Google_Ad');
}

Flutter Mixpanel 同步

import 'package:mixpanel_flutter/mixpanel_flutter.dart';

// 假设已获取Mixpanel实例
if (isFromGoogleAd) {
  await mixpanel.setUserProperties({
    'from_google_ad': true,
    'campaign': userProperties.campaign,
    'ad_source': userProperties.source,
    'ad_medium': userProperties.medium
  });
  await mixpanel.track('User_Acquired_From_Google_Ad');
}

关键注意事项

  • 归因数据仅在应用首次启动时完整写入,后续启动可能无法获取到初始来源,建议只在首次启动时执行一次读取逻辑
  • 若用户拒绝ATT权限(iOS)或关闭广告追踪,归因数据可能为空,需处理空值场景
  • 建议将Firebase的appInstanceId作为Mixpanel的用户ID,确保跨平台用户身份一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:00:53