Run a GMV Max Campaign report
GET/gmv_max/report/get/Gọi qua 360: GET https://partner.quantri360.com/v1/tiktok_business/gmv_max/report/get/
Mô tả API
Báo cáo GMV Max: chi phí, đơn, doanh thu gộp, ROI… theo tài khoản / chiến dịch / sản phẩm / video / phiên LIVE / giai đoạn tối ưu, tách theo ngày hoặc giờ. Mỗi lần gọi cho MỘT TikTok Shop.
- Luồng thường dùng: cấp chiến dịch (
["campaign_id","stat_time_day"]+gmv_max_promotion_types) → lấycampaign_id→ cấp sản phẩm (["item_group_id","stat_time_day"]+campaign_ids) → lấyitem_group_id→ cấp video (["campaign_id","item_group_id","item_id"]+campaign_ids+item_group_ids). - Thuộc tính (tên chiến dịch, tên sản phẩm, tên video…) chỉ lấy được ở cấp chiến dịch, hoặc ở cấp dưới khi lọc ĐÚNG MỘT id và chỉ có một chiều id; lọc nhiều id hoặc nhiều chiều id thì bỏ các thuộc tính khỏi
metrics. gross_revenuegồm cả trợ giá của TikTok Shop cho người mua — thường lớn hơn GMV / doanh thu đơn hàng thấy ở báo cáo shop.- Chiến dịch tạo ở TikTok Ads Manager hay Seller Center đều có trong báo cáo.
- Hạn mức của TikTok cho API này: 8–20 request/giây, 240–600/phút tùy cấp ứng dụng — đồng bộ theo ngày,
page_size = 1000để ít lượt gọi.
Request
Địa chỉ
GET https://partner.quantri360.com/v1/tiktok_business/gmv_max/report/get/
Xác thực & gian hàng
| Tên | Vị trí | Kiểu | Mẫu | Mô tả |
|---|---|---|---|---|
| Authorization | header | header | Bearer q360_live_ab12cd34_… | Khóa API của brand (tạo ở mục API key). Bắt buộc với mọi request. Brand suy từ key — không truyền mã brand. |
| platform_shop_id | query | string | 7000000000000000001 | Tài sản TikTok Business đã kết nối — "Mã tài sản" ở trang Nền tảng hoặc GET /v1/platforms (tài khoản quảng cáo cho Marketing API, tài khoản TikTok cho Organic / Messaging). Có thể bỏ khi chỉ kết nối một tài sản. |
Tham số request
| Tên | Vị trí | Kiểu | Bắt buộc | Mẫu | Mô tả |
|---|---|---|---|---|---|
| store_ids | query | string[] | Có | ["7490000000000000001"] | Mảng JSON đúng 1 id TikTok Shop (shop dùng được cho GMV Max: /gmv_max/store/list/ với is_gmv_max_available = true). |
| start_date | query | string | Có | 2026-10-01 | Từ ngày (tính cả ngày này), YYYY-MM-DD theo múi giờ tài khoản quảng cáo. |
| end_date | query | string | Có | 2026-10-26 | Đến ngày (tính cả ngày này). Khoảng tối đa: 365 ngày khi không tách thời gian · 30 ngày khi có stat_time_day · 1 ngày khi có stat_time_hour. |
| dimensions | query | string[] | Có | ["campaign_id","stat_time_day"] | Mảng JSON chiều gộp — chọn ĐÚNG một tổ hợp theo cấp báo cáo:
- Tài khoản: ["advertiser_id"] (+ stat_time_day hoặc stat_time_hour).
- Chiến dịch (sản phẩm hoặc LIVE): ["campaign_id"] (+ ngày / giờ).
- Sản phẩm: ["item_group_id"] hoặc ["campaign_id","item_group_id"] (+ ngày / giờ).
- Video (creative): ["campaign_id","item_group_id","item_id"] · ["campaign_id","item_group_id","item_id","stat_time_day"] (chỉ trả dòng có chi phí) · ["item_id","stat_time_day"].
- Phiên LIVE: ["room_id"] hoặc ["campaign_id","room_id"] (+ ngày / giờ).
- Giai đoạn tối ưu (mỗi lần đổi chế độ ROI mục tiêu ↔ tối đa phân phối là một dòng): ["duration"], ["campaign_id","duration"], ["item_group_id","duration"] / ["room_id","duration"], ["campaign_id","item_group_id","duration"] / ["campaign_id","room_id","duration"]. |
| metrics | query | string[] | Có | ["campaign_name","operation_status","cost","net_cost","orders","gross_revenue","roi"] | Mảng JSON chỉ số — tùy cấp:
- Mọi cấp: cost (chi phí ước tính) · net_cost (chi phí thực, trừ tín dụng / phiếu quảng cáo) · orders (số đơn SKU) · cost_per_order (chi phí / đơn) · gross_revenue (doanh thu gộp đơn TikTok Shop được ghi nhận cho chiến dịch = tiền người mua trả + trợ giá của TikTok Shop) · roi (ROI của các đơn TikTok Shop được ghi nhận cho chiến dịch).
- Chiến dịch sản phẩm: thêm roas_bid (ROI mục tiêu) và thuộc tính campaign_id, campaign_name, operation_status, schedule_type, schedule_start_time, schedule_end_time (UTC), target_roi_budget, bid_type (CUSTOM = ROI mục tiêu · NO_BID = tối đa phân phối), max_delivery_budget.
- Sản phẩm: product_name, item_group_id, product_image_url, product_status (available / unavailable), bid_type + orders, gross_revenue (và cost, roi…).
- Video: title, item_id (thẻ sản phẩm = -1), tt_account_name, tt_account_profile_image_url, tt_account_authorization_type (TTS_TT · AFFILIATE · TT_USER · BC_AUTH_TT · AUTH_CODE · UNSET), shop_content_type (VIDEO / PRODUCT_CARD), creative_delivery_status, product_impressions, product_clicks, product_click_rate, ad_click_rate, ad_conversion_rate, ad_video_view_rate_2s, ad_video_view_rate_6s, ad_video_view_rate_p25 / p50 / p75 / p100.
- Chiến dịch LIVE: thuộc tính như chiến dịch sản phẩm + tt_account_name, tt_account_profile_image_url, identity_id; chỉ số live_views (lượt xem LIVE) · cost_per_live_view · 10_second_live_views (lượt xem ≥ 10 giây) · cost_per_10_second_live_view · live_follows (lượt theo dõi trong LIVE); all_shops_orders, all_shops_gross_revenue, all_shops_roi, all_shops_cost_per_order (gồm cả đơn LIVE tự nhiên).
- Phiên LIVE: live_name, live_status (ONGOING / END), live_launched_time (múi giờ tài khoản quảng cáo), live_duration + live_views (lượt xem LIVE) · cost_per_live_view · 10_second_live_views (lượt xem ≥ 10 giây) · cost_per_10_second_live_view · live_follows (lượt theo dõi trong LIVE) và chỉ số chung.
- Giai đoạn tối ưu: bid_type, cost, orders, cost_per_order, gross_revenue, roi (+ roas_bid với sản phẩm). |
| filtering | query | object | Không | {"gmv_max_promotion_types":["PRODUCT"]} | Bộ lọc (object JSON) — bắt buộc tùy cấp:
- Cấp chiến dịch: BẮT BUỘC gmv_max_promotion_types = ["PRODUCT"] hoặc ["LIVE"] (KHÁC mã PRODUCT_GMV_MAX / LIVE_GMV_MAX của /gmv_max/campaign/get/); tùy chọn campaign_ids (≤ 100), campaign_name (khớp gần đúng), campaign_statuses (STATUS_DELIVERY_OK · STATUS_DISABLE · STATUS_DELETE · STATUS_NOT_DELIVERY · STATUS_ALL; mặc định bỏ chiến dịch đã xóa).
- Cấp tài khoản: gmv_max_promotion_types tùy chọn.
- Cấp sản phẩm / phiên LIVE: BẮT BUỘC campaign_ids.
- Cấp video: BẮT BUỘC campaign_ids + item_group_ids (≤ 100 mỗi loại); lọc trạng thái video bằng creative_delivery_statuses (IN_QUEUE · LEARNING · DELIVERING · NOT_DELIVERYING · AUTHORIZATION_NEEDED · EXCLUDED · UNAVAILABLE · REJECTED · NOT_ACTIVE…); search_word tìm theo tên video / id bài / tên tài khoản.
- Cấp giai đoạn: BẮT BUỘC campaign_ids + item_group_ids (sản phẩm) hoặc campaign_ids + room_ids (LIVE). |
| enable_total_metrics | query | bool | Không | true | true = trả thêm tổng cộng mọi trang ở data.total_metrics. Mặc định false. |
| sort_field | query | string | Không | cost | Sắp theo chỉ số. Sản phẩm: cost · net_cost · orders · cost_per_order · gross_revenue · roi · product_impressions · product_clicks · product_click_rate · ad_click_rate · ad_conversion_rate · ad_video_view_rate_*. LIVE: cost · net_cost · orders · cost_per_order · gross_revenue · roi · live_views · cost_per_live_view · 10_second_live_views · cost_per_10_second_live_view · live_follows. Không gửi = không sắp (nên gửi để thứ tự ổn định khi phân trang). |
| sort_type | query | string | Không | DESC | DESC (mặc định) · ASC. |
| page | query | int | Không | 1 | Trang, từ 1. |
| page_size | query | int | Không | 1000 | Số dòng mỗi trang: 1–1.000, mặc định 10. |
Phân trang
Tăng page tới khi page = data.page_info.total_page.
Ví dụ request
curl -s "https://partner.quantri360.com/v1/tiktok_business/gmv_max/report/get/?platform_shop_id=7000000000000000001&store_ids=%5B%227490000000000000001%22%5D&start_date=2026-10-01&end_date=2026-10-26&dimensions=%5B%22campaign_id%22%2C%22stat_time_day%22%5D&metrics=%5B%22campaign_name%22%2C%22operation_status%22%2C%22roas_bid%22%2C%22cost%22%2C%22net_cost%22%2C%22orders%22%2C%22cost_per_order%22%2C%22gross_revenue%22%2C%22roi%22%5D&filtering=%7B%22gmv_max_promotion_types%22%3A%5B%22PRODUCT%22%5D%7D&page=1&page_size=1000" \ -H "Authorization: Bearer $KEY"
Python
import requests
KEY = "q360_live_..." # khóa API của brand
r = requests.get(
"https://partner.quantri360.com/v1/tiktok_business/gmv_max/report/get/",
params={
"platform_shop_id": "7000000000000000001",
"store_ids": [
"7490000000000000001"
],
"start_date": "2026-10-01",
"end_date": "2026-10-26",
"dimensions": [
"campaign_id",
"stat_time_day"
],
"metrics": [
"campaign_name",
"operation_status",
"roas_bid",
"cost",
"net_cost",
"orders",
"cost_per_order",
"gross_revenue",
"roi"
],
"filtering": {
"gmv_max_promotion_types": [
"PRODUCT"
]
},
"page": 1,
"page_size": 1000
},
headers={"Authorization": f"Bearer {KEY}"},
timeout=60,
)
print(r.status_code)
print(r.json())Node.js
const KEY = 'q360_live_...'; // khóa API của brand
const url = new URL('https://partner.quantri360.com/v1/tiktok_business/gmv_max/report/get/');
for (const [k, v] of Object.entries({"platform_shop_id":"7000000000000000001","store_ids":["7490000000000000001"],"start_date":"2026-10-01","end_date":"2026-10-26","dimensions":["campaign_id","stat_time_day"],"metrics":["campaign_name","operation_status","roas_bid","cost","net_cost","orders","cost_per_order","gross_revenue","roi"],"filtering":{"gmv_max_promotion_types":["PRODUCT"]},"page":1,"page_size":1000})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
method: 'GET',
headers: { Authorization: `Bearer ${KEY}` },
});
console.log(r.status, await r.json());PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/tiktok_business/gmv_max/report/get/' . '?' . http_build_query(['platform_shop_id' => '7000000000000000001', 'store_ids' => '["7490000000000000001"]', 'start_date' => '2026-10-01', 'end_date' => '2026-10-26', 'dimensions' => '["campaign_id","stat_time_day"]', 'metrics' => '["campaign_name","operation_status","roas_bid","cost","net_cost","orders","cost_per_order","gross_revenue","roi"]', 'filtering' => '{"gmv_max_promotion_types":["PRODUCT"]}', 'page' => 1, 'page_size' => 1000]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key]);
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $status, "\n", $res;Response
Tham số phản hồi (nguyên của TikTok Business)
| Tên | Kiểu | Mẫu | Mô tả |
|---|---|---|---|
| code | int | 0 | 0 = thành công; khác 0 xem `message` (TikTok trả HTTP 200 kèm code lỗi; vd 40002 = tham số sai, message liệt kê giá trị hợp lệ). |
| message | string | OK | Thông điệp của TikTok. |
| request_id | string | 2021080307532501024502410704A7306F | Mã request TikTok — ghi lại khi cần tra lỗi. |
| data | object | Dữ liệu. | |
| list | object[] | Mỗi dòng = một tổ hợp chiều. | |
| dimensions | object | {"campaign_id":"1800000000000000001","stat_time_day":"2026-10-25 00:00:00"} | Giá trị các chiều đã yêu cầu. |
| metrics | object | {"cost":"1250000","orders":"42","gross_revenue":"6830000","roi":"5.46"} | Giá trị các chỉ số đã yêu cầu — đa số trả dạng CHUỖI, tự chuyển sang số. Tiền theo tiền tệ của tài khoản quảng cáo. |
| total_metrics | object | Chỉ khi `enable_total_metrics = true`: tổng các chỉ số trên mọi trang. | |
| page_info | object | Phân trang. | |
| page | int | 1 | |
| page_size | int | 1000 | |
| total_number | int | 26 | Tổng số dòng. |
| total_page | int | 1 | Tổng số trang. |
Bắt đầu dùng
- Đăng ký tài khoản Partner
- Mở loại dữ liệu thuộc nhóm Quảng cáo (Marketing API) ở trang nền tảng
- Tạo API key (tick kênh TikTok Business)
- Gọi theo ví dụ ở trên