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

Báo cáo video trong chiến dịch TTO Creator Marketplace — API TikTok Business

Report on TTO Creator Marketplace videos · 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.

Report on TTO Creator Marketplace videos

GET/tto/tcm/report/Gọi qua 360: GET https://partner.quantri360.com/v1/tiktok_business/tto/tcm/report/
Mô tả API

Báo cáo từng video đã gắn vào một chiến dịch TikTok One Creator Marketplace: lượt xem / thích / bình luận / chia sẻ tách tự nhiên và Spark Ads, tiếp cận, thời gian xem, nguồn lượt xem, chân dung người xem, chỉ số quảng cáo, anchor, số liệu theo ngày.

  • Gọi bằng TÀI KHOẢN QUẢNG CÁO đã nối (platform_shop_id = id tài khoản quảng cáo), không phải tài khoản TikTok. Chưa biết tto_tcm_account_id của bạn → liên hệ 360.
  • Gửi kèm header Country-Code: <mã 2 chữ in hoa> — một mã trong country_codes của chiến dịch (/tto/tcm/campaign/), vd -H "Country-Code: VN". Chiến dịch chạy nhiều nước thì báo cáo tách theo từng nước: mỗi nước một lần gọi (total_number theo nước đã chọn). 360 chỉ nhận đúng header này từ bạn; sai định dạng → 400.
  • Đã gọi thử qua 360: chiến dịch không có video trả code 0 với videos rỗng; chưa kiểm với chiến dịch có video.
  • Số liệu có từ lúc video đăng; creator gắn link mời sau khi đăng thì số liệu được bù lại. Chiến dịch tạo qua API không xem được báo cáo trên nền tảng TikTok One — chỉ qua API này.

Request

Địa chỉ

GET https://partner.quantri360.com/v1/tiktok_business/tto/tcm/report/

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ả
tto_tcm_account_idquerystringCó7300000000000000001Id tài khoản TikTok One Creator Marketplace mà tài khoản quảng cáo đã nối được quyền truy cập. Chưa biết id của bạn → liên hệ 360.
campaign_idquerystringCó7430000000000000001Id chiến dịch.
start_datequerystringKhông2026-10-01Từ ngày YYYY-MM-DD (UTC), không sớm hơn ngày tạo chiến dịch. Gửi cùng end_date để nhận daily_stats.
end_datequerystringKhông2026-10-27Đến ngày YYYY-MM-DD (UTC). Gửi cùng start_date.
pagequeryintKhông1Trang, từ 1. Mặc định 1.
page_sizequeryintKhông100Số dòng mỗi trang: 1–100, mặc định 25.

Phân trang

Lặp page = 1, 2, … tới khi page ≥ data.page_info.total_page.

Ví dụ request

curl -s "https://partner.quantri360.com/v1/tiktok_business/tto/tcm/report/?platform_shop_id=7000000000000000001&tto_tcm_account_id=7300000000000000001&campaign_id=7430000000000000001&start_date=2026-10-01&end_date=2026-10-27&page_size=100" \
  -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/tto/tcm/report/",
    params={
        "platform_shop_id": "7000000000000000001",
        "tto_tcm_account_id": "7300000000000000001",
        "campaign_id": "7430000000000000001",
        "start_date": "2026-10-01",
        "end_date": "2026-10-27",
        "page_size": 100
    },
    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/tto/tcm/report/');
