このチュートリアルでは、バックエンドとフロントエンドの両方を備えた完全な動作アプリケーションを提供します。チャットアプリはGoogleのGemini AIを使用し、手動でのカウントなしで自動的にトークン使用を追跡します。
- Google Geminiを使用してAI会話を駆動する(AI SDK)
- 自動的にトークン使用を追跡する(手動コードなし)
- 実際のトークン消費に基づいて顧客に請求する
- 美しいチャットインターフェースを含む

構築するもの
まず、私たちのAIチャットサービスを理解しましょう:- サービス: Google Geminiを使用したAI駆動のチャット(AI SDK)
- 価格モデル: トークンごとの支払い(1,000トークンあたり$0.01)
- 無料枠: 顧客ごとに月10,000トークンの無料提供
- 機能: 会話履歴、自動トークントラッキング
始める前に、次のものを用意してください:
- Dodo Paymentsアカウント
- Google AI APIキー(aistudioから取得)
- Node.js v16+がインストールされていること
ステップ1: 使用メーターを作成する
Dodo PaymentsダッシュボードでAIトークン使用を追跡するメーターを作成します。メーターセクションを開く
- Dodo Paymentsダッシュボードにログインします
- 左のサイドバーで「製品」をクリックします
- メーターをクリックします
- メーターを作成ボタンをクリックします

基本的なメーター情報を入力する
今、私たちのAIチャットサービスの具体的な詳細を入力します:メーター名 →
AI Token Usage Meter説明 → Tracks token consumption from AI chat conversations using AI SDKイベント名 → ai_chat_usageトークンのカウント方法を設定する
集計の設定(メーターがイベントをカウントする方法):集計タイプ: ドロップダウンから合計を選択集計対象: タイプ →
totalTokens測定単位: タイプ → tokens“合計”を使用しているのは、複数のチャットメッセージにわたって消費されたすべてのトークンを合計したいためです。SDKは各イベントで自動的に
totalTokens を送信します。ステップ2: APIキーを取得する
アプリを構築する前に、必要なAPIキーを集めましょう。Dodo Payments APIキーを取得する
- Dodo Paymentsダッシュボードで、開発者 → APIキーに移動します。
- APIキーを作成をクリックします。
- APIキーをコピーします - それは
test_abc123...のように見えます。
このAPIキーを保存してください - 後で私たちの
.env ファイルに追加します。Google AI APIキーを取得する
- aistudio.google.comを訪問します
- APIキーを取得をクリックします
- 新しいAPIキーを作成するか、既存のものを使用します
- キーをコピーします
このキーを安全に保管してください - 私たちの
.env ファイルにも追加します。ステップ3: 請求製品を作成する
次に、価格を定義する製品を作成する必要があります(1,000トークンあたり$0.01、10,000トークンの無料提供)。これにより、メーターが実際の請求に接続されます。製品に移動する
- Dodo Paymentsダッシュボードで、左のサイドバーの製品をクリックします
- 製品を作成をクリックします
- 製品タイプとして使用ベースを選択します
製品の詳細を入力する
必要な詳細を入力します:製品名: →
AI Chat Service説明: → AI-powered chat service with automatic token-based billing製品画像: 関連する画像をアップロードしますこれらは顧客の請求書に表示されるため、明確でプロフェッショナルにしてください。
メーターを接続する
メーターを接続する前に、製品の価格タイプとして使用ベースの請求を選択していることを確認してください。さらに、固定価格を
0 に設定して、顧客が使用量に基づいてのみ請求されるようにし、基本料金は発生しないようにします。次に、先ほど作成したメーターをリンクします:- 関連メーターセクションまでスクロールします
- メーターを追加をクリックします
- ドロップダウンから**「AIトークン使用メーター」**(先ほど作成したもの)を選択します
- 製品設定に表示されていることを確認します
メーターがこの製品に正常に接続されました。
価格を設定する
ここでビジネスモデルを定義します:単位あたりの価格: 入力 → 
0.00001 (これは1,000トークンあたり0.00001です)無料の閾値: 入力 → 10000 (顧客は月に10,000トークンを無料で受け取ります)
ステップ4: テスト購入を行う
アプリを構築する前に、購入を行ってテスト顧客を作成しましょう。支払いリンクを取得する
- Dodo Paymentsダッシュボードで、製品に移動します
- 「AIチャットサービス」製品を見つけます
- 製品の隣にある共有ボタンをクリックします
- 表示される支払いリンクをコピーします
ステップ5: チャットアプリケーションを構築する
請求設定が完了し、テスト顧客が作成されました。自動トークントラッキングを備えたAIチャットアプリケーションを構築しましょう。TypeScriptを設定する
tsconfig.jsonを作成します:tsconfig.json
package.jsonを更新して、モジュールタイプとスクリプトを追加します:package.json
ステップ6: チャットインターフェースを追加する
さあ、美しいチャットインターフェースを追加して、完全な会話履歴を表示しましょう!public/index.htmlを作成します:
public/index.html
ステップ7: チャットアプリケーションをテストする
AIチャットアプリをテストし、請求が機能するか確認する時間です!すべてがエンドツーエンドで機能することを確認しましょう。サーバーを起動する
まず、すべてが設定されていることを確認します:次のように表示されるはずです:
.envファイルにすべてのAPIキーが含まれていることを確認します(ステップ2から)- 開発サーバーを起動します:
サーバーが実行中です!チャットの時間です。
チャットインターフェースを開く
- ブラウザを開きます。
http://localhost:3000に移動します。- 美しいチャットインターフェースが表示されるはずです。
CUSTOMER_IDをserver.ts内の実際のテスト顧客IDに更新することを忘れないでください。最初の会話をする
テストしてみましょう!次のメッセージを試してください:
- 「人工知能とは何ですか?」
- 「機械学習はどのように機能しますか?」
- 「ニューラルネットワークを説明できますか?」
AIが応答し、トークンカウントが表示されている場合、アプリは正常に動作しています!
Dodo Paymentsダッシュボードを確認する
イベントが受信されているか確認しましょう:
- Dodo Paymentsダッシュボードを開きます
- 使用請求 → AIトークン使用メーターに移動します
- イベントタブをクリックします
- チャットイベントがリストされているはずです
- イベント名:
ai_chat_usage - 顧客ID: あなたのテスト顧客ID

