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

如何在Expo构建的React Native应用中集成Facebook Ads跟踪ID

Expo构建的React Native应用集成Facebook Ads安装/启动追踪操作步骤

前置准备

  • 先在Meta开发者平台创建对应应用条目,提前拿到三个核心参数:Facebook App ID、Facebook Client Token、广告事件数据集ID(即需求中提到的Facebook Ads跟踪ID)
  • 确认项目Expo SDK版本在49及以上,低版本会存在expo-facebook模块兼容性问题
  • 提前整理好两端基础信息:iOS端应用Bundle ID,安卓端应用包名、正式签名的密钥哈希,后续平台配置需要用到

具体操作流程

1. 安装所需依赖

直接安装Expo官方维护的适配模块,不要使用第三方社区包,避免版本不兼容问题:

npx expo install expo-facebook expo-tracking-transparency

其中expo-tracking-transparency用来处理iOS 14+系统要求的应用追踪透明度(ATT)权限申请,缺少这个配置iOS端无法正常获取IDFA,广告转化匹配会直接失效。

2. 配置Expo项目原生参数

打开项目根目录下的app.json或者app.config.js,添加对应插件配置和权限声明,参考配置如下:

{
  "expo": {
    "plugins": [
      [
        "expo-facebook",
        {
          "facebookAppId": "你拿到的Facebook App ID",
          "facebookClientToken": "你拿到的Facebook Client Token",
          "facebookDisplayName": "你的应用对外显示名称",
          "iosAdvertiserIDCollectionEnabled": true,
          "androidAdvertiserIDCollectionEnabled": true,
          "autoLogAppEventsEnabled": true
        }
      ],
      [
        "expo-tracking-transparency",
        {
          "userTrackingPermission": "需要获取追踪权限用于统计广告转化效果,优化广告推荐体验"
        }
      ]
    ],
    "ios": {
      "bundleIdentifier": "你的iOS应用Bundle ID",
      "infoPlist": {
        "NSUserTrackingUsageDescription": "需要获取追踪权限用于统计广告转化效果",
        "FacebookAutoLogAppEventsEnabled": true,
        "FacebookAdvertiserIDCollectionEnabled": true
      }
    },
    "android": {
      "package": "你的安卓应用包名",
      "permissions": ["com.google.android.gms.permission.AD_ID"]
    }
  }
}

配置项里的autoLogAppEventsEnabled设为true后,Facebook SDK会自动上报应用安装、首次启动、应用激活三类核心事件,不需要额外手动写埋点逻辑。

3. 入口文件初始化SDK与权限申请

在应用根入口文件(一般是App.js/App.tsx)中,添加SDK初始化和权限申请逻辑,参考代码:

import { useEffect } from 'react';
import { requestTrackingPermissionsAsync } from 'expo-tracking-transparency';
import * as Facebook from 'expo-facebook';

export default function App() {
  useEffect(() => {
    const initFbTrack = async () => {
      // 先向用户申请ATT追踪权限
      const trackPerm = await requestTrackingPermissionsAsync();
      // 初始化Facebook SDK
      await Facebook.initializeAsync({
        appId: '你的Facebook App ID',
        clientToken: '你的Facebook Client Token',
        version: 'v18.0' // 对应你在Meta后台使用的Graph API版本即可
      });
      // 用户同意追踪后开启广告标识采集
      if (trackPerm.status === 'granted') {
        await Facebook.setAdvertiserTrackingEnabled(true);
      }
      // 主动触发一次应用激活事件上报,补全自动上报的覆盖缺口
      await Facebook.logEventAsync(Facebook.AppEvents.LogEventName.ACTIVATED_APP);
    };
    initFbTrack();
  }, []);

  // 保留原有应用根组件渲染逻辑
  return <>{/* 你的应用页面路由等内容 */}</>
}

4. 构建原生包完成平台配置

Facebook SDK是原生依赖,Expo Go环境无法运行,需要用EAS构建开发包或者正式包测试:

  • 执行eas build --profile development --platform ios,android构建开发测试包,安装到测试设备
  • 回到Meta开发者平台,在应用配置页填写iOS Bundle ID、安卓包名,以及安卓签名密钥哈希,没有填对哈希的话安卓端事件会被拦截无法上报

生效验证方法

  • 打开Meta事件管理器的测试事件模块,输入测试设备的广告标识(安卓为GAID,iOS为IDFA)
  • 冷启动测试设备上安装的应用,查看事件管理器后台是否能收到fb_mobile_first_open(首次启动/安装)、fb_mobile_activate_app(应用启动)两类事件,能正常收到说明追踪链路已经打通
  • 可以用Meta广告后台生成的测试广告链接模拟点击,跳转应用商店后安装启动应用,验证是否能匹配到对应的广告点击来源

注意事项

  • 安卓13及以上系统必须配置com.google.android.gms.permission.AD_ID权限,否则无法获取安卓广告ID,转化匹配准确率会大幅下降
  • 所有涉及Facebook SDK的配置改动属于原生层改动,必须重新构建原生包才能生效,Expo OTA热更新无法推送这类变更
  • 用户拒绝ATT权限时不要强制开启追踪,否则提交App Store审核会被驳回
  • 后续如果需要追踪注册、付费等其他转化事件,直接调用Facebook.logEventAsync方法传入对应事件名和参数即可,不需要额外做配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 06:15:44