Tích hợp TikTok Ads — Đặc tả tính năng
I. Tổng quan
1. Vấn đề
- TikTok đang là kênh quảng cáo tăng trưởng nhanh nhất tại Việt Nam, đặc biệt với tệp khách hàng Gen Z và Millennials, nhưng team marketing chưa có công cụ tích hợp TikTok Ads vào luồng quản lý lead và báo cáo CRM.
- Lead từ TikTok Lead Generation Form phải export thủ công từ TikTok Ads Manager, gây trễ 30–60 phút trước khi đến Telesale.
- Hiệu suất video (view rate, completion rate) là chỉ số quan trọng với TikTok nhưng không được theo dõi cùng với dữ liệu kinh doanh trong CRM.
2. Giải pháp
- Tích hợp TikTok Marketing API để:
- Đồng bộ cấu trúc và chỉ số chiến dịch TikTok Ads về Adahub.
- Nhận lead từ TikTok Lead Generation Form qua webhook real-time.
- Theo dõi Video Performance cùng với conversion data từ CRM.
- Tạo Custom Audience từ dữ liệu KH trong CRM.
3. Đối tượng
- Marketing Manager: Tổng quan hiệu suất và ngân sách TikTok Ads.
- Performance Marketing Specialist: Theo dõi Video Performance, tối ưu Ad Group.
- Content Marketing Team: Phân tích video nào hiệu quả nhất để ra quyết định sản xuất.
- Sales Manager: Tiếp nhận và xử lý leads từ TikTok.
4. Tầm nhìn / Insight
- TikTok Events API (tương đương Facebook CAPI): gửi conversion server-side để tối ưu bidding.
- Tích hợp TikTok Shop: sync đơn hàng từ TikTok Shop về CRM.
- Content performance analytics: so sánh video organic vs paid performance.
- Spark Ads integration: boost video organic từ brand account qua Adahub.
II. Yêu cầu chức năng
1. Danh sách tính năng
| # | Tính năng | Mô tả | |:—|:—|:—| | 1 | Kết nối tài khoản TikTok Ads | OAuth, quản lý nhiều Ad Accounts | | 2 | Đồng bộ cấu trúc chiến dịch | Campaign → Ad Group → Ad | | 3 | Đồng bộ chỉ số hiệu suất | Reach, Impressions, Clicks, Spend, Leads, CPL | | 4 | Theo dõi Video Performance | View, Completion Rate, Engagement | | 5 | Nhận Lead từ Lead Generation | Webhook real-time → Contact CRM | | 6 | Tạo Custom Audience | Đẩy danh sách KH từ CRM lên TikTok | | 7 | Báo cáo tổng hợp | Attribution từ TikTok → doanh thu CRM |
2. Đặc tả chi tiết
Tính năng 1: Kết nối tài khoản TikTok Ads
User story: Là một [Marketing Manager], tôi muốn [kết nối TikTok Ads Manager qua OAuth] để [quản lý chiến dịch TikTok trong cùng giao diện với Google và Meta].
- Use case 1.1 (Happy path): Bấm “Kết nối TikTok Ads” → Redirect TikTok OAuth → Cấp quyền → Chọn Advertiser Account → Xác nhận kết nối.
- Use case 1.2 (Business Center): Nếu user thuộc TikTok Business Center, liệt kê các Advertiser Account để chọn đồng bộ.
Permissions cần thiết:
| Permission (Scope) | Mục đích |
|---|---|
advertiser.report.read |
Đọc chỉ số hiệu suất |
campaign.read |
Đọc cấu trúc Campaign/Ad Group/Ad |
audience.write |
Tạo và upload Custom Audience |
lead.read |
Lấy dữ liệu lead từ Lead Generation |
Tính năng 2 & 3: Đồng bộ cấu trúc & Chỉ số hiệu suất
Cấu trúc đồng bộ:
Advertiser Account
└── Campaign (Chiến dịch)
└── Ad Group (Nhóm quảng cáo) ← Audience, Placement, Budget, Schedule
└── Ad (Mẫu quảng cáo) ← Video, Text, CTA
Chỉ số đồng bộ theo ngày:
| Cấp | Chỉ số |
|---|---|
| Campaign | Reach, Impressions, Clicks, CTR, Spend, Budget, Conversions, CPL, CPA |
| Ad Group | Reach, Impressions, Clicks, Spend, Frequency, CPM |
| Ad (Video) | Impressions, Clicks, Spend, Video Views, Video Play Rate, 6s View Rate, Completion Rate |
Breakdowns (phân tích theo chiều):
- Theo ngày, tuần, tháng
- Theo thiết bị (Android / iOS)
- Theo placement (TikTok Feed / Pangle)
- Theo độ tuổi & giới tính (nếu được phép)
- Theo khu vực địa lý
Tính năng 4: Theo dõi Video Performance
Đây là tính năng đặc thù của TikTok so với Google và Facebook, vì TikTok là nền tảng video-first.
User story: Là một [Content Marketing Manager], tôi muốn [xem hiệu suất từng video quảng cáo theo nhiều chỉ số video] để [biết loại content nào hiệu quả nhất để tập trung sản xuất].
Chỉ số Video Performance chuyên sâu:
| Chỉ số | Mô tả |
|---|---|
| Video Views | Tổng lượt xem (tính từ ≥ 2 giây) |
| Video Play Rate | % impressions dẫn đến lượt xem |
| 6s View Rate | % người xem đến giây thứ 6 (điểm quan trọng của TikTok) |
| Video Completion Rate | % người xem đến hết video |
| Average Watch Time | Thời gian xem trung bình (giây) |
| Engagement Rate | (Like + Comment + Share + Follow) / Impressions |
| Profile Visit | Lượt vào profile từ quảng cáo |
Dashboard Video Performance:
- So sánh các video ads trong cùng chiến dịch: bảng xếp hạng theo Completion Rate, CPL.
- Biểu đồ “Viewing Funnel”: Impressions → Views → 6s → Complete.
- Gợi ý tối ưu: Video có Completion Rate thấp → cảnh báo cần cải thiện 3 giây đầu.
Tính năng 5: Nhận Lead từ TikTok Lead Generation Form
User story: Là một [Sales Manager], tôi muốn [nhận lead từ TikTok Instant Form ngay khi KH điền] để [Telesale phản hồi nhanh nhất có thể].
Luồng nhận lead:
KH xem video Ad → Bấm CTA → TikTok Instant Form → Submit →
TikTok gọi Webhook → Adahub nhận → Tạo Contact →
Phân bổ Telesale → Task "Gọi lại ngay"
- Use case 5.1 (Happy path): Webhook nhận notification lead mới → Adahub gọi TikTok Lead API lấy thông tin → Tạo Contact trong CRM trong ≤ 10 giây.
- Use case 5.2 (Trùng SĐT): SĐT đã tồn tại trong CRM → Update Contact, thêm ghi chú nguồn “TikTok Ads”, tạo Task.
- Use case 5.3 (Webhook missed): Adahub implement scheduled pull: mỗi 15 phút kiểm tra và pull lead chưa xử lý từ TikTok API (safety net cho trường hợp webhook bị miss).
Cấu hình Form Field Mapping:
| TikTok Form Field | CRM Field |
|---|---|
name |
Contact → Họ và tên |
phone_number |
Contact → Số điện thoại |
email |
Contact → Email |
| Custom questions | Custom field tương ứng |
Metadata tự động gắn:
- Nguồn lead:
TikTok Ads - Campaign ID, Ad Group ID, Ad ID
- Form ID, Thời gian submit
Tính năng 6: Tạo Custom Audience
User story: Là một [Performance Marketer], tôi muốn [đẩy danh sách KH CRM lên TikTok] để [retargeting KH cũ và tìm Lookalike audience trên nền tảng TikTok].
- Use case 6.1 (Customer File Audience): Chọn Segment KH trong CRM → Hash SĐT/Email (SHA-256) → Upload lên TikTok Audience API → TikTok trả về match rate và kích thước audience.
- Use case 6.2 (Sync tự động): Cấu hình sync tự động theo lịch → Audience được cập nhật khi Segment CRM thay đổi.
- Use case 6.3 (Lookalike): Từ Custom Audience đã có → Tạo Lookalike với kích thước 1%–20% của Việt Nam.
TikTok Custom Audience Types hỗ trợ:
| Loại | Cách tạo | Mục đích |
|---|---|---|
| Customer File | Upload từ CRM | Retargeting KH cũ |
| Lookalike | Từ Customer File | Tìm KH tiềm năng tương tự |
Yêu cầu bảo mật: Hash SHA-256 trước khi upload. Tối thiểu 1,000 KH để tạo Lookalike.
Tính năng 7: Báo cáo tổng hợp & Attribution
So sánh hiệu quả chiến dịch:
| Chiều phân tích | Chỉ số |
|---|---|
| Theo chiến dịch | CPL, Tỷ lệ chuyển đổi lead → deal, Revenue |
| Theo nội dung video | Video tốt nhất (Completion Rate cao, CPL thấp) |
| Cross-platform | So sánh TikTok vs Facebook vs Google: CPL, CAC, ROAS |
Attribution:
- Attribution window mặc định: 7 ngày sau click, 1 ngày sau view.
- Gắn UTM params:
utm_source=tiktok,utm_medium=paid,utm_campaign={tên_campaign}.
3. Danh sách nghiệp vụ
- Một workspace có thể kết nối nhiều Advertiser Account TikTok.
- Custom Audience: SĐT/Email PHẢI hash SHA-256 trước upload. Tối thiểu 100 records để tạo audience (tối thiểu 1,000 để tạo Lookalike).
- Lead từ TikTok phải được xử lý idempotent — dù webhook bị duplicate, Contact không được tạo hai lần.
- Chỉ số Video Performance đồng bộ cho tất cả Ad có chứa video (không áp dụng cho image ads nếu có).
- Attribution window có thể cấu hình (mặc định: 7 ngày click, 1 ngày view — theo chuẩn TikTok).
4. Giao diện
- Tab Tài khoản: Danh sách Advertiser Account đã kết nối, trạng thái, lần sync gần nhất.
- Tab Chiến dịch: Bảng Campaign → Ad Group, metrics tổng hợp.
- Tab Video Performance: Bảng xếp hạng video theo Completion Rate, biểu đồ funnel viewing.
- Tab Leads: Danh sách leads từ TikTok, thời gian xử lý, trạng thái phân bổ.
- Tab Audiences: Danh sách Custom Audience, match rate, trạng thái.
III. Yêu cầu phi chức năng
- Lead latency: Từ KH submit form đến Contact được tạo ≤ 10 giây qua webhook, ≤ 15 phút qua pull backup.
- Video metrics sync: Chỉ số video cập nhật hàng ngày lúc 3:00 AM (sau khi TikTok finalize data ngày hôm trước).
- Rate limit: Tuân thủ TikTok Marketing API rate limit: 1,000 requests/phút mặc định.
- Audience upload: Hỗ trợ upload tối đa 1,000,000 records/lần, xử lý batch nếu vượt quá.
- Uptime webhook: ≥ 99.5% — downtime đồng nghĩa với mất lead.
IV. Dependency (liên quan & phụ thuộc)
- TikTok Marketing API (v1.3+): Đọc campaign/ad metrics, Lead Form API, Custom Audience API.
- TikTok Webhook (Lead Notifications): Nhận sự kiện lead mới real-time.
- TikTok Events API: (Tính năng tương lai) Gửi conversion server-side.
- CRM – Contact Management: Tạo Contact từ lead.
- Chiến dịch Telesale: Nhận leads từ TikTok và phân bổ agent.
- Adaflow: Trigger “Khi có lead mới từ TikTok Ads”.
- Dashboard Module: Tổng hợp cross-platform metrics.
V. API Contract (Dev viết)
API 1: Kết nối TikTok Ads
- Method & Endpoint:
POST /api/v1/integrations/tiktok-ads/connect - Request Body:
{ "auth_code": "xxxxx", "advertiser_id": "1234567890" } - Response 200:
{ "connected": true, "advertiser_name": "Company Vietnam" }
API 2: Webhook nhận Lead từ TikTok
- Method & Endpoint:
POST /api/v1/webhooks/tiktok/lead(TikTok gọi vào) - Payload (TikTok format):
{ "event": "form_submission", "data": { "advertiser_id": "1234567890", "form_id": "111222333", "lead_id": "999888777", "ad_id": "444555666", "campaign_id": "777666555" } } - Response 200:
{ "code": 0, "message": "ok" }
API 3: Lấy Video Performance metrics
- Method & Endpoint:
GET /api/v1/integrations/tiktok-ads/{advertiser_id}/video-performance?campaign_id={id}&date_range=last_30_days - Response 200:
{ "ads": [ { "ad_id": "444555666", "ad_name": "Product Demo Video - June", "video_views": 125000, "play_rate": 0.68, "six_second_view_rate": 0.45, "completion_rate": 0.23, "avg_watch_time_seconds": 12.4, "spend": 8500000, "leads": 87, "cpl": 97701 } ] }
API 4: Upload Custom Audience
- Method & Endpoint:
POST /api/v1/integrations/tiktok-ads/{advertiser_id}/audiences - Request Body:
{ "audience_name": "CRM - KH đã mua hàng 2026", "audience_type": "CUSTOMER_FILE", "data": [ { "phone_number": "sha256_hash_1" }, { "phone_number": "sha256_hash_2" } ] }
VI. Test case (BA hoặc Tester viết)
Kết nối tài khoản:
- TC1.1: Kết nối OAuth thành công → Advertiser Account hiển thị, trạng thái “Đã kết nối”.
- TC1.2: Thiếu permission
lead.read→ Thông báo cụ thể permission cần thêm.
Video Performance:
- TC2.1: Sync metrics → Completion Rate của Ad hiển thị đúng với TikTok Ads Manager.
- TC2.2: Ad không phải video (nếu có image ad) → Không hiển thị Video Performance metrics, không báo lỗi.
Nhận Lead:
- TC3.1: KH submit TikTok form → Contact được tạo trong CRM trong ≤ 10 giây.
- TC3.2: Webhook bị miss → Cơ chế pull backup lấy lead trong vòng 15 phút.
- TC3.3: Cùng lead_id webhook gửi 2 lần → Contact chỉ tạo 1 lần (idempotent).
Custom Audience:
- TC4.1: Upload 2,000 SĐT đã hash → Match rate > 50% sau khi TikTok xử lý.
- TC4.2: Upload < 100 records → Hệ thống cảnh báo kích thước audience quá nhỏ.
- TC4.3: Tạo Lookalike từ audience < 1,000 records → Hệ thống chặn và thông báo lý do.