Skip to main content

API Reference — Events Ingestion

Truy cập tài liệu API đầy đủ để nhập các sự kiện sử dụng và kiểm thử tương tác các request cũng như response nhập sự kiện.

API Reference — Meters Creation

Khám phá tài liệu API đầy đủ để tạo meter và kiểm thử tương tác các request cũng như response tạo meter.

Tạo một đồng hồ đo

Các đồng hồ đo xác định cách các sự kiện sử dụng của bạn được tổng hợp và đo lường cho mục đích thanh toán. Trước khi tạo một đồng hồ đo, hãy lập kế hoạch chiến lược theo dõi mức sử dụng của bạn:
  • Xác định các sự kiện sử dụng mà bạn muốn theo dõi
  • Xác định cách các sự kiện nên được tổng hợp (đếm, tổng, v.v.)
  • Định nghĩa bất kỳ yêu cầu lọc nào cho các trường hợp sử dụng cụ thể

Quy trình tạo đồng hồ đo từng bước

Làm theo hướng dẫn này để thiết lập usage meter của bạn:
1

Configure Basic Information

Thiết lập các thông tin cơ bản cho đồng hồ đo của bạn.
string
bắt buộc
Tên rõ ràng, có tính mô tả, xác định nội dung mà meter này theo dõi.Ví dụ: “Tokens”, “API Calls”, “Storage Usage”, “Compute Hours”
string
Giải thích chi tiết về nội dung mà meter này đo lường.Ví dụ: “Đếm mỗi yêu cầu POST /v1/orders do khách hàng thực hiện”
string
bắt buộc
Mã định danh sự kiện sẽ kích hoạt meter này.Ví dụ: “token”, “api.call”, “storage.usage”, “compute.session”
Tên sự kiện phải khớp chính xác với những gì bạn gửi trong các sự kiện sử dụng của mình. Tên sự kiện phân biệt chữ hoa chữ thường.
2

Configure Aggregation Settings

Xác định cách đồng hồ đo tính toán việc sử dụng từ các sự kiện của bạn.
string
bắt buộc
Chọn cách sự kiện nên được tổng hợp:
Đếm số lượng sự kiện đã nhận.Trường hợp sử dụng: Các cuộc gọi API, lượt xem trang, tải tệpPhép tính: Tổng số sự kiện
string
Tên thuộc tính từ siêu dữ liệu sự kiện để tổng hợp trên đó.
Trường này bắt buộc khi sử dụng các loại tổng hợp Sum, Max hoặc Last.
string
bắt buộc
Nhãn đơn vị dùng để hiển thị trong báo cáo và tính phí.Ví dụ: “calls”, “GB”, “hours”, “tokens”
3

Configure Event Filtering (Optional)

Thiết lập tiêu chí để kiểm soát sự kiện nào được bao gồm trong đồng hồ đo.
Lọc sự kiện cho phép bạn tạo ra các quy tắc tinh vi quyết định sự kiện nào góp phần vào việc tính toán sử dụng. Điều này hữu ích để loại trừ sự kiện thử nghiệm, lọc theo tầng người dùng hoặc tập trung vào hành động cụ thể.
Kích hoạt lọc sự kiệnBật Kích hoạt lọc sự kiện để kích hoạt xử lý sự kiện có điều kiện.Chọn logic lọcChọn cách nhiều điều kiện được đánh giá:
Tất cả điều kiện phải đúng để một sự kiện được tính. Dùng khi bạn cần sự kiện đáp ứng nhiều tiêu chí nghiêm ngặt cùng lúc.Ví dụ: Đếm các cuộc gọi API nơi user_tier = "premium" AND endpoint = "/api/v2/users"
Thiết lập điều kiện lọc
1

Add Condition

Nhấn Add condition để tạo quy tắc bộ lọc mới.
2

Configure Property Key

Chỉ định tên thuộc tính từ siêu dữ liệu sự kiện của bạn.
3

Select Comparator

Chọn từ các toán tử hiện có:
  • equals — Khớp chính xác
  • not_equals — Bộ lọc loại trừ
  • greater_than — So sánh số
  • greater_than_or_equals — So sánh số (bao gồm cả giá trị biên)
  • less_than — So sánh số
  • less_than_or_equals — So sánh số (bao gồm cả giá trị biên)
  • contains — Chuỗi chứa chuỗi con
  • does_not_contain — Bộ lọc loại trừ chuỗi
4

Set Comparison Value

