Annual Ads

เอกสารสำหรับนักพัฒนา

สร้างระบบโดยตรงบนแพลตฟอร์ม Annual Ads — สร้างผู้โฆษณา เผยแพร่โฆษณา ดำเนินการชำระเงิน และติดตามอันดับ — ทั้งหมดผ่าน API

ดูตารางราคาทั้งหมด

คุณยังคงมี 70% จากจำนวนเงินที่ผู้ลงโฆษณาในโหมด Connect จ่ายสำหรับโฆษณาของพวกเขา — ซึ่งจะถูกโอนเข้ากระเป๋าเงินของคุณโดยอัตโนมัติ ดูวิธีการทำงานด้านล่างนี้

URL หลัก

https://api.adhub365.com
OpenAPI 3

การยืนยันตัวตน

ทุกคำขอจะได้รับการตรวจสอบความถูกต้องด้วยกุญแจลับในส่วนหัว Authorization โดยใช้รูปแบบ Bearer

POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/json

Sandbox และระบบผลิต

กุญแจใน Sandbox และกุญแจในระบบผลิตถูกแยกกันอย่างสมบูรณ์ — กุญแจใน Sandbox ไม่สามารถอ่านหรือเขียนข้อมูลที่สร้างขึ้นโดยกุญแจในระบบผลิตได้ และในทางกลับกันก็เช่นกัน

ขอบเขต

แต่ละกุญแจจะถูกจำกัดอยู่ในขอบเขตที่ได้รับการกำหนดไว้ตั้งแต่แรก — กุญแจนั้นจะไม่มีสิทธิ์เข้าถึงข้อมูลมากกว่าบัญชีของคู่ค้าที่สร้างมันขึ้นมา

ทีม Annual Ads จะออกกุญแจ API ให้กับบัญชีพันธมิตรที่ได้รับการอนุมัติ

สร้างบัญชีพันธมิตร

การแบ่งปันรายได้จากโฆษณา

หากกุญแจ API ของคุณสร้างบัญชีผู้ลงโฆษณาให้กับผู้ใช้ของคุณเอง (โหมด Connect — ดูส่วนการยืนยันตัวตนข้างต้น) คุณจะได้รับส่วนแบ่งจากเงินที่ผู้ลงโฆษณาเหล่านั้นจ่ายสำหรับโฆษณาของพวกเขา การแบ่งส่วนแบ่งด้านล่างนี้ถูกอ่านแบบเรียลไทม์จากจุดปลายทางเดียวกันนี้ ไม่เคยถูกกำหนดไว้ล่วงหน้า และแยกต่างหากโดยสิ้นเชิงจากค่าคอมมิชชันจากการแนะนำที่อยู่ด้านล่างของหน้านี้

GET https://api.adhub365.com/v1/partner-program
{
  "partner_share_percentage": 0.7,
  "platform_share_percentage": 0.3
}

70%

ส่งให้คุณ

เงินจะถูกโอนเข้ากระเป๋าเงินที่ตั้งค่าไว้โดยอัตโนมัติ — ไม่จำเป็นต้องส่งคำขอถอนเงิน

30%

ไปยังโฆษณาประจำปี

ครอบคลุมเรื่องการตรวจสอบเนื้อหา การให้บริการโฮสติ้ง และระบบการจัดอันดับที่โฆษณาของคุณทำงานอยู่

วิธีการทำงาน

  1. ผู้ลงโฆษณาในโหมด Connect ของคุณคนหนึ่งได้ชำระเงินสำหรับโฆษณาผ่านระบบการเชื่อมต่อของคุณ
  2. โฆษณาดังกล่าวได้รับการตรวจสอบและอนุมัติ — โดยอัตโนมัติ หรือโดยทีมตรวจสอบของเรา
  3. ส่วนแบ่งของคุณได้ถูกจัดเข้าคิวเพื่อจ่ายอัตโนมัติเข้ากระเป๋าเงินของคุณ โดยใช้กลไกเดียวกันกับโปรแกรมแนะนำเพื่อนด้านล่างนี้
