概要
Firebase の収益表示において、通常数ドルのところ数百ドルの収益が計上された
Store Connect 上の売上は通常通りで、売上乖離について調査した結果を記録
発生事象
- Firebase Analytics のRevenueが1日だけ急上昇している
- AnalyticsEventPurchase のイベント回数は1〜2回程度で異常なし
- Store Connect の売上は正常
原因
通貨コードを端末ロケール依存で送信していたため、
JPY 価格が USD として Firebase に解釈されていた・・
let currencyCode = Locale.current.currency?.identifier ?? "JPY"
AnalyticsService.shared.logPurchase(
transactionId: transactionId,
productId: productId,
productType: productTypeForPurchase,
price: priceForPurchase,
currency: currencyCode
)
price = 800
currency = "USD"
→ Firebase 上では $800 として集計された
対応内容
日本でしか配信していないので、通貨コードを固定値に変更すれば解決です
let currencyCode = "JPY"
海外でも配信している場合はproductから取得すれば安心ぽいですが、試してはないです
let price = NSDecimalNumber(decimal: product.price).doubleValue
let currency = product.priceFormatStyle.currencyCode
補足
Firebase の過去データは修正不可なので注意が必要です!
(本当に800ドルなら良かったんですけどね)
参考
