VI | EN
Message us on Messenger
Developer resources

Delivery estimate for a targeting — Facebook API

Account Delivery Estimate · call it through Quantri360 with one API key for your own accounts / assets that you connected and authorized — 360 handles request signing and refreshing the authorization you granted.

Account Delivery Estimate

GET/{version}/act_{account_id}/delivery_estimateVia 360: GET https://partner.quantri360.com/v1/facebook/{version}/act_{account_id}/delivery_estimate
Coming soon. This API already runs in production through 360 and pricing is being finalised — you can read the docs and prepare your integration now.
Description

Ước tính phân phối cho một targeting_spec + mục tiêu tối ưu TRƯỚC khi tạo nhóm quảng cáo: quy mô người dùng hằng tháng tiếp cận được. Dùng để so sánh các phương án nhắm.

  • Đường dẫn có act_<id> → 360 tự chọn token tài khoản.
  • Thiếu optimization_goal → lỗi 100 "The parameter optimization_goal is required".
  • Đường cong kết quả theo ngân sách (daily_outcomes_curve) đã bị Meta ngừng: xin trường này → lỗi code 12 "deprecated for versions v26.0 and higher" (gọi thật trả lỗi kể cả khi gọi v25.0). Không gửi fields để nhận phần còn lại.

Request

Endpoint

GET https://partner.quantri360.com/v1/facebook/{version}/act_{account_id}/delivery_estimate

Authentication & shop

NameInTypeSampleDescription
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_idquerystringact_123456789 hoặc 1234567890Tài sản Facebook brand đã nối với 360: tài khoản quảng cáo (act_<id> hoặc <id>), Page id hoặc Pixel id — lấy ở GET /v1/platforms. Có thể bỏ khi đường dẫn đã chứa act_<id> / page id của brand.

Request parameters

NameInTypeRequiredSampleDescription
versionpathstringYesv25.0
account_idpathstringYes5924809560908319Id tài khoản quảng cáo (số, không có act_).
targeting_specquerystringYes{"geo_locations":{"countries":["VN"]},"age_min":25,"age_max":45,"genders":[2]}JSON nhắm mục tiêu.
optimization_goalquerystringYesREACHMục tiêu tối ưu: REACH · LINK_CLICKS · POST_ENGAGEMENT · CONVERSATIONS · OFFSITE_CONVERSIONS …
promoted_objectquerystringNo{"pixel_id":"880903560703328","custom_event_type":"PURCHASE"}JSON đối tượng quảng bá (bắt buộc với mục tiêu chuyển đổi).

Request examples

curl -s "https://partner.quantri360.com/v1/facebook/v25.0/act_5924809560908319/delivery_estimate?targeting_spec=%7B%22geo_locations%22%3A%7B%22countries%22%3A%5B%22VN%22%5D%7D%2C%22age_min%22%3A25%2C%22age_max%22%3A45%2C%22genders%22%3A%5B2%5D%7D&optimization_goal=REACH" \
  -H "Authorization: Bearer $KEY"
Python
import requests

KEY = "q360_live_..."  # khóa API của brand
r = requests.get(
    "https://partner.quantri360.com/v1/facebook/v25.0/act_5924809560908319/delivery_estimate",
    params={
        "targeting_spec": "{\"geo_locations\":{\"countries\":[\"VN\"]},\"age_min\":25,\"age_max\":45,\"genders\":[2]}",
        "optimization_goal": "REACH"
    },
    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/facebook/v25.0/act_5924809560908319/delivery_estimate');
for (const [k, v] of Object.entries({"targeting_spec":"{\"geo_locations\":{\"countries\":[\"VN\"]},\"age_min\":25,\"age_max\":45,\"genders\":[2]}","optimization_goal":"REACH"})) 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/facebook/v25.0/act_5924809560908319/delivery_estimate' . '?' . http_build_query(['targeting_spec' => '{"geo_locations":{"countries":["VN"]},"age_min":25,"age_max":45,"genders":[2]}', 'optimization_goal' => 'REACH']);
$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

Response fields (as returned by Facebook)

NameTypeSampleDescription
dataobject[]Một dòng ước tính.
estimate_mau_lower_bound / estimate_mau_upper_boundint20700000 / 24300000Người dùng hằng tháng (khoảng).
estimate_readybooltrue`false` = đang tính, gọi lại sau.

Response sample

{
  "data": [
    {
      "estimate_mau_lower_bound": 20700000,
      "estimate_mau_upper_bound": 24300000,
      "estimate_ready": true
    }
  ]
}

Get started

  1. Sign up for Partner
  2. Enable a data type of the Quảng cáo (Marketing API) group on the platform page
  3. Create an API key (tick the Facebook channel)
  4. Call it as in the examples above