ส่วนแบ่งจะไม่ถูกสร้างขึ้นจนกว่าโฆษณาจะได้รับการอนุมัติจริง — หากทีมตรวจสอบปฏิเสธโฆษณาดังกล่าว จะไม่มีการจ่ายส่วนแบ่งใด ๆ สำหรับการชำระเงินนั้น การเติมเงินให้กับโฆษณาที่กำลังแสดงอยู่จะไม่มีความเสี่ยงดังกล่าว และส่วนแบ่งจะถูกแบ่งให้ทันที

เงื่อนไขการจ่ายเงิน

  • กระเป๋าเงินสำหรับการรับการจ่ายด้วยคริปโตได้ถูกตั้งค่าไว้ในบัญชีพันธมิตรของคุณแล้ว
  • คุณไม่จำเป็นต้องทำ KYC — บัญชีพันธมิตรของคุณได้ผ่านการตรวจสอบแล้วตั้งแต่ตอนที่สร้างบัญชี

ตัวอย่าง: การอ่านจำนวนหุ้นที่สะสม

GET https://api.adhub365.com/v1/partner/ad-revenue/earnings
Authorization: Bearer sk_sandbox_...
{
  "shares": [
    {
      "id": "share_1a2b...",
      "payment_id": "pay_9f2a...",
      "ad_id": "ad_7c31...",
      "partner_amount_usd": 140.0,
      "platform_amount_usd": 60.0,
      "status": "paid",
      "payable_after": "2026-08-03T00:00:00Z",
      "paid_at": "2026-08-05T10:12:00Z"
    }
  ],
  "total_payable_pending_usd": 0.0,
  "total_payable_usd": 0.0,
  "total_processing_usd": 0.0,
  "total_paid_usd": 140.0
}

จุดปลาย

บัญชี

POST/v1/partner/advertisers

สร้างบัญชีผู้ลงโฆษณาแทนผู้ใช้ของคุณคนหนึ่ง (โหมด Connect)

advertisers:write
GET/v1/partner/advertisers/{id}

ค้นหาบัญชีผู้ลงโฆษณาที่สร้างโดยพันธมิตรนี้

advertisers:read

โฆษณา

POST/v1/partner/ads

สร้างโฆษณา โฆษณาจะอยู่ในสถานะร่างตั้งแต่แรก สนามข้อมูล advertiser_type, promotion_type, link_type และ promoted_brand (เป็นตัวเลือก) ใช้เพื่อระบุประเภทโฆษณา เช่น โฆษณาแบบพันธมิตร (affiliate), โฆษณาแบบแนะนำ (referral), โฆษณาแบบผู้สร้างเนื้อหา (creator) หรือโฆษณาแบบบุคคล — ดูหมายเหตุด้านล่าง

ads:write
GET/v1/partner/ads/{id}

ค้นหาโฆษณา

ads:read
PATCH/v1/partner/ads/{id}

อัปเดตเนื้อหาบรรณาธิการ — ชื่อ, คำอธิบาย, ลิงก์, ประเภทผู้โฆษณา, ประเภทโปรโมชั่น, ประเภทลิงก์ และแบรนด์ที่ได้รับการโปรโมต ส่วนหมวดหมู่, พื้นที่ทางภูมิศาสตร์ และข้อมูลใดๆ ที่ระบบจัดอันดับใช้เพื่อวิเคราะห์ ไม่สามารถเปลี่ยนแปลงได้ที่นี่

ads:write
POST/v1/partner/ads/{id}/image

อัปโหลดภาพโฆษณาโดยตรง (JPEG/PNG/WebP, ขนาดสูงสุด 5 MB) ต้องทำก่อนการชำระเงินครั้งแรก — ดูส่วนการชำระเงินด้านล่าง

