(AppsFlyer / Unity IAP 包)AppsFlyer 应用内购买事件 - AppsFlyer 控制台中显示不正确的收入值

(AppsFlyer / Unity IAP package) AppsFlyer in-app purchase event - incorrect revenue values are shown in the AppsFlyer console

AppsFlyer 控制台显示的总收入明显大于实际收入。

当我们查看 CSV 导出的数据时,我们注意到很多 af_purchase 事件使用美元货币,但收入价值却大不相同 - 例如,如果应用内的价格为 1.99 美元,在某些情况下该值显示正确(1.99 美元),但在很多情况下我们看到的数据不正确(33、35、40、66、67 美元,很多不同的值)。

对于 IAP 集成,我们使用 Unity IAP 服务,对于 af_purchase 事件,我们发送的数据由 Unity IAP 服务方法 (PurchaseEventArgs class) 提供,我们阅读它的以下值:purchasedProduct.definition.idpurchasedProduct.metadata.localizedPricepurchasedProduct.metadata.isoCurrencyCode(分别用于产品 ID、收入和货币)。

我们没有以任何方式格式化此数据,收入值不包含逗号、货币符号或特殊字符,我们仅在货币转换后获得用户所在国家/地区的本地化收入值。我们在设备日志上检查了这些数据,数据显示正确,至少在我们国家是这样(即 1.99 美元变成 RSD 199)。

控制台中还有从其他几个国家/地区注册的具有正确收入和货币数据的事件。 我们知道,如果 none 包含在事件中,AppsFlyer 会自动将货币设置为美元。

Unity IAP 服务是否有可能无法在所有情况下为我们提供正确或完整的数据?我们不确定导致此问题的原因,但我们假设在某些情况下 ISO 货币代码字符串丢失或本地化价格因某种原因不正确。任何帮助将不胜感激。

我们正在使用 AppsFlyer SDK 5.4.1、Unity 2018.3.3f1 和应用内购买包 2.0.3。

我们最终找出了问题所在。在进一步分析 AppsFlyer 控制台中的事件后,我们得出结论,所有这些无效 af_purchase 事件都是由修改了应用程序版本或以其他方式破解应用内购买的用户造成的。

我们没有任何购买验证方法,所有那些被黑的应用内购买都有错误的收入随机值收据,可能没有货币,AppsFlyer 会自动将其分配给美元。

我们已经实现了 AppsFlyer 提供的应用内购买验证方法,该方法首先验证购买,如果一切正确,然后将事件发送到 AppsFlyer 控制台。通过这种方法,我们过滤掉了无效事件,它对我们清理控制台有很大帮助。