Đặt giá trị mục tiêu để so sánh.
5

Add Groups

Dùng Add Group để tạo nhóm điều kiện bổ sung cho logic phức tạp.
Các thuộc tính được lọc phải có trong siêu dữ liệu sự kiện để các điều kiện hoạt động chính xác. Các sự kiện thiếu thuộc tính bắt buộc sẽ bị loại khỏi việc tính toán.
4

Create Meter

Xem lại cấu hình meter của bạn và nhấp vào Create Meter.
Meter của bạn hiện đã sẵn sàng để nhận và tổng hợp các sự kiện sử dụng.

Liên kết Meter trong Product

Sau khi tạo meter, bạn cần liên kết meter đó với một product để bật tính phí dựa trên mức sử dụng. Quy trình này kết nối dữ liệu sử dụng từ meter với các quy tắc định giá để tính phí cho khách hàng. Việc liên kết meter với product thiết lập mối liên hệ giữa theo dõi mức sử dụng và tính phí:
  • Product xác định các quy tắc định giá và hành vi tính phí
  • Meter cung cấp dữ liệu sử dụng cho các phép tính tính phí
  • Có thể liên kết nhiều meter với một product để xử lý các tình huống tính phí phức tạp

Quy trình cấu hình Product

Chuyển đổi dữ liệu sử dụng thành các khoản phí có thể tính bằng cách cấu hình đúng các cài đặt product:
1

Choose Usage-Based Billing Product Type

Đi đến trang tạo hoặc chỉnh sửa product, rồi chọn Usage Based Billing làm loại định giá.
2

Select Associated Meter

Nhấp vào Associated Meters để mở bảng chọn meter.Bảng này cho phép bạn cấu hình các meter sẽ theo dõi mức sử dụng cho product này.
3

Add Your Meter

Trong bảng chọn meter:
  1. Nhấp vào Add Meters để xem các meter hiện có
  2. Chọn meter bạn đã tạo từ danh sách thả xuống
  3. Meter đã chọn sẽ xuất hiện trong cấu hình product
4

Configure Price Per Unit

Thiết lập giá cho từng đơn vị sử dụng được meter theo dõi.
number
bắt buộc
Xác định số tiền cần tính cho mỗi đơn vị được meter đo lường.Ví dụ: Thiết lập $0.50 cho mỗi đơn vị có nghĩa là:
  • Đã sử dụng 1.000 đơn vị = 1.000 × $0.50 = tính phí $500.00
  • Đã sử dụng 500 đơn vị = 500 × $0.50 = tính phí $250.00
  • Đã sử dụng 100 đơn vị = 100 × $0.50 = tính phí $50.00
5

Set Free Threshold (Optional)

Cấu hình hạn mức sử dụng miễn phí trước khi bắt đầu tính phí.
number
Số đơn vị khách hàng có thể sử dụng miễn phí trước khi bắt đầu tính mức sử dụng trả phí.Cách hoạt động:
  • Hạn mức miễn phí: 100 đơn vị
  • Giá mỗi đơn vị: $0.50
  • Mức sử dụng của khách hàng: 250 đơn vị
  • Phép tính: (250 - 100) × $0.50 = tính phí $75.00
Hạn mức miễn phí phù hợp với mô hình freemium, giai đoạn dùng thử hoặc cung cấp cho khách hàng một hạn mức cơ bản đã bao gồm trong gói.
Hạn mức miễn phí được áp dụng cho từng chu kỳ tính phí, cung cấp cho khách hàng hạn mức mới mỗi tháng hoặc theo lịch tính phí của bạn.
6

Save Configuration

Xem lại cấu hình meter và định giá, sau đó nhấp vào Save Changes để hoàn tất thiết lập.
Product của bạn hiện đã được cấu hình để tính phí dựa trên mức sử dụng và sẽ tự động tính phí khách hàng dựa trên mức tiêu thụ được đo lường.
Điều gì xảy ra tiếp theo:
  • Các sự kiện sử dụng được gửi đến meter sẽ được theo dõi và tổng hợp
  • Các phép tính tính phí sẽ tự động áp dụng quy tắc định giá của bạn
  • Khách hàng sẽ bị tính phí dựa trên mức tiêu thụ thực tế trong mỗi chu kỳ tính phí
Bạn có thể thêm tối đa 50 meter cho mỗi product, cho phép theo dõi mức sử dụng phức tạp trên nhiều khía cạnh như API call, dung lượng lưu trữ, thời gian tính toán và các chỉ số tùy chỉnh.