ads:write
POST/v1/partner/ads/{id}/image-url

ตั้งภาพโฆษณาจาก URL แทนที่จะอัปโหลดไฟล์ — เซิร์ฟเวอร์จะดาวน์โหลดและโฮสต์ภาพนั้นเอง ข้อกำหนดเดียวกัน: ต้องทำก่อนการชำระเงินครั้งแรก

ads:write
GET/v1/partner/ads/{id}/rank

อันดับปัจจุบัน ประเภท และพื้นที่เป้าหมายของโฆษณา

ads:read
GET/v1/partner/ads/{id}/stats

จำนวนการดูและจำนวนการคลิกทั้งหมดของโฆษณา — จำนวนวันที่ผ่านไปแล้ว/วันที่เหลืออยู่ มาจากฟิลด์ activated_at/expires_at ที่มีอยู่ใน GET /{id} แล้ว ส่วนอันดับมาจากการเรียก GET /{id}/rank

ads:read

การชำระเงิน

POST/v1/partner/payments

เริ่มการชำระเงินด้วยคริปโตสำหรับการซื้อครั้งแรกหรือการเติมเงิน การชำระเงินครั้งแรกจะล้มเหลวด้วยรหัสข้อผิดพลาด 422 เว้นแต่โฆษณาจะมีรูปภาพอยู่แล้ว — ดูส่วน uploadAdImage/setAdImageUrl ข้างต้น

payments:write
GET/v1/partner/payments/{id}

ตรวจสอบสถานะการชำระเงิน

payments:read

คำแนะนำ

POST/v1/partner/referrals

สร้างลิงก์แนะนำ

referrals:write
GET/v1/partner/referrals/{code}/earnings

รายได้จากการแนะนำแบบสะสม แบ่งตามสถานะ

referrals:read

การแบ่งปันรายได้จากโฆษณา

GET/v1/partner/ad-revenue/earnings

ส่วนแบ่ง 70% ของคุณจากจำนวนเงินที่ผู้โฆษณาที่คุณสร้างขึ้นในโหมด Connect จ่ายสำหรับโฆษณาของพวกเขา แบ่งตามสถานะ

ad-revenue:read

บันทึกการเข้าถึง

GET/v1/partner/access-log

ประวัติการเรียกใช้ทั้งหมดสำหรับคีย์นี้ — วิธี, เส้นทาง, IP, เวลา

ที่นั่น

จุดเชื่อมต่อสาธารณะ

GET/v1/rankings?category={id}&geo={scope}

อันดับแบบอ่านเท่านั้น สำหรับหมวดหมู่และพื้นที่ทางภูมิศาสตร์

สาธารณะ
GET/v1/tiers

7 ระดับราคาที่กำหนดไว้ (ระดับขั้นต่ำ, สิทธิประโยชน์ที่ปลดล็อกแล้ว)

สาธารณะ
GET/v1/referral-program

อัตราค่าคอมมิชชันที่ใช้อยู่ในปัจจุบันสำหรับระบบแนะนำแบบขั้นบันไดและ Leaders Pool

สาธารณะ
GET/v1/partner-program

การแบ่งรายได้จากโฆษณาในปัจจุบัน (โหมด Connect) ระหว่างคุณและ Annual Ads.

สาธารณะ
GET/v1/search?q={query}

การค้นหาด้วยภาษาธรรมชาติ — จะนำคำค้นหา เช่น "ผู้โฆษณาเฟอร์นิเจอร์ในเคนยา" ไปยังหมวดหมู่และพื้นที่ทางภูมิศาสตร์ที่ตรงกัน แล้วแสดงผลการจัดอันดับตามลำดับที่แท้จริง

สาธารณะ

โฆษณาแบบพันธมิตรและระบบแนะนำ