for (const [k, v] of Object.entries({"platform_shop_id":"7000000000000000001","tto_tcm_account_id":"7300000000000000001","campaign_id":"7430000000000000001","start_date":"2026-10-01","end_date":"2026-10-27","page_size":100})) 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/tto/tcm/report/' . '?' . http_build_query(['platform_shop_id' => '7000000000000000001', 'tto_tcm_account_id' => '7300000000000000001', 'campaign_id' => '7430000000000000001', 'start_date' => '2026-10-01', 'end_date' => '2026-10-27', 'page_size' => 100]);
$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.
tto_tcm_account_idstring
campaign_idstring
country_codestringVNQuốc gia của báo cáo.
campaign_typestringCAMPAIGN
campaign_channel_typestringAPI_LITE_CAMPAIGN`STANDARD_CAMPAIGN` · `LITE_CAMPAIGN` (tạo trên nền tảng TikTok One) · `API_LITE_CAMPAIGN` (tạo qua API).
page_infoobjectPhân trang.
pageint1Trang hiện tại.
page_sizeint10Số dòng mỗi trang.
total_numberint0Tổng số dòng.
total_pageint0Tổng số trang.
videosobject[]Video đã gắn vào chiến dịch.
video_infoobjectVideo.
video_idstring
create_timestring2026-10-20 08:00:00Thời điểm đăng (UTC).
embed_urlstringLink nhúng.
thumbnail_urlstringẢnh bìa — link TẠM (mốc hết hạn ở `x-expires`).
authorization_codestringMã ủy quyền Spark Ads của video.
creator_infoobjectCreator.
display_namestring
handle_namestring
video_viewsintLượt xem tổng.
video_views_organicintLượt xem từ phân phối tự nhiên.
video_views_paidintLượt xem từ Spark Ads.
reachintNgười xem (ước tính).
reach_organicint
reach_paidint
engagement_countintThích + bình luận + chia sẻ.
engagement_ratefloatTương tác / lượt xem.
engagement_rate_organicfloat
engagement_rate_paidfloat
likesintLượt thích tổng.
likes_organicintLượt thích từ phân phối tự nhiên.
likes_paidintLượt thích từ Spark Ads.
commentsintBình luận tổng.
comments_organicintBình luận từ phân phối tự nhiên.
comments_paidintBình luận từ Spark Ads.
sharesintChia sẻ tổng.
shares_organicintChia sẻ từ phân phối tự nhiên.
shares_paidintChia sẻ từ Spark Ads.
favoritesintLưu yêu thích tổng.
favorites_organicintLưu yêu thích từ phân phối tự nhiên.
favorites_paidintLưu yêu thích từ Spark Ads.
video_completion_ratefloatTỉ lệ xem hết.
video_completion_rate_organicfloat
video_completion_rate_paidfloat
total_play_timeintTổng thời gian xem (giây).
average_view_timefloatThời gian xem trung bình (giây).
average_view_time_organicfloat
average_view_time_paidfloat
two_seconds_viewsfloatTỉ lệ lượt xem ≥ 2 giây.
organic_two_seconds_viewsfloat
paid_two_seconds_viewsfloat
six_seconds_viewsfloatTỉ lệ lượt xem ≥ 6 giây.
organic_six_seconds_viewsfloat
paid_six_seconds_viewsfloat
video_view_retentionfloat[][1, 0.61, 0.27]Tỉ lệ người còn xem tại từng giây.
video_views_by_sourceobjectNguồn lượt xem: `for_you` · `hashtag` · `sound` · `personal_profile` · `search` · `following` · `other`.
audience_genders_distributionobject[]Giới tính người xem `{gender: FEMALE | MALE | null, percentage}`.
audience_countries_distributionobject[]Quốc gia người xem `{country, percentage}`.
audience_age_distributionobject[]Tuổi người xem `{age, percentage}` — `age` là MÃ: 1 = 13–17 · 2 = 18–24 · 3 = 25–34 · 4 = 35–44 · 5 = 45–54 · 6 = 55+.
audience_device_distributionobject[]Hệ điều hành `{device: android | ios, percentage}`.
audience_language_distributionobject[]Ngôn ngữ cài đặt của người xem `{language, percentage}`.
audience_locale_distributionobject[]Theo bang — chỉ có ở Mỹ.
audience_interest_distributionobject[]Sở thích `{interest_tag, percentage}`: 10 Giáo dục · 11 Xe & vận tải · 12 Mẹ & bé · 13 Tài chính · 14 Làm đẹp & chăm sóc cá nhân · 15 Công nghệ & điện tử · 16 Thiết bị gia dụng · 17 Du lịch · 18 Đồ gia dụng · 19 Thú cưng · 20 Ứng dụng · 21 Sửa chữa nhà cửa · 22 Quần áo & phụ kiện · 23 Tin tức & giải trí · 24 Dịch vụ doanh nghiệp · 25 Game · 26 Dịch vụ đời sống · 27 Ăn uống · 28 Thể thao & dã ngoại · 29 Sức khỏe · 30 Thương mại điện tử (không qua app).
ad_impressionsintHiển thị quảng cáo.
ad_clicksfloatLượt bấm quảng cáo.
ad_ctrfloatCTR.
ad_conversionsfloatChuyển đổi theo mục tiêu chiến dịch quảng cáo.
ad_cvrfloatTỉ lệ chuyển đổi.
ad_costfloatChi phí quảng cáo.
ad_cpafloatChi phí / chuyển đổi.
ad_cpcfloatChi phí / lượt bấm.
ad_cpmfloatChi phí / 1.000 hiển thị.
anchor_idstringAnchor của chiến dịch.
anchor_metricsobjectSố liệu anchor: `anchor_views` · `anchor_clicks` · `anchor_unique_views` · `anchor_unique_clicks`.
daily_statsobject[]Chỉ khi gửi `start_date` + `end_date`, chỉ 90 ngày gần nhất (ngoài khoảng → `null`): mỗi ngày `date` + `views`, `video_views_organic/paid`, `engagement_rate(_organic/_paid)`, `video_completion_rate`, `likes`, `comments`, `shares`, `favorites` (kèm `_organic` / `_paid`). Ngày thiếu chỉ số = chưa có dữ liệu (không tự điền 0).

Bắt đầu dùng

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