技術 約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。