advertiser_type, promotion_type, link_type และ promoted_brand เป็นฟิลด์ที่เลือกใช้ได้ในการส่งคำขอ POST และ PATCH ไปยัง /v1/partner/ads — Annual Ads ไม่จำกัดเฉพาะธุรกิจที่โฆษณาตัวเองเท่านั้น เมื่อ link_type เป็น affiliate_link หรือ referral_invitation_link หรือ promotion_type เป็น affiliate_offer หรือ referral_opportunity แล้ว affiliate_terms_accepted ต้องเป็น true มิฉะนั้นคำขอจะถูกปฏิเสธด้วยรหัส 422 title มีขีดจำกัดสูงสุด 35 ตัวอักษร และ description สูงสุด 80 ตัวอักษร — ทั้งสองถูกบังคับใช้ด้านเซิร์ฟเวอร์ ไม่ใช่เพียงใน UI ของแดชบอร์ดเท่านั้น

เครื่องมือ AI

ทุกบัญชีผู้ลงโฆษณาจะได้รับชุดเครื่องมือ AI ที่มาพร้อมระบบ — ได้แก่ เครื่องสร้างเนื้อหาและภาพโฆษณา, ผู้ช่วยสนทนา, ที่ปรึกษาด้านงบประมาณ และเครื่องมือตรวจสอบ SEO จากภายนอก — ซึ่งใช้เครดิต AI ในการชำระค่าบริการ นอกเหนือจากค่าบริการรายปีแบบคงที่

ฟังก์ชันเหล่านี้ทำงานผ่านระบบเข้าสู่ระบบแดชบอร์ดของผู้ลงโฆษณาเอง (โทเค็นการเข้าถึงเซสชัน) ไม่ใช่ผ่านกุญแจ API ของพันธมิตร — ระบบการบูรณาการจากฝ่ายที่สามไม่สามารถเรียกใช้ฟังก์ชันเหล่านี้แทนผู้ลงโฆษณาได้
POST/v1/advertisers/{id}/ai/assistant

Ask Annual Ads — ผู้ช่วยสนทนาแบบลอยตัว ที่ให้บริการข้อมูลเท่านั้น และสามารถเข้าถึงข้อมูลบัญชีได้เฉพาะในโหมดอ่านเท่านั้น

สาธารณะ
POST/v1/advertisers/{id}/ai/creative-studio

สร้างชื่อโฆษณา คำอธิบาย และคำค้นหาจากคำอธิบายธุรกิจสั้นๆ

2 หน่วยกิต
POST/v1/advertisers/{id}/ai/creative-studio/image

สร้างภาพแสดงรายการ (PNG) จากคำอธิบายธุรกิจเดียวกัน ซึ่งได้ถูกจัดเก็บไว้แล้วและพร้อมที่จะแนบไปกับโฆษณา

8 หน่วยกิต
POST/v1/advertisers/{id}/ai/budget-advisor

การคาดการณ์ทางสถิติที่แท้จริง — ไม่ใช่การคาดเดาแบบสร้างขึ้น — เกี่ยวกับโอกาสที่จะรักษาอันดับที่กำหนดไว้ที่ 30/90/365 วัน

1 หน่วยกิต
POST/v1/advertisers/{id}/ai/seo-audit

วิเคราะห์เว็บไซต์ภายนอกของผู้ลงโฆษณาและเสนอแนวทางปรับปรุง SEO ที่ชัดเจน

2 หน่วยกิต

ตัวอย่าง — สร้างเนื้อหาโฆษณา

หมวดหมู่และคำอธิบายธุรกิจเดียวกันนี้ยังถูกใช้เพื่อขับเคลื่อนเครื่องมือสร้างภาพด้านล่างนี้ด้วย

POST https://api.adhub365.com/v1/advertisers/{advertiser_id}/ai/creative-studio
Authorization: Bearer <session access token>
Content-Type: application/json

