技術
約2分で読めます
Flutter×Adjustで課金収益を計測する方法
前回までの記事:
Flutterで課金してレシート検証まで成功したが、Adjustのレポートで金額が集計されない問題に遭遇した。結論から言うと、Adjust側の設定ではなくアプリ側から金額情報を送る必要がある。
Adjustに収益データを送る方法
Adjustのイベント送信時に setRevenue で金額を付与する。
import 'package:adjust_sdk/adjust.dart';
import 'package:adjust_sdk/adjust_event.dart';
void trackPurchase(String eventToken, double price, String currency) {
AdjustEvent event = AdjustEvent(eventToken);
event.setRevenue(price, currency); // これが必要
// オプション: トランザクションIDで重複排除
event.setTransactionId(transactionId);
Adjust.trackEvent(event);
}
ポイント
setRevenue(amount, currency)を呼ばないと、Adjustは金額を知る手段がない- Google Play / App Storeからの自動取得はない(ストア連携しても、イベント単位の収益は手動送信が前提)
- Adjust管理画面の「Revenue」カラムに反映されるのは、この値を送った場合のみ
- Adjust管理画面のイベント設定に金額を設定する場所はない。あくまでSDKから送る設計
レシート検証成功のタイミングで、購入商品の価格を setRevenue で送れば集計できるようになる。
テスト環境から本番環境への移行
Adjustのテスト環境→本番環境の移行は、SDK初期化時の設定変更で行う。
import 'package:adjust_sdk/adjust.dart';
import 'package:adjust_sdk/adjust_config.dart';
AdjustConfig config = AdjustConfig(
'YOUR_APP_TOKEN',
AdjustEnvironment.production, // sandbox → production に変更
);
// Sandboxではログ出力してたならオフに
// config.logLevel = AdjustLogLevel.verbose; // 本番では削除 or suppress
Adjust.initSdk(config);
移行時の注意点
AdjustEnvironment.productionに変更するだけで、データは本番ダッシュボードに流れる- アプリトークン・イベントトークンは同じ(テスト/本番で変わらない)
- Adjust管理画面で「Sandbox」フィルタを外せば本番データが見える
- Google Play内部テスト/クローズドテストでも、productionにすれば本番データとして記録される
- 管理画面側での「本番移行」操作は不要
一般的には、ストア本番リリース時に AdjustEnvironment を production に切り替える運用になる。ビルド時のフラグなどで環境を切り替えればOK。