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

Facebook Android SDK自动记录事件缺失货币参数,如何配置解决?

问题描述

我已按照Facebook文档实现Android版Facebook SDK,并开启事件自动日志功能,代码如下:

FacebookSdk.setAdvertiserIDCollectionEnabled(true);
FacebookSdk.setAutoLogAppEventsEnabled(true);
FacebookSdk.setAutoInitEnabled(true);

当前使用依赖为com.facebook.android:facebook-core:16.1.3,应用安装、激活的自动事件追踪及手动记录事件均正常工作。但在事件管理器的诊断窗口中,出现以下警告:

Missing fb_mobile_add_to_cart Currency Parameter 您的一个或多个fb_mobile_add_to_cart事件缺少货币参数,这可能影响广告支出回报计算。
Missing fb_mobile_purchase Currency Parameter 您的一个或多个fb_mobile_purchase事件缺少货币参数,这可能影响广告支出回报计算。
Missing RecurringSubscriptionPayment Currency Parameter 您的一个或多个RecurringSubscriptionPayment事件缺少货币参数,这可能影响广告支出回报计算。
Missing fb_mobile_complete_registration Currency Parameter 您的一个或多个fb_mobile_complete_registration事件缺少货币参数,这可能影响广告支出回报计算。
Missing StartTrial Currency Parameter 您的一个或多个StartTrial事件缺少货币参数,这可能影响广告支出回报计算。
Missing Subscribe Currency Parameter 您的一个或多个Subscribe事件缺少货币参数,这可能影响广告支出回报计算。

(警告截图示例:Example of error)

请问我是否遗漏了某些配置,以提供货币参数让Facebook正确自动记录应用的购买事件?


解决方案

这些警告和自动日志配置无关,问题出在你手动记录的交易类事件上。Facebook自动日志仅负责安装、激活这类基础事件,fb_mobile_add_to_cart、fb_mobile_purchase、订阅相关事件都需要手动调用SDK接口并传入完整参数。

具体修复方式:

  • 找到项目中手动触发这些事件的代码,调用AppEventsLogger.logEvent()时,必须传入包含货币和金额的参数Bundle:
    // 以购买事件为例
    Bundle eventParams = new Bundle();
    // 传入货币代码,需符合ISO 4217标准,如"CNY"、"USD"
    eventParams.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "CNY");
    // 传入交易金额
    eventParams.putDouble(AppEventsConstants.EVENT_PARAM_VALUE, 199.9);
    AppEventsLogger.newLogger(getApplicationContext()).logEvent(AppEventsConstants.EVENT_NAME_PURCHASE, eventParams);
    
  • 对于Subscribe、StartTrial这类订阅事件,同样要在参数中补充EVENT_PARAM_CURRENCY和对应金额参数,参数键需遵循Facebook官方定义的标准事件参数规范。
  • 如果是第三方支付SDK自动触发的Facebook事件,需要在第三方工具的配置面板中补充货币参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 12:17:23