{
  "category_name": "Furniture",
  "business_description": "We sell handmade oak dining tables"
}
{
  "title": "Handmade Oak Dining Tables — Built to Last",
  "description": "Solid oak dining tables crafted by hand, built to last a lifetime.",
  "keywords": ["oak furniture", "dining table", "handmade"],
  "credits_remaining": 8
}

สร้างภาพที่สอดคล้องกับโฆษณาเดียวกัน:

POST https://api.adhub365.com/v1/advertisers/{advertiser_id}/ai/creative-studio/image
Authorization: Bearer <session access token>
Content-Type: application/json

{
  "category_name": "Furniture",
  "business_description": "We sell handmade oak dining tables"
}
{
  "visual_url": "https://cdn.uploadscenter.com/file_01m1...",
  "credits_remaining": 4
}

วิดเจ็ต

ลากและวางหน่วยโฆษณาที่เตรียมไว้แล้วลงบนเว็บไซต์ของคุณ — ไม่ต้องสร้างเอง ไม่ต้องใช้ iframe สคริปต์จะแสดงผลโดยตรงบนหน้าเว็บภายใน Shadow DOM ที่แยกออกมา ดังนั้นสไตล์ของมันจะไม่รั่วไหลเข้าสู่เว็บไซต์ของคุณ และสไตล์ของเว็บไซต์คุณก็จะไม่รั่วไหลเข้าสู่สคริปต์นั้นเช่นกัน

เพิ่มมันลงในหน้าของคุณ

<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-count="4"
  data-columns="2"
></div>
<script async src="https://adhub365.com/widget.js"></script>

ตามค่าเริ่มต้น ระบบจะแสดงอันดับสาธารณะแบบเต็มสำหรับหมวดหมู่นั้น — ซึ่งรวมถึงผู้ลงโฆษณาทุกคนบนแพลตฟอร์ม ไม่ใช่เพียงผู้ลงโฆษณาที่คุณเชิญมาเท่านั้น หากต้องการแสดงเฉพาะโฆษณาจากผู้ลงโฆษณาที่คุณสร้างขึ้นผ่านโหมด Connect (ผู้ลงโฆษณาที่สร้างส่วนแบ่งรายได้ให้คุณ) ให้เพิ่ม data-partner พร้อมด้วย ID ของพันธมิตร (สามารถหาได้บนหน้า Developers ในแดชบอร์ดของคุณ):

<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>

หากผู้ลงโฆษณาของคุณครอบคลุมหลายหมวดหมู่ ให้ลบ "data-category" ออกทั้งหมด — โดยใช้เพียง "data-partner" เท่านั้น วิดเจ็ตจะแสดงโฆษณาทุกชิ้นของคุณในทุกหมวดหมู่ภายในตารางเดียว แทนที่จะต้องใช้บล็อกวิดเจ็ตหนึ่งบล็อกต่อหมวดหมู่:

<div
  class="annualads-widget"
  data-geo="global"
  data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>

ต้องการเพิ่มหน่วยแบบ footer ควบคู่กับหน่วยในเนื้อหา ซึ่งแต่ละหน่วยแสดงโฆษณาต่างกันหรือไม่? ให้เพิ่มบล็อก widget ที่สอง โดยตั้งค่า data-layout="compact" (โฆษณาเดียว ที่สามารถพับลงเป็นรูปเม็ดยาขนาดเล็ก) และตั้งค่า data-offset ให้เท่ากับจำนวนโฆษณาที่ widget ตัวแรกแสดงอยู่แล้ว:

<!-- in your content -->
<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-count="4"
  data-columns="2"
></div>

<!-- in your footer, showing different ads via data-offset -->
<div
  class="annualads-widget"
  data-category="YOUR_CATEGORY_ID"
  data-geo="global"
  data-layout="compact"
  data-offset="4"
></div>
<script async src="https://adhub365.com/widget.js"></script>

คุณสมบัติ