送信した各メッセージに対して1つのイベントが表示されるはずです!
トークンカウントを確認する
さらにメッセージを送信し、トークン集計が機能しているか確認しましょう:
- メーターで、顧客タブに移動します
- テスト顧客を見つけます
- 「消費単位」列を確認します - 使用されたトークンの合計が表示されるはずです

メーターはすべての
totalTokens値を自動的に合計しています!トラブルシューティング
一般的な問題とその解決策:ダッシュボードにイベントが表示されない
ダッシュボードにイベントが表示されない
考えられる原因:
- イベント名がメーター設定と正確に一致しない
- 顧客IDがアカウントに存在しない
- APIキーが無効または期限切れ
- ネットワーク接続の問題
- イベント名がメーター設定と正確に一致することを確認します(大文字と小文字を区別します:
ai_chat_usage) - 顧客IDがDodo Paymentsダッシュボードに存在することを確認します。
- 簡単なAPI呼び出しでAPIキーをテストします。
- サーバーログでエラーメッセージを確認します。
トークンカウントがゼロを表示する
トークンカウントがゼロを表示する
考えられる原因:
- モデルが使用情報を返さない
- SDKのバージョンが不正確
- モデルが使用を返すかテストします:
- 最新のBlueprints SDKに更新します:
npm install @dodopayments/ingestion-blueprints@latest
APIキー無効エラー
APIキー無効エラー
考えられる原因:
- 環境に対して間違ったAPIキー
.envファイル内の余分なスペースや引用符
- テストキーが
test_で始まることを確認し、ライブキーがlive_で始まることを確認します。 .envファイル内のキーの周りの引用符を削除します。- 必要に応じて新しいキーを生成します。

