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

Flutter中如何将Google Ad广告系列归因至应用用户?

解决方案

一、通过Firebase SDK在Flutter中获取Google Ads归因信息

完全可以利用Firebase Analytics的能力实现需求——你已经关联了Firebase和Google Ads,归因数据会自动同步到Firebase中,只需在Flutter端捕获并留存即可:

  1. 集成依赖
    在Flutter项目的pubspec.yaml中添加核心依赖,执行flutter pub get完成安装:

    dependencies:
      firebase_core: ^2.24.2
      firebase_analytics: ^10.7.2
      shared_preferences: ^2.2.2
    
  2. 捕获首次启动的归因数据
    Google Ads的广告系列、来源、媒介等归因数据仅在应用首次打开会话中有效,需在启动时立即捕获:

    • 用SharedPreferences标记首次启动状态,避免重复获取;
    • 通过firebase_analytics调用API,获取Firebase自动收集的归因属性,核心字段包括campaign、source、medium、google_ads_campaign_id、google_ads_ad_group_id等。

    示例代码:

    import 'package:firebase_analytics/firebase_analytics.dart';
    import 'package:shared_preferences/shared_preferences.dart';
    import 'dart:convert';
    
    Future<void> captureAttributionData() async {
      final prefs = await SharedPreferences.getInstance();
      final isFirstLaunch = prefs.getBool('is_first_launch') ?? true;
    
      if (isFirstLaunch) {
        final analytics = FirebaseAnalytics.instance;
        // 获取指定的归因属性
        final attributionProps = await analytics.getUserProperties(
          keys: [
            'campaign',
            'source',
            'medium',
            'google_ads_campaign_id',
            'google_ads_ad_group_id',
          ],
        );
    
        // 暂存数据到本地,等用户认证后关联到账号
        await prefs.setString('attribution_data', jsonEncode(attributionProps));
        await prefs.setBool('is_first_launch', false);
      }
    }
    
  3. 关联用户与归因数据
    当用户完成Firebase认证(如邮箱/Google登录)后,取出本地暂存的归因数据,将其与用户UID一同写入后端数据库(如Firestore或自建API):

    import 'package:firebase_auth/firebase_auth.dart';
    
    Future<void> linkAttributionToUser() async {
      final currentUser = FirebaseAuth.instance.currentUser;
      if (currentUser == null) return;
    
      final prefs = await SharedPreferences.getInstance();
      final attributionJson = prefs.getString('attribution_data');
      if (attributionJson == null) return;
    
      final attributionData = jsonDecode(attributionJson);
      // 写入后端数据库示例(以Firestore为例)
      // FirebaseFirestore.instance.collection('users').doc(currentUser.uid).set({
      //   'attribution_info': attributionData,
      //   'created_at': FieldValue.serverTimestamp(),
      // }, SetOptions(merge: true));
    }
    
  4. 关键注意事项

    • iOS需在Info.plist中添加NSUserTrackingUsageDescription字段,申请广告追踪权限,确保归因数据准确;
    • Android需确认AndroidManifest.xml中已启用Firebase Analytics的自动收集配置;
    • 归因数据仅在首次启动会话中有效,必须及时捕获留存,后续会话无法再获取首次安装的归因信息。

二、其他跨平台归因方案

如果需要更精细化的归因能力(如多渠道对比、转化回传、防作弊验证等),可以考虑第三方工具:

  • Adjust:支持Flutter跨平台集成,提供全渠道归因分析,可直接对接Google Ads获取广告系列详情,支持将用户ID与归因数据绑定同步到后端;
  • AppsFlyer:同样适配Flutter,具备深度归因追踪能力,与Google Ads集成完善,支持跨设备用户追踪;
  • Branch:主打跨渠道链接归因,适合有分享裂变场景的应用,也能对接Google Ads获取广告来源信息。

这些工具的优势是提供更丰富的分析维度和更精准的归因结果,但需要额外集成SDK并完成平台侧配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 23:30:19