data-categoryรหัสหมวดหมู่ที่จะแสดง จำเป็นต้องกรอก — เว้นแต่จะตั้งค่า data-partner ไว้ ซึ่งในกรณีนี้ หากไม่กรอกรหัสหมวดหมู่ จะแสดงโฆษณาของพันธมิตรนั้นในทุกหมวดหมู่
data-geoขอบเขตทางภูมิศาสตร์: ท้องถิ่น, ระดับภูมิภาค หรือระดับโลก โดยค่าเริ่มต้นคือระดับโลก
data-countจำนวนโฆษณาที่จะแสดง ค่าเริ่มต้นคือ 4
data-columnsจำนวนคอลัมน์ของตาราง ค่าเริ่มต้นคือ 2
data-layoutgrid, list หรือ compact. ค่าเริ่มต้นคือ grid. โหมด compact จะแสดงโฆษณาเพียงชิ้นเดียว (ค่า data-count จะถูกละเว้น) พร้อมปุ่มเพื่อย่อให้เหลือเป็นรูปเม็ดยาขนาดเล็กและขยายกลับ — เป็นหน่วยแบบ footer ที่สคริปต์เองจะไม่กำหนดตำแหน่งให้คงที่ คุณจึงสามารถวางและจัดรูปแบบ div ที่บรรจุได้ตามที่ชอบบนหน้าเว็บของคุณเอง
data-offsetจำนวนโฆษณาอันดับต้นๆ ที่ต้องการข้าม ค่าเริ่มต้นคือ 0 ช่วยให้วิดเจ็ตที่สองบนหน้าเดียวกัน (เช่น วิดเจ็ตขนาดเล็กในส่วนท้ายหน้า และวิดเจ็ตแบบกริดที่อยู่ด้านบน) แสดงโฆษณาที่แตกต่างกัน แทนที่จะแสดงโฆษณาเดียวกันซ้ำสองครั้ง — ส่งค่าจำนวนโฆษณาที่วิดเจ็ตอีกตัวหนึ่งแสดงไปแล้ว
data-partnerID ของพันธมิตรของคุณ (สามารถหาได้บนหน้า Developers ในแดชบอร์ดของคุณ) เป็นข้อมูลที่เลือกใช้ได้ — หากไม่ใส่ ID นี้ วิดเจ็ตจะแสดงอันดับสาธารณะทั้งหมดสำหรับหมวดหมู่นั้น รวมถึงผู้ลงโฆษณาทุกคนบนแพลตฟอร์ม แต่หากใส่ ID นี้ วิดเจ็ตจะแสดงเฉพาะโฆษณาจากผู้ลงโฆษณาที่คุณนำเข้ามาผ่านโหมด Connect — คือผู้ลงโฆษณาที่สร้างส่วนแบ่งรายได้ให้คุณจริง ๆ

การแบ่งปันรายได้

วิธีที่ค่าคอมมิชชันจากการแนะนำของลูกค้าจะถึงมือพันธมิตร — ทั้งสัดส่วนเปอร์เซ็นต์ กลไกการจ่าย และเงื่อนไขเบื้องต้น

GET https://api.adhub365.com/v1/referral-program
{
  "levels": [
    {
      "level": 1,
      "percentage": 0.1
    }
  ],
  "leaders_pool_percentage_of_gmv": 0.05,
  "founding_advertiser_pool_percentage_of_gmv": 0.05,
  "payout_verification_window_hours": 48,
  "min_payout_usd": 1
}

ไม่ใช่จำนวนคงที่

เปอร์เซ็นต์ค่าคอมมิชชันถูกกำหนดไว้จากทางเราและอาจมีการเปลี่ยนแปลง — โปรดตรวจสอบค่าแบบเรียลไทม์จากจุดปลายนี้เสมอ แทนที่จะกำหนดค่าแบบคงที่

อัตโนมัติอย่างเต็มตัว