Gửi sự kiện sử dụng

Sau khi cấu hình meter, bạn có thể bắt đầu gửi các sự kiện sử dụng từ ứng dụng để theo dõi mức sử dụng của khách hàng.

Cấu trúc sự kiện

Mỗi sự kiện sử dụng phải bao gồm các field bắt buộc sau:
string
bắt buộc
Mã định danh duy nhất cho sự kiện cụ thể này. Phải là duy nhất trên tất cả các sự kiện.
string
bắt buộc
Customer ID của Dodo Payments mà mức sử dụng này sẽ được ghi nhận cho.
string
bắt buộc
Tên sự kiện khớp với cấu hình meter của bạn. Tên sự kiện sẽ kích hoạt meter tương ứng.
string
Timestamp theo ISO 8601 cho thời điểm sự kiện xảy ra. Nếu không được cung cấp, giá trị mặc định là timestamp UTC hiện tại. Phải nằm trong khoảng 1 giờ trước và 5 phút sau — các timestamp ngoài khoảng này sẽ bị từ chối.
object
Các property bổ sung dùng để lọc và tổng hợp. Bao gồm mọi giá trị được tham chiếu trong điều kiện “Over Property” hoặc điều kiện filtering của meter.

Ví dụ về Usage Events API

Gửi các sự kiện sử dụng đến meter đã cấu hình bằng Events API:

Những điều quan trọng cần biết để nhập dữ liệu đáng tin cậy

Làm theo các phương pháp này để duy trì việc theo dõi mức sử dụng chính xác và bền vững trong production.
Sử dụng event_id mang tính xác định và idempotent. event_id phải là duy nhất trên tất cả các sự kiện và đóng vai trò là idempotency key. event_id được sử dụng lại sẽ bị xem là bản trùng lặp và không được đếm lần nữa, vì vậy các lần retry không bao giờ tính phí trùng. Tạo ID từ hành động thay vì một giá trị ngẫu nhiên, ví dụ `${customer_id}_${action}_${timestamp}`.
Gộp các sự kiện, tối đa 1.000 sự kiện cho mỗi request. Endpoint /events/ingest áp dụng giới hạn cứng 1.000 sự kiện cho mỗi request. Các batch lớn hơn sẽ bị từ chối, vì vậy hãy chia khối lượng lớn thành nhiều call. Với workload lớn, hãy đệm các sự kiện và gửi theo batch thay vì gửi một request cho mỗi sự kiện.
Retry với 5xx và 429, không retry các 4xx khác. Retry khi xảy ra lỗi server (5xx) và giới hạn tốc độ (429), sử dụng exponential backoff. Không retry lỗi validation 400/422 — payload không hợp lệ và sẽ luôn thất bại. Hãy sửa payload rồi gửi lại. Đưa các sự kiện vẫn thất bại sau các lần retry vào queue để không sự kiện nào bị mất.
Thiết lập timestamp một cách có chủ đích. Bỏ qua timestamp đối với các sự kiện real-time; giá trị này sẽ mặc định là timestamp UTC hiện tại. Thiết lập rõ ràng giá trị này (theo ISO 8601) cho các sự kiện bị trì hoãn hoặc gửi theo batch để mức sử dụng được ghi nhận vào đúng kỳ tính phí. Lưu ý rằng khoảng thời gian được chấp nhận khá hẹp: các sự kiện có timestamp quá 1 giờ trong quá khứ hoặc hơn 5 phút trong tương lai sẽ bị từ chối. Không hỗ trợ backfill dữ liệu lịch sử — hãy gửi các sự kiện đang được đệm trong vòng một giờ.
Gửi metadata dùng để tổng hợp dưới dạng số, không phải chuỗi. Mọi property được tham chiếu bởi Over Property của meter (Sum, Max, Last) phải có kiểu numeric — { "tokens": 150 }, không phải { "tokens": "150" }. Các giá trị chuỗi sẽ không được tổng hợp.

Phân tích tính phí dựa trên mức sử dụng

Theo dõi và phân tích dữ liệu tính phí dựa trên mức sử dụng bằng dashboard analytics toàn diện. Theo dõi mô hình tiêu thụ của khách hàng, hiệu suất meter và xu hướng tính phí để tối ưu chiến lược định giá và hiểu hành vi sử dụng.

Phân tích tổng quan

