Ngawangun langsung dina platform Annual Ads — jieun pangiklan, nerbitkeun iklan, ngamimitian pamayaran, jeung ngalacak peringkat, sakabéhna ngaliwatan API.
Tingali grid harga lengkepAnjeun nahan 70% Ti naon anu dibayar ku pangiklan Connect-mode pikeun iklan maranéhna — dibayar sacara otomatis kana dompét anjeun. Tingali kumaha jalanna di handap.
Unggal pamundut dioténtikasi ku konci rusiah dina header Otorisasi, ngagunakeun skéma Bearer.
POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/jsonKunci API diterbitkeun ka akun mitra anu disatujuan ku tim Iklan Taunan.
Jieun akun pasangan| POST | /v1/partner/advertisersJieun akun pangiklan pikeun salah sahiji pangguna anjeun (mode Connect). | advertisers:write |
| GET | /v1/partner/advertisers/{id}Parios akun pangiklan anu dijieun ku mitra ieu. | advertisers:read |
| POST | /v1/partner/adsJieun iklan. Ieu dimimitian dina status draf. Widang advertiser_type, promotion_type, link_type, jeung promoted_brand anu opsional ngajelaskeun afiliasi, rujukan, kreator, atawa iklan individu — tingali catetan di handap. | ads:write |
| GET | /v1/partner/ads/{id}Pilarian iklan. | ads:read |
| PATCH | /v1/partner/ads/{id}Apdet eusi éditorial — judul, katerangan, tautan, jinis pangiklan, jinis promosi, jinis tautan, jeung mérek anu dipromosikeun. Kategori, géografi, jeung sagala hal anu dibaca ku mesin peringkat moal tiasa dirobah di dieu. | ads:write |
| POST | /v1/partner/ads/{id}/imageUnggah gambar iklan langsung (JPEG/PNG/WebP, maksimal 5 MB). Diperlukeun saméméh mayar kahiji — tingali grup pamayaran di handap. | ads:write |
| POST | /v1/partner/ads/{id}/image-urlAtur gambar iklan tina URL tinimbang unggah file — serverna sorangan nu ngambil jeung nampung deui éta gambar. Saratna sarua: diperlukeun saméméh pamayaran kahiji. | ads:write |
| GET | /v1/partner/ads/{id}/rankPangkat ayeuna, kategori, jeung lingkup géografis pikeun iklan. | ads:read |
| GET | /v1/partner/ads/{id}/statsJumlah total tampilan jeung klik pikeun iklan — poé nu geus kaliwat/sisana asalna tina widang activated_at/expires_at nu geus aya dina GET /{id}, sarta peringkat asalna tina GET /{id}/rank. | ads:read |
| POST | /v1/partner/paymentsMimitian mayar nganggo kripto pikeun pameseran awal atawa top-up. Pamayaran awal gagal kalayan kode 422 lamun iklan can boga gambar — tingali uploadAdImage/setAdImageUrl di luhur. | payments:write |
| GET | /v1/partner/payments/{id}Pariksa status pamayaran. | payments:read |
| POST | /v1/partner/referralsJieun tautan rujukan. | referrals:write |
| GET | /v1/partner/referrals/{code}/earningsPendapatan rujukan kumulatif, dibagi nurutkeun status. | referrals:read |
| GET | /v1/partner/ad-revenue/earnings70% bagian anjeun tina naon anu dibayar ku para pangiklan anu anjeun jieun dina mode Connect pikeun iklan maranéhna, dibagi nurutkeun status. | ad-revenue:read |
| GET | /v1/partner/access-logSajarah telepon lengkep pikeun konci ieu — métode, jalur, IP, cap waktos. | Aya |
| GET | /v1/rankings?category={id}&geo={scope}Peringkat baca-wungkul pikeun kategori jeung lingkup géografi. | Publik |
| GET | /v1/tiers7 tingkatan harga anu diatur (ambang, kauntungan anu kabuka). | Publik |
| GET | /v1/referral-programPerséntase komisi anu ayeuna aktip pikeun kaskade rujukan jeung Kolam Pamimpin. | Publik |
| GET | /v1/partner-programPembagian panghasilan iklan ayeuna (mode Connect) antara anjeun jeung Annual Ads. | Publik |
| GET | /v1/search?q={query}Pilarian basa alami — ngalalaworakeun patalékan sapertos "pangiklan parabot di Kenya" ka kategori jeung lingkup géografi nu cocog, teras mulangkeun peringkat éta dina urutan sabenerna. | Publik |
Iklan afiliasi jeung rujukan
advertiser_type, promotion_type, link_type, jeung promoted_brand mangrupa widang opsional dina POST jeung PATCH /v1/partner/ads — Iklan Taunan henteu diwatesan pikeun usaha anu ngiklankeun dirina sorangan. Lamun link_type nyaéta affiliate_link atawa referral_invitation_link, atawa promotion_type nyaéta affiliate_offer atawa referral_opportunity, affiliate_terms_accepted kudu bener, lamun henteu pamundutna ditolak kalayan kode 422. judul diwatesan nepi ka 35 karakter jeung katerangan nepi ka 80 — duanana dilaksanakeun di sisi server, lain ngan dina UI dasbor.
Unggal akun pangiklan meunang sakumpulan pakakas AI bawaan — generator eusi iklan jeung visual, asistén paguneman, penaséhat anggaran, jeung auditor SEO éksternal — anu mayarna maké kredit AI, salian ti harga taunan anu tetep.
| POST | /v1/advertisers/{id}/ai/assistantAsk Annual Ads — asisten paguneman ngambang, ngan pikeun inpormasi, ngan maca data akun. | Publik |
| POST | /v1/advertisers/{id}/ai/creative-studioJieun judul iklan, katerangan, jeung kecap konci tina katerangan bisnis singket. | 2 kredit |
| POST | /v1/advertisers/{id}/ai/creative-studio/imageJieun gambar daptar (PNG) tina katerangan usaha anu sarua, geus di-hosting jeung siap dipasang kana iklan. | 8 kredit |
| POST | /v1/advertisers/{id}/ai/budget-advisorProyéksi statistik anu sajati — lain saukur tebak-tebakan generatif — ngeunaan kamungkinan ngajaga peringkat nu tangtu dina 30/90/365 poé. | 1 kredit |
| POST | /v1/advertisers/{id}/ai/seo-auditAnalisis situs wéb éksternal milik pangiklan sorangan sareng usulkeun paningkatan SEO anu konkrit. | 2 kredit |
Kategori anu sarua jeung katerangan bisnis ogé ngajalankeun generator gambar di handap.
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
}Jieun visual nu cocog pikeun iklan anu sarua:
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
}Pasang unit iklan siap-paké kana situs anjeun — teu aya léngkah ngawangun, teu aya iframe. Skripna nampilkeun langsung kana kaca dina Shadow DOM nu misah, jadi gaya na moal bocor kana situs anjeun, sarta gaya situs anjeun ogé moal bocor kana éta.
<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>Bawana ieu nembongkeun peringkat umum lengkep pikeun kategori — sakabéh pangiklan dina platform, henteu ngan ukur anu anjeun bawa. Pikeun nembongkeun ngan iklan ti pangiklan anu anjeun jieun ngaliwatan mode Connect (anu ngahasilkeun bagian anjeun), tambahkeun data-partner kalayan ID mitra anjeun (manggihan éta dina kaca Pamekar dina dasbor anjeun sorangan):
<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>Lamun pangiklan anjeun nyebar dina sababaraha kategori, hapus data-category sakabéhna — ku ngan ukur maké data-partner, widget bakal némbongkeun sakabéh iklan anjeun di sakabéh kategori dina hiji grid, tinimbang kudu hiji blok widget pikeun tiap kategori:
<div
class="annualads-widget"
data-geo="global"
data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>Hayang unit gaya footer gigireun unit dina eusi anjeun, duanana némbongkeun iklan anu béda? Tambahkeun blok widget kadua kalayan data-layout="compact" (hiji iklan, bisa dilipet jadi pil leutik) jeung data-offset disetél sabaraha iklan anu geus ditingalikeun ku widget munggaran anjeun:
<!-- 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 | ID Kategori pikeun dipidangkeun. Wajib — kajaba lamun data-partner geus disetél, dina hal éta henteu nembongkeun iklan ti mitra éta dina sagala kategori. |
data-geo | Lingkup géografis: lokal, régional, atawa global. Defaultna global. |
data-count | Jumlah iklan anu bakal dipidangkeun. Defaultna 4. |
data-columns | Jumlah kolom grid. Defaultna 2. |
data-layout | grid, daptar, atawa kompak. Defaultna grid. Kompak némbongkeun hiji iklan (data-count diabaikan) kalayan tombol pikeun nyumputkeun jadi pil leutik jeung ngabalikeun deui — hiji unit gaya footer, teu kungsi dipasang fixed ku skripna sorangan, anjeun nempatkeun jeung ngagaya div wadah sakahayang anjeun dina kaca sorangan. |
data-offset | Jumlah iklan pangluhurna anu rék dilangkungan. Defaultna 0. Ieu ngamungkinkeun widget kadua dina kaca anu sarua (contona widget kompak di footer jeung widget grid di luhur) némbongkeun iklan anu béda tinimbang ngulang iklan anu sarua dua kali — pasihkeun jumlah iklan anu geus ditingalkeun ku widget séjén. |
data-partner | ID mitra anjeun (manggihanana dina kaca Pangembang dina dasbor anjeun). Opsional — tanpa éta, widget nembongkeun peringkat umum lengkep pikeun kategori éta, sadaya pangiklan dina platform. Kalayan éta, ngan iklan ti pangiklan anu anjeun bawa ngaliwatan mode Connect — anu sabenerna ngahasilkeun bagian anjeun. |
Pamundut diwatesan per konci, per menit. Unggal réspon anu geus dioténtikasi ngandung header X-RateLimit-Limit, X-RateLimit-Remaining, jeung X-RateLimit-Reset; lamun ngaleuwihan watesan bakal ngabalikeun kode kasalahan 429 Too Many Requests kalayan header Retry-After.
Opsional, per pasangan. Nepi ka anjeun nambahkeun éntri, konci anjeun nampi pamundut ti sagala IP — éntri kahiji ngalihkeun sakabéh konci pasangan éta jadi ngan ukur dina daptar ijin.
Unggal webhook ditandatanganan ku HMAC-SHA256 maké rusiah anu dikaluarkeun sakali nalika waktos nyiptakeun — pariksa tanda tangan saméméh percaya kana muatan. Kajadian ngan dikirimkeun ka mitra anu miboga pangiklan anu patali.
payment.succeeded | Pembayaran geus dikonfirmasi. |
payment.refunded | Pamulangan dana geus dilaksanakeun. |
ad.activated | Iklan jadi aktif sacara otomatis atawa sanggeus ditinjau ku admin. |
invoice.issued | Faktur geus diterbitkeun. |
referral.payout.completed | Komisi rujukan ngahontal status dibayar. |
referral.payout.failed | Batch pamayaran rujukan gagal di panyadia — panghasilan balik deui ka akun anu kudu dibayar sarta dicobaan deui. |
rank.changed | Peringkat iklan robah — kaasup nalika pamayaran ti pangiklan séjén nyababkeunana. |
ad.expiring_soon | 30, 7, atawa 1 poé saméméh iklan béak waktosna. |
partner_ad_revenue.payout.completed | Pembayaran bagi hasil pendapatan iklan ngahontal status dibayar. |
partner_ad_revenue.payout.failed | Batch pamayaran bagi hasil iklan gagal di provider — bagian-bagianna balik deui ka status 'payable' sarta dicobian deui. |
SDK resmi JavaScript/TypeScript jeung Python, nu dijieun tina spésifikasi API nu sarua ieu, geus direncanakeun tapi can diterbitkeun — dugi ka harita, nyauran HTTP API sacara langsung.
Can aya SDK — ieu nyauran HTTP API langsung jeung bisa dianggo ayeuna dina basa naon waé.
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": "...",
},
)