ไม่มีจุดสิ้นสุดการถอนเงิน งานที่กำหนดเวลาจะคำนวณรายได้ที่ถึงกำหนดชำระ จัดกลุ่มตามผู้ลงโฆษณา และจ่ายออกอัตโนมัติเมื่อเงื่อนไขทั้งหมดต่อไปนี้ได้รับการปฏิบัติตามครบถ้วน

เงื่อนไขการจ่ายเงิน

  • รายได้รวมที่ผู้ลงโฆษณาต้องจ่ายได้ถึงจำนวนขั้นต่ำสำหรับการจ่าย
  • กระเป๋าเงินสำหรับการรับการจ่ายด้วยคริปโตได้ถูกตั้งค่าไว้ในบัญชีของพวกเขาแล้ว
  • สถานะ KYC ของพวกเขาได้รับการยืนยันแล้ว

ตัวอย่าง: การอ่านรายได้ที่สะสม

GET https://api.adhub365.com/v1/partner/referrals/{code}/earnings
Authorization: Bearer sk_sandbox_...
{
  "code": "ann-2f8c",
  "earnings": [
    {
      "id": "earn_1a2b...",
      "payment_id": "pay_9f2a...",
      "amount_usd": 30.0,
      "status": "paid",
      "payable_after": "2026-08-01T00:00:00Z",
      "paid_at": "2026-08-03T14:22:00Z"
    }
  ],
  "total_payable_pending_usd": 0.0,
  "total_payable_usd": 0.0,
  "total_processing_usd": 0.0,
  "total_paid_usd": 30.0
}

ระดับราคา (กำลังใช้งานอยู่)

อ่านข้อมูลแบบเรียลไทม์จากจุดปลายนี้ — อย่ากำหนดค่าเหล่านี้แบบคงที่ เพราะค่าเหล่านี้อาจเปลี่ยนแปลงได้จากทางเรา สร้างตัวเลือกระดับราคาสำหรับผู้ใช้ของคุณเองแทนที่จะใช้ช่องกรอกจำนวนเงินฟรี: ราคาที่แสดงแต่ละรายการคือจำนวนเงินที่ส่งไปอย่างแม่นยำเมื่อสร้างการชำระเงิน และสิทธิประโยชน์ที่ปลดล็อกแล้วที่แสดงที่นี่จะบอกผู้ใช้อย่างชัดเจนว่าราคานั้นให้พวกเขาได้รับอะไร ดังนั้นพวกเขาจึงเลือกระดับราคาที่เข้าใจได้แทนที่จะต้องเดาตัวเลข

ระดับราคาปลดล็อก
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

ลิงก์ที่คลิกได้
Gold$500.00

Animation unlocked

ลิงก์ที่คลิกได้แอนิเมชัน
Platinum$1,000.00

Enhanced exposure

ลิงก์ที่คลิกได้แอนิเมชัน
Diamond$2,500.00

Premium placement

ลิงก์ที่คลิกได้แอนิเมชัน
Elite$5,000.00

Top-tier visibility

ลิงก์ที่คลิกได้แอนิเมชัน
Legendary$10,000.00

Maximum visibility & branding

ลิงก์ที่คลิกได้แอนิเมชัน

ขีดจำกัดการเรียกใช้

จำนวนคำขอถูกจำกัดต่อคีย์และต่อนาที ทุกการตอบกลับที่ผ่านการตรวจสอบความถูกต้องจะมีหัวเรื่อง X-RateLimit-Limit, X-RateLimit-Remaining และ X-RateLimit-Reset; หากเกินขีดจำกัด ระบบจะส่งรหัสข้อผิดพลาด 429 Too Many Requests พร้อมหัวเรื่อง Retry-After

รายชื่ออนุญาต IP

เป็นตัวเลือกตามแต่ละคู่ค้า จนกว่าคุณจะเพิ่มรายการใหม่ กุญแจของคุณจะรับคำขอจากที่อยู่ IP ใดก็ได้ — รายการแรกจะเปลี่ยนกุญแจทั้งหมดของคู่ค้านั้นให้รับคำขอเฉพาะจากรายชื่ออนุญาตเท่านั้น