Tab Overview cung cấp góc nhìn toàn diện về hiệu suất tính phí dựa trên mức sử dụng:

Chỉ số hoạt động

Theo dõi các thống kê sử dụng chính trong nhiều khoảng thời gian khác nhau:
metric
Hiển thị hoạt động sử dụng trong kỳ tính phí hiện tại, giúp bạn hiểu các mô hình tiêu thụ hàng tháng.
metric
Hiển thị các thống kê sử dụng tích lũy kể từ khi bạn bắt đầu theo dõi, cung cấp thông tin chi tiết về tăng trưởng dài hạn.
Sử dụng bộ chọn khoảng thời gian để so sánh mức sử dụng giữa các tháng khác nhau và xác định xu hướng theo mùa hoặc mô hình tăng trưởng.

Biểu đồ số lượng Meter

Biểu đồ số lượng meter hiển thị xu hướng sử dụng theo thời gian với hình ảnh trực quan gradient màu tím
Biểu đồ số lượng meter trực quan hóa xu hướng sử dụng theo thời gian với các tính năng sau:
  • Trực quan hóa chuỗi thời gian: Theo dõi mô hình sử dụng theo ngày, tuần hoặc tháng
  • Hỗ trợ nhiều meter: Xem dữ liệu từ các meter khác nhau đồng thời
  • Phân tích xu hướng: Xác định các đợt tăng đột biến, mô hình và quỹ đạo tăng trưởng của mức sử dụng
Biểu đồ tự động điều chỉnh tỷ lệ dựa trên khối lượng sử dụng và khoảng thời gian đã chọn, cung cấp khả năng quan sát rõ ràng cả những biến động nhỏ lẫn thay đổi lớn về mức sử dụng.

Phân tích sự kiện

Bảng sự kiện hiển thị tên sự kiện, ID và các điều khiển phân trang để phân tích sự kiện chi tiết
Tab Events cung cấp khả năng quan sát chi tiết đối với từng sự kiện sử dụng:

Hiển thị thông tin sự kiện

Bảng sự kiện cung cấp chế độ xem rõ ràng về từng sự kiện sử dụng với các cột sau:
  • Event Name: Hành động hoặc trigger cụ thể tạo ra sự kiện sử dụng
  • Event ID: Mã định danh duy nhất cho mỗi instance của sự kiện
  • Customer ID: Khách hàng liên kết với sự kiện
  • Timestamp: Thời điểm sự kiện xảy ra
Chế độ xem này cho phép bạn theo dõi và giám sát từng sự kiện sử dụng trên toàn bộ cơ sở khách hàng, mang lại sự minh bạch về các phép tính tính phí và mô hình sử dụng.

Phân tích khách hàng

Tab Customers cung cấp chế độ xem dạng bảng chi tiết về dữ liệu sử dụng của khách hàng với các thông tin sau:

Các cột dữ liệu hiện có

string
Địa chỉ email của khách hàng để nhận diện.
string
Mã định danh duy nhất cho subscription của khách hàng.
number
Số đơn vị miễn phí được bao gồm trong gói của khách hàng trước khi bắt đầu tính phí.
currency
Chi phí cho mỗi đơn vị sử dụng vượt quá hạn mức miễn phí.
timestamp
Timestamp của sự kiện sử dụng gần đây nhất của khách hàng.
currency
Tổng số tiền tính phí khách hàng cho hình thức tính phí dựa trên mức sử dụng.
number
Tổng số đơn vị khách hàng đã sử dụng.
number
Số đơn vị vượt quá hạn mức miễn phí và đang bị tính phí.

Tính năng của bảng

  • Filtering cột: Sử dụng tính năng “Edit Columns” để hiển thị hoặc ẩn các cột dữ liệu cụ thể
  • Cập nhật theo thời gian thực: Dữ liệu sử dụng phản ánh các chỉ số tiêu thụ mới nhất

Ví dụ về tổng hợp

Dưới đây là các ví dụ thực tế về cách hoạt động của những loại tổng hợp khác nhau:

Tìm hiểu các loại tổng hợp

Các loại tổng hợp khác nhau phục vụ những tình huống tính phí khác nhau. Chọn loại phù hợp dựa trên cách bạn muốn đo lường và tính phí cho mức sử dụng.

Ví dụ triển khai thực tế

Các ví dụ này minh họa những ứng dụng thực tế của từng loại tổng hợp bằng các sự kiện mẫu và kết quả dự kiến:
Tình huống: Theo dõi tổng số API requestCấu hình Meter:
  • Event Name: api.call
  • Aggregation Type: Count
  • Measurement Unit: calls
