VI | EN
Nhắn Messenger
Dành cho developer

Lấy báo cáo chiến dịch GMV Max — API TikTok Business

Run a GMV Max Campaign report · gọi qua Quantri360 bằng một API key cho chính tài khoản / tài sản bạn đã kết nối và ủy quyền — 360 lo việc ký request và làm mới phiên đăng nhập bạn đã cấp.

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ấy campaign_id → cấp sản phẩm (["item_group_id","stat_time_day"] + campaign_ids) → lấy item_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_revenue gồ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ênVị tríKiểuMẫuMô tả
AuthorizationheaderheaderBearer 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_idquerystring7000000000000000001Tà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ênVị tríKiểuBắt buộcMẫuMô tả
store_idsquerystring[]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_datequerystringCó2026-10-01Từ 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_datequerystringCó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.
dimensionsquerystring[]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"].
metricsquerystring[]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).
filteringqueryobjectKhô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_metricsqueryboolKhôngtruetrue = trả thêm tổng cộng mọi trang ở data.total_metrics. Mặc định false.
sort_fieldquerystringKhôngcostSắ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_typequerystringKhôngDESCDESC (mặc định) · ASC.
pagequeryintKhông1Trang, từ 1.
page_sizequeryintKhông1000Số 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ênKiểuMẫuMô tả
codeint00 = 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ệ).
messagestringOKThông điệp của TikTok.
request_idstring2021080307532501024502410704A7306FMã request TikTok — ghi lại khi cần tra lỗi.
dataobjectDữ liệu.
listobject[]Mỗi dòng = một tổ hợp chiều.
dimensionsobject{"campaign_id":"1800000000000000001","stat_time_day":"2026-10-25 00:00:00"}Giá trị các chiều đã yêu cầu.
metricsobject{"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_metricsobjectChỉ khi `enable_total_metrics = true`: tổng các chỉ số trên mọi trang.
page_infoobjectPhân trang.
pageint1
page_sizeint1000
total_numberint26Tổng số dòng.
total_pageint1Tổng số trang.

Bắt đầu dùng

  1. Đăng ký tài khoản Partner
  2. Mở loại dữ liệu thuộc nhóm Quảng cáo (Marketing API) ở trang nền tảng
  3. Tạo API key (tick kênh TikTok Business)
  4. Gọi theo ví dụ ở trên