Skip to main content
LLM BlueprintはLLM clientをラップし、完了した各呼び出しのinput、output、total token countsを含むusage eventをDodo Paymentsに送信します。meterがこれらのカウントを合計するため、各顧客が使用したtokenに対して請求できます。Blueprintは@dodopayments/ingestion-blueprints npm packageに含まれています(createLLMTracker())。

Quick Start

SDKをインストールし、meterを作成して、LLM clientをラップします。

API Reference - Events Ingestion

usage eventを受信するAPI endpointです。

API Reference - Meters

請求用のmeterを作成して設定します。

Usage-Based Billing Guide

meterを使ったusage-based billingを最初から最後まで設定します。
SaaS app、AI chatbot、コンテンツ生成tool、その他usageベースで請求するLLM-powered applicationで使用できます。

クイックスタート

token usageを追跡するには、packageをインストールし、meterを作成して、LLM clientをラップします。
1

Install the SDK

Dodo Payments Ingestion Blueprints packageをインストールします:
使用するLLM providerのSDKもインストールします。たとえば、openai、@anthropic-ai/sdk、groq-sdk、@google/genai、またはaiと@ai-sdk/googleです。
2

Get Your API Keys

2つのAPI keyが必要です:
  • Dodo Payments API key: Dodo Payments dashboardのDeveloper → API Keysで作成し、DODO_PAYMENTS_API_KEYに保存します。構築中はtest mode keyを使用してください。test mode keyはtest_modeでのみ機能します。
  • LLM provider API key: OpenAI、Anthropic、Groq、OpenRouter、Googleなど、呼び出すproviderのkeyです。例ではOPENAI_API_KEYなどのvariableから読み取ります。
API keyはenvironment variableに保存してください。version controlにcommitしないでください。
3

Create a Meter in Dodo Payments

usageを追跡する前にmeterを作成します:
  1. Dodo Payments dashboardでProducts → Metersに移動します。
  2. Create Meterをクリックします。
  3. meterを設定します:
    • Meter Name: LLM Token Usageなどの説明的な名前。
    • Event Name: llm.chat_completionなどの一意なevent identifier。
    • Aggregation Type: token countを合計するSum。
    • Over Property: 請求対象とするtoken count:
      • inputTokens: input(prompt)token。
      • outputTokens: output(completion)token。modelが報告する場合はreasoning tokenを含みます。
      • totalTokens: inputとoutput tokenの合計。
    • Measurement Unit: 請求書に表示する単位。たとえばtokensです。
  4. Create Meterをクリックします。
ここで設定するEvent Nameは、SDKに渡すeventNameと完全に一致している必要があります(大文字と小文字を区別します)。
詳しい手順については、Usage-Based Billing Guideを参照してください。
4

Track Token Usage

trackerを作成し、LLM clientをラップして、通常どおりclientを呼び出します:
ラップしたclientを通じて完了した各呼び出しは、billingのためにtoken countを含むusage eventをDodo Paymentsへ送信するようになります。

設定

トラッカー設定

application startup時にtrackerを1回作成し、すべての顧客で再利用します。createLLMTracker()はこれらのoptionを受け取り、apiKeyまたはeventNameがmissingまたはemptyの場合はerrorをthrowします:
string
必須
Dodo PaymentsのAPIキー。API Keys pageから取得できます。
string
trackerのenvironment modeです:
  • test_mode: developmentとtesting用。これがdefaultです。
  • live_mode: production用。
Dodo Payments SDKsは代わりにlive_modeをdefaultにするため、productionではlive_modeを明示的に設定してください。
development中はtest_modeを使用し、test trafficがlive usage eventを作成しないようにします。
string
必須
meterをtriggerするevent nameです。Dodo Payments meterのEvent Nameと完全に一致している必要があります(大文字と小文字を区別します)。
このevent nameによって、追跡したusageがbilling calculationに使用する正しいmeterに紐付けられます。
wrap()以外に、trackerにはtrack(response, customerId, metadata)もあります。これはすでに取得したresponseからusageを記録します。またhealthCheck()は、Dodo Payments APIに接続できる場合にtrueを返します。

Wrapper Configuration

wrap()に次のparameterを渡します:
object
必須
OpenAI、Anthropic、Groq、Google GenAI clientなどのLLM client instance、または{ generateText }などのAI SDK functionを保持するobjectです。
string
必須
請求対象の顧客のDodo Payments customer IDです。cus_で始まります。
各userのDodo Payments customer IDをuser recordとともに保存し、ここに渡してください。application独自のuser IDはDodo Payments customerとは異なります。
object
各tracking eventに付加するoptionalな追加dataです。filteringとanalysisに使用できます。各valueはstring、number、またはbooleanである必要があります。inputTokens、outputTokens、totalTokens、またはmodelという名前のkeyは、追跡対象のvalueを置き換えます。

完全な設定例

この例ではAI SDK callを追跡し、provider metadataをeventに付加します:
Automatic Tracking: wrapperはproviderのresponseを変更せずに返すため、codeは元のprovider SDKを使用する場合と同じままです。responseを返す前にusage eventを送信するため、各呼び出しはingestion requestを待機します。また、provider callが成功していてもingestion requestが失敗すると、ラップされたcallはthrowします。streaming responseには返却object上の最終token countが含まれないため、wrapperは追跡しません。

対応provider

trackerは次のproviderとSDKのresponse formatからtoken countを読み取ります:
多くのLLM providerに1つのinterfaceを提供するVercel AI SDKでusageを追跡します。
Tracked Metrics:
  • inputTokens → inputTokens
  • outputTokens + reasoningTokens → outputTokens
  • totalTokens → totalTokens
  • Model name: AI SDK resultにはtop-level model fieldがないため、trackerはunknownを記録します。modelを記録するには、この例のようにwrapper metadataでmodelとして渡してください。
AI SDK経由でreasoning-capable model(thinking modeのGoogle Gemini 2.5 Flashなど)を使用すると、trackerは報告されたreasoning tokenをoutputTokensに加算します。
OpenRouterのunified APIを通じて200以上のmodelのtoken usageを追跡します。
Tracked Metrics:
  • prompt_tokens → inputTokens
  • completion_tokens → outputTokens
  • total_tokens → totalTokens
  • Model name
OpenRouterでは、単一のAPIを通じてOpenAI、Anthropic、Google、Metaなどのproviderのmodelにアクセスできます。
OpenAIのGPT modelのtoken usageを追跡します。
Tracked Metrics:
  • prompt_tokens → inputTokens
  • completion_tokens → outputTokens
  • total_tokens → totalTokens
  • Model name
AnthropicのClaude modelのtoken usageを追跡します。
Tracked Metrics:
  • input_tokens → inputTokens
  • output_tokens → outputTokens
  • totalTokens。input_tokens + output_tokensとして計算されます
  • Model name
Groqが提供するmodelのtoken usageを追跡します。
Tracked Metrics:
  • prompt_tokens → inputTokens
  • completion_tokens → outputTokens
  • total_tokens → totalTokens
  • Model name
Google GenAI SDKを通じてGoogleのGemini modelのtoken usageを追跡します。
Tracked Metrics:
  • promptTokenCount → inputTokens
  • candidatesTokenCount + thoughtsTokenCount → outputTokens
  • totalTokenCount → totalTokens
  • modelVersionから取得したmodel version
Gemini Thinking Mode: Gemini 2.5 Proなど、回答前に思考するGemini modelでは、trackerがthoughtsTokenCount(reasoning token)をoutputTokensに加算します。これにより、eventはmodelが生成したoutput全体を反映します。

高度な使用方法

複数provider

LLM providerごとにusageを個別に追跡するには、providerごとにtrackerを1つ作成します:
providerごとに異なるevent nameを使用し、それぞれにmeterを設定してusageを個別に追跡します。

Express.js API Integration

このExpress.js APIは、requestを行った顧客の各chat completionを追跡します。簡潔にするため、request bodyからuserIdを読み取ります。userIdはuserのDodo Payments customer IDである必要があります。productionでは、request bodyを信頼するのではなく、authenticated sessionから読み取ってください。

追跡される内容

追跡された各callは、次のstructureのusage eventを1つDodo Paymentsに送信します:

イベントフィールド

string
このeventの一意なidentifierです。SDKが生成します。Format: llm_[timestamp]_[random]。timestampはmilliseconds単位の時刻、randomは6個のrandom characterです。
string
clientをラップしたときに渡したcustomer IDです。Dodo Paymentsはこの顧客に請求します。
string
meterをtriggerするevent nameです。tracker configurationから取得されます。
string
ISO 8601 timestampです。providerがresponseを返した後、trackerがeventを送信する時点で設定されます。
object
トークン使用量および追加のトラッキングデータ:
  • inputTokens: 使用したinput(prompt)tokenの数。
  • outputTokens: 使用したoutput(completion)tokenの数。該当する場合はreasoning tokenを含みます。
  • totalTokens: total token(input + output)。
  • model: 使用したLLM model。たとえばgpt-4です。responseで指定されていない場合はunknownになります。
  • provider: wrapper metadataに含めた場合のLLM provider。
  • clientをラップしたときに指定したcustom metadata。
Reasoning Tokens: reasoning capabilityを持つmodelでは、outputTokensにcompletion tokenとreasoning tokenの両方が含まれます。
Dodo Payments meterはmetadata fields(通常はinputTokens、outputTokens、またはtotalTokens)を使用してusageとbillingを計算します。
最終更新日 2026年9月26日