Sự kiện mẫu:
Kết quả: 3 call được tính phí cho khách hàng
Tình huống: Tính phí dựa trên tổng số byte đã truyềnCấu hình Meter:
  • Event Name: data.transfer
  • Aggregation Type: Sum
  • Over Property: bytes
  • Measurement Unit: GB
Sự kiện mẫu:
Kết quả: tổng dung lượng truyền 1.5 GB được tính phí cho khách hàng
Tình huống: Tính phí dựa trên số người dùng đồng thời cao nhấtCấu hình Meter:
  • Event Name: concurrent.users
  • Aggregation Type: Max
  • Over Property: count
  • Measurement Unit: users
Sự kiện mẫu:
Kết quả: 23 người dùng đồng thời cao nhất được tính phí cho khách hàng

Ví dụ về filtering sự kiện

Chỉ đếm các API call đến những endpoint cụ thể:Cấu hình Filter:
  • Property: endpoint
  • Comparator: equals
  • Value: /v1/orders
Sự kiện mẫu:
Kết quả: Các sự kiện khớp tiêu chí filter sẽ được đếm. Các sự kiện có endpoint khác sẽ bị bỏ qua.

Khắc phục sự cố

Giải quyết các vấn đề phổ biến trong quá trình triển khai tính phí dựa trên mức sử dụng và đảm bảo việc theo dõi cũng như tính phí chính xác.

Các vấn đề phổ biến

Hầu hết vấn đề về tính phí dựa trên mức sử dụng thuộc các nhóm sau:
  • Vấn đề gửi và xử lý sự kiện
  • Vấn đề cấu hình meter
  • Lỗi kiểu dữ liệu và định dạng
  • Vấn đề Customer ID và authentication

Các bước debugging

Khi khắc phục sự cố về tính phí dựa trên mức sử dụng:
  1. Xác minh việc gửi sự kiện trong tab Events analytics
  2. Kiểm tra để bảo đảm cấu hình meter khớp với cấu trúc sự kiện
  3. Xác thực Customer ID và API authentication
  4. Xem lại điều kiện filtering và cài đặt aggregation

Giải pháp và cách khắc phục

Các nguyên nhân phổ biến:
  • Tên sự kiện không khớp chính xác với cấu hình meter
  • Điều kiện filtering sự kiện đang loại trừ các sự kiện của bạn
  • Customer ID không tồn tại trong tài khoản Dodo Payments của bạn
  • Timestamp của sự kiện nằm ngoài kỳ tính phí hiện tại
Giải pháp:
  • Xác minh chính tả và phân biệt chữ hoa chữ thường của tên sự kiện
  • Xem lại và kiểm thử các điều kiện filtering
  • Xác nhận Customer ID hợp lệ và đang hoạt động
  • Kiểm tra để bảo đảm timestamp của sự kiện là gần đây và được định dạng đúng
Các nguyên nhân phổ biến:
  • Tên Over Property không khớp với các key metadata của sự kiện
  • Giá trị metadata có kiểu dữ liệu không đúng (string thay vì number)
  • Thiếu các property metadata bắt buộc
Giải pháp:
  • Đảm bảo các key metadata khớp chính xác với cài đặt Over Property
  • Chuyển đổi số dạng string thành number thực tế trong các sự kiện
  • Bao gồm tất cả property bắt buộc trong mỗi sự kiện
Các nguyên nhân phổ biến:
  • Tên property filter không khớp với metadata của sự kiện
  • Comparator không phù hợp với kiểu dữ liệu (string thay vì number)
  • Phân biệt chữ hoa chữ thường trong các phép so sánh chuỗi
Giải pháp:
  • Kiểm tra kỹ để bảo đảm tên property khớp chính xác
  • Sử dụng comparator phù hợp với kiểu dữ liệu
  • Lưu ý đến việc phân biệt chữ hoa chữ thường khi filtering chuỗi

Tài liệu tham chiếu API liên quan

Create Meter

Tài liệu tham chiếu API để tạo và cấu hình usage meter nhằm theo dõi mức tiêu thụ của khách hàng.

Ingest Usage Events

Tài liệu tham chiếu API để gửi các sự kiện sử dụng đến meter đã cấu hình nhằm phục vụ các phép tính tính phí.
Lần sửa đổi cuối 26 tháng 9, 2026