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

Use this API to edit Manual Selection Product Ad Keywords — API Shopee Ads

v2.ads.edit_manual_product_ad_keywords · 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.

v2.ads.edit_manual_product_ad_keywords

POST/api/v2/ads/edit_manual_product_ad_keywordsGọi qua 360: POST https://partner.quantri360.com/v1/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords
Endpoint ghi — thay đổi dữ liệu trên Shopee Ads. Key phải được tạo với tick "Cho phép gọi API ghi", nếu không sẽ nhận 403 write_not_allowed. Mỗi lần gọi được ghi nhật ký.
Mô tả API

Chỉnh sửa từ khóa quảng cáo sản phẩm thủ công; kiểm danh sách failed_edits của từng kết quả.

  • Gọi qua /v1/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords với Authorization: Bearer <key>; dùng platform_shop_id khi có nhiều shop. 360 tự gắn partner_id, shop_id, sign và access_token.
  • API GHI: thay đổi dữ liệu thật trên Shopee; cần key có quyền ghi (can_write) và gói mở module Quảng cáo. Có thể chi tiền quảng cáo và thay đổi ngân sách, thời gian hoặc trạng thái chiến dịch.
  • HTTP 200 vẫn có thể có lỗi nghiệp vụ; kiểm error trước khi dùng kết quả.
  • Có danh sách kết quả: kiểm lỗi từng phần tử trước khi sử dụng; error chung rỗng vẫn có thể có phần tử thất bại.

Request

Địa chỉ

POST https://partner.quantri360.com/v1/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords

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_idquerystring100001Gian hàng (lấy ở GET /v1/platforms → shops[].platform_shop_id). BẮT BUỘC khi brand có > 1 gian hàng trên nền tảng; 360 bỏ tham số này trước khi chuyển tiếp.

Tham số request

TênVị tríKiểuBắt buộcMẫuMô tả
reference_idbodystringCódemo-unique-ad-001Chuỗi ngẫu nhiên để chống tạo trùng quảng cáo. Sau khi tạo thành công, gửi lại cùng chuỗi sẽ thất bại; tạo chuỗi mới cho lần tạo mới. Dùng cùng chuỗi khi lấy gợi ý trước bước tạo quảng cáo.
campaign_idbodyint64Có200001Mã chiến dịch.
selected_keywordsbodyobject[]CóDanh sách từ khóa; bắt buộc khi đấu thầu thủ công.
selected_keywords[].edit_actionbodystringCópauseThao tác: add, delete, restore, change_bid_price, change_match_type.
selected_keywords[].keywordbodystringCóáo cottonTừ khóa đấu thầu; danh sách gợi ý chỉ trả từ khóa được khuyến nghị cao.
selected_keywords[].match_typebodystringKhôngexactKiểu khớp: exact, broad. Bắt buộc khi change_match_type.
selected_keywords[].bid_price_per_clickbodyfloatKhông1.5Giá thầu cho mỗi lượt nhấp của từ khóa. Bắt buộc khi change_bid_price.

Ví dụ request

curl -s -X POST "https://partner.quantri360.com/v1/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"reference_id":"demo-unique-ad-001","campaign_id":200001,"selected_keywords":[{"edit_action":"add","keyword":"áo cotton","match_type":"exact","bid_price_per_click":1.5}]}'
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.post(
    "https://partner.quantri360.com/v1/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords",
    params={},
    json={
        "reference_id": "demo-unique-ad-001",
        "campaign_id": 200001,
        "selected_keywords": [
            {
                "edit_action": "add",
                "keyword": "áo cotton",
                "match_type": "exact",
                "bid_price_per_click": 1.5
            }
        ]
    },
    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/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords');
for (const [k, v] of Object.entries({})) url.searchParams.set(k, typeof v === 'object' ? JSON.stringify(v) : String(v));
const r = await fetch(url, {
  method: 'POST',
  headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({"reference_id":"demo-unique-ad-001","campaign_id":200001,"selected_keywords":[{"edit_action":"add","keyword":"áo cotton","match_type":"exact","bid_price_per_click":1.5}]}),
});
console.log(r.status, await r.json());
PHP
<?php
$key = 'q360_live_...'; // khóa API của brand
$url = 'https://partner.quantri360.com/v1/shopee_ads/api/v2/ads/edit_manual_product_ad_keywords' . '?' . http_build_query([]);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $key, 'Content-Type: application/json']);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"reference_id":"demo-unique-ad-001","campaign_id":200001,"selected_keywords":[{"edit_action":"add","keyword":"áo cotton","match_type":"exact","bid_price_per_click":1.5}]}');
$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 Shopee Ads)

failed_edits có thể rỗng khi thành công; nếu có phần tử phải kiểm error/message từng từ khóa. Đọc error/message trước khi dùng response; responseSample là dữ liệu minh họa thành công và giữ cây trường phản hồi.

TênKiểuMẫuMô tả
request_idstringd52ca43b277a4f9292fb8be658bfd33dMã request của Shopee để tra lỗi.
errorstringMã lỗi Shopee; rỗng = thành công.
messagestringMô tả lỗi.
warningstringCảnh báo khi một phần dữ liệu không trả về bình thường.
responseobject[]Kết quả nghiệp vụ.
campaign_idint64200001Mã chiến dịch.
failed_editsobject[]Các từ khóa cập nhật thất bại; kiểm error/message từng phần tử.
keywordstringáo cottonTừ khóa đấu thầu; danh sách gợi ý chỉ trả từ khóa được khuyến nghị cao.
errorstringMã lỗi; rỗng khi thành công.
messagestringMô tả lỗi; rỗng khi thành công.

Mẫu phản hồi

{
  "error": "",
  "message": "",
  "warning": "",
  "request_id": "demo-request",
  "response": [
    {
      "campaign_id": 200001,
      "failed_edits": []
    }
  ]
}

Mã lỗi của Shopee Ads (29)

Bấm để xem
MãÝ nghĩa
ads.account.status_not_normalTrạng thái tài khoản không bình thường.
ads.shop.campaign_not_matchMã chiến dịch không hợp lệ đối với gian hàng này.
error_not_foundKhông tìm thấy đơn / gói / yêu cầu theo mã đã gửi.
error_paramTham số sai / thiếu / sai kiểu — xem `message` để biết tham số nào.
error_serverLỗi hệ thống Shopee — thử lại sau ít phút.
ads.api.http_method_not_allowedPhương thức HTTP không được hỗ trợ cho API này.
ads.ads_account.invalid_statusTrạng thái tài khoản quảng cáo không hợp lệ.
ads.edit.invalid_actionThao tác chỉnh sửa không hợp lệ với trạng thái hiện tại của chiến dịch.
ads.item.invalid_statusTrạng thái sản phẩm không hợp lệ.
ads.keyword.already_existsTừ khóa đã tồn tại.
ads.keyword.is_blacklistedTừ khóa thuộc danh sách bị chặn.
ads.keyword.is_reservedTừ khóa được dành riêng.
ads.keyword.no_updateTừ khóa không có thay đổi.
ads.keyword.not_foundKhông tìm thấy từ khóa.
ads.keyword.price_too_highGiá thầu từ khóa quá cao.
ads.keyword.price_too_lowGiá thầu từ khóa quá thấp.
ads.rate_limit.campaign_levelChiến dịch có quá nhiều yêu cầu; thử lại sau.
ads.rate_limit.exceed_partner_apiQuá nhiều yêu cầu; giảm tần suất rồi thử lại sau.
ads.rate_limit.exceed_shop_apiGian hàng có quá nhiều yêu cầu; thử lại sau.
ads.rate_limit.exceed_apiQuá nhiều yêu cầu; thử lại sau.
ads.shop.in_holiday_modeGian hàng đang ở chế độ nghỉ.
ads.shop.status_not_normalTrạng thái gian hàng không bình thường.
error_dataDữ liệu không tồn tại hoặc không hợp lệ cho thao tác (vd mã không có, loại yêu cầu không cho phép).
error_shopGian hàng không hợp lệ — kiểm tra platform_shop_id.
error_authỦy quyền gian hàng cho 360 đã hết hạn hoặc bị thu hồi (360 đã tự làm mới token một lần) — chủ gian hàng kết nối lại Shopee trong Partner.
error_limitChạm hạn mức gọi Shopee trong ngày của kết nối — 360 trả kèm thời điểm thử lại; giảm tần suất gọi.
error_rate_limitGọi quá nhanh — chờ vài giây rồi gọi lại (360 cũng giới hạn theo key: 429 + Retry-After).
shop_bannedGian hàng đang bị Shopee khóa — mọi API tạm ngưng tới khi gỡ khóa.
error_kyc_authGian hàng chưa hoàn tất đăng ký người bán trên Kênh Người Bán.

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 (Ads) ở trang nền tảng
  3. Tạo API key (tick kênh Shopee Ads)
  4. Gọi theo ví dụ ở trên