Webhooks

เว็บฮุคทุกตัวจะได้รับการลงนามด้วย HMAC-SHA256 โดยใช้รหัสลับที่ออกเพียงครั้งเดียว ณ เวลาที่สร้าง — โปรดตรวจสอบลายเซ็นก่อนที่จะเชื่อถือข้อมูลที่ส่งมา เหตุการณ์จะถูกส่งไปยังพันธมิตรที่เป็นเจ้าของผู้ลงโฆษณาที่เกี่ยวข้องเท่านั้น

payment.succeededการชำระเงินได้รับการยืนยันแล้ว
payment.refundedการคืนเงินได้ดำเนินการแล้ว
ad.activatedโฆษณาจะถูกเปิดใช้งานโดยอัตโนมัติ หรือหลังจากที่ผู้ดูแลระบบตรวจสอบแล้ว
invoice.issuedได้ออกใบแจ้งหนี้แล้ว
referral.payout.completedค่าคอมมิชชันจากการแนะนำลูกค้าได้ถึงสถานะที่จ่ายแล้ว
referral.payout.failedการจ่ายเงินตามการแนะนำในชุดหนึ่งล้มเหลวที่ผู้ให้บริการ — รายได้ถูกส่งกลับไปยังบัญชีเงินที่ต้องจ่าย และระบบจะลองทำใหม่อีกครั้ง
rank.changedอันดับของโฆษณาอาจเปลี่ยนแปลง — รวมถึงเมื่อการชำระเงินของผู้ลงโฆษณาอื่นเป็นสาเหตุ
ad.expiring_soon30, 7 หรือ 1 วัน ก่อนที่โฆษณาจะหมดอายุ
partner_ad_revenue.payout.completedการจ่ายส่วนแบ่งรายได้จากโฆษณาได้เข้าสู่สถานะ "จ่ายแล้ว"
partner_ad_revenue.payout.failedการจ่ายส่วนแบ่งรายได้จากโฆษณาในชุดหนึ่งล้มเหลวที่ผู้ให้บริการ — ส่วนแบ่งดังกล่าวถูกส่งกลับไปยังสถานะ "ต้องจ่าย" และจะได้รับการลองใหม่

ชุดเครื่องมือพัฒนาซอฟต์แวร์

มีแผนที่จะปล่อย SDK อย่างเป็นทางการสำหรับ JavaScript/TypeScript และ Python ซึ่งถูกสร้างขึ้นจากข้อกำหนด API เดียวกันนี้ แต่ยังไม่ได้เผยแพร่ — จนกว่าจะมีการเผยแพร่ ให้เรียกใช้ HTTP API โดยตรง

เริ่มต้นอย่างรวดเร็ว

ยังไม่มี SDK — ฟังก์ชันเหล่านี้เรียก HTTP API โดยตรง และสามารถใช้งานได้ทันทีในทุกภาษา

cURL

curl -X POST https://api.adhub365.com/v1/partner/ads \
  -H "Authorization: Bearer sk_sandbox_..." \
  -H "Content-Type: application/json" \
  -d '{"advertiser_id":"adv_9f2a...","category_id":"cat_furniture","geo_scope":"local","title":"..."}'

JavaScript

await fetch("https://api.adhub365.com/v1/partner/ads", {
  method: "POST",
  headers: {
    Authorization: "Bearer sk_sandbox_...",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    advertiser_id: "adv_9f2a...",
    category_id: "cat_furniture",
    geo_scope: "local",
    title: "...",
  }),
});

Python

import requests

requests.post(
    "https://api.adhub365.com/v1/partner/ads",
    headers={"Authorization": "Bearer sk_sandbox_..."},
    json={
        "advertiser_id": "adv_9f2a...",
        "category_id": "cat_furniture",
        "geo_scope": "local",
        "title": "...",
    },
)