Mbangun langsung ing platform Annual Ads — gawe pengiklan, nerbitake iklan, miwiti pambayaran, lan nglacak peringkat, kabèh liwat API.
Deleng tabel rega lengkapSampeyan njaga 70% Apa sing dibayar para pengiklan ing Connect-mode kanggo iklané — dibayar kanthi otomatis menyang dompetmu. Delengen carane kerjane ing ngisor iki.
Saben panjalukan diotentikasi nganggo kunci rahasia ing header Otorisasi, nggunakake skema Bearer.
POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/jsonKunci API diwenehake marang akun mitra sing wis disetujoni dening tim Iklan Taunan.
Gawé akun pasangan| POST | /v1/partner/advertisersGawé akun pengiklan kanggo salah siji pangguna sampeyan (mode Sambung). | advertisers:write |
| GET | /v1/partner/advertisers/{id}Golekna akun pengiklan sing digawe dening mitra iki. | advertisers:read |
| POST | /v1/partner/adsGawé iklan. Iklan kasebut diwiwiti ing status draf. Lapangan advertiser_type, promotion_type, link_type, lan promoted_brand sing opsional nerangake afiliasi, rujukan, kreator, utawa iklan individu — delengen cathetan ing ngisor iki. | ads:write |
| GET | /v1/partner/ads/{id}Golet iklan. | ads:read |
| PATCH | /v1/partner/ads/{id}Nganyari isi editorial — judhul, katrangan, pranala, jinis pengiklan, jinis promosi, jinis pranala, lan merek sing dipromosikake. Kategori, geografi, lan apa wae sing diwaca dening mesin peringkat ora bisa diganti ing kene. | ads:write |
| POST | /v1/partner/ads/{id}/imageUnggah gambar iklan langsung (JPEG/PNG/WebP, maksimal 5 MB). Iki dibutuhake sadurunge pambayaran kapisan — delengen grup pambayaran ing ngisor iki. | ads:write |
| POST | /v1/partner/ads/{id}/image-urlAtur gambar iklan saka URL tinimbang ngunggah file — serveré sing njupuk lan nyimpen maneh dhéwé. Kebutuhan sing padha: kudu rampung sadurungé pambayaran kapisan. | ads:write |
| GET | /v1/partner/ads/{id}/rankPeringkat saiki, kategori, lan cakupan geografis kanggo iklan. | ads:read |
| GET | /v1/partner/ads/{id}/statsJumlah total tampilan lan klik kanggo iklan — dina sing wis kliwat/dina sing isih ana asalé saka lapangan activated_at/expires_at sing wis ana ing GET /{id}, lan peringkat asalé saka GET /{id}/rank. | ads:read |
| POST | /v1/partner/paymentsMiwiwiti pambayaran kripto kanggo pambelian awal utawa top-up. Pambayaran awal gagal nganggo kode 422 kajaba iklan wis duwe gambar — delengen uploadAdImage/setAdImageUrl ing ndhuwur. | payments:write |
| GET | /v1/partner/payments/{id}Priksa status pambayaran. | payments:read |
| POST | /v1/partner/referralsGawé pranala rujukan. | referrals:write |
| GET | /v1/partner/referrals/{code}/earningsPenghasilan rujukan kumulatif, dipérang miturut status. | referrals:read |
| GET | /v1/partner/ad-revenue/earnings70% bagéanmu saka apa sing dibayar para pengiklan sing kowe gawe ing mode Connect kanggo iklané, dipérang miturut status. | ad-revenue:read |
| GET | /v1/partner/access-logRiwayat telpon lengkap kanggo kunci iki — metode, jalur, IP, cap wektu. | Ana |
| GET | /v1/rankings?category={id}&geo={scope}Peringkat mung-baca kanggo kategori lan lingkup geografis. | Umum |
| GET | /v1/tiers7 tingkat rega sing wis dikonfigurasi (ambang, keuntungan sing wis mbukak). | Umum |
| GET | /v1/referral-programPersentase komisi sing saiki aktif kanggo kaskade rujukan lan Kolam Pemimpin. | Umum |
| GET | /v1/partner-programPembagian pendapatan iklan saiki (mode Connect) antarane sampeyan lan Annual Ads. | Umum |
| GET | /v1/search?q={query}Panelusuran basa alam — ngarahake pitakonan kaya "pengiklan perabot ing Kenya" menyang kategori lan lingkup geografis sing cocog, banjur mbalekake peringkat kasebut kanthi urutan nyata sing persis. | Umum |
Iklan afiliasi lan rujukan
advertiser_type, promotion_type, link_type, lan promoted_brand iku lapangan opsional ing POST lan PATCH /v1/partner/ads — Annual Ads ora winates mung kanggo bisnis sing ngiklanake awake dhewe. Nalika link_type yaiku affiliate_link utawa referral_invitation_link, utawa promotion_type yaiku affiliate_offer utawa referral_opportunity, affiliate_terms_accepted kudu bener utawa panjalukan bakal ditolak nganggo kode 422. judhul diwatesi 35 karakter lan katrangan 80 — loro-lorone ditrapake ing sisih server, ora mung ing UI dashboard.
Saben akun pengiklan entuk sakumpulan piranti AI bawaan — generator konten iklan lan visual, asisten obrolan, penasihat anggaran, lan auditor SEO eksternal — sing mbayar nganggo kredit AI, saliyane rega tahunan sing tetep.
| POST | /v1/advertisers/{id}/ai/assistantAsk Annual Ads — asisten obrolan apung, mung kanggo informasi, mung maca data akun. | Umum |
| POST | /v1/advertisers/{id}/ai/creative-studioNgasilake judhul iklan, katrangan, lan tembung kunci saka katrangan bisnis sing cekak. | 2 kredit |
| POST | /v1/advertisers/{id}/ai/creative-studio/imageGawé gambar daftar (PNG) saka katrangan bisnis sing padha, wis dihosting lan siap dipasang ing iklan. | 8 kredit |
| POST | /v1/advertisers/{id}/ai/budget-advisorProyeksi statistik sejati — ora tau dadi tebak-tebakan generatif — babagan kamungkinan njaga peringkat tartamtu ing 30/90/365 dina. | 1 kredit |
| POST | /v1/advertisers/{id}/ai/seo-auditAnalisa situs web eksternal saka pengiklan lan usulake perbaikan SEO sing konkret. | 2 kredit |
Kategori sing padha lan katrangan bisnis uga nyokong generator gambar ing ngisor iki.
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
}Gawé visual sing cocog kanggo iklan sing padha:
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
}Selehake unit iklan siap pakai ing situsmu — ora perlu nggawe, ora perlu iframe. Skrip iki nampilake langsung ing kaca liwat Shadow DOM sing kapisah, supaya gaya saka iklan ora bakal mlebu situsmu, lan gaya situsmu uga ora bakal mlebu ing iklan.
<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>Secara baku, iki nampilake peringkat umum lengkap kanggo kategori — saben pengiklan ing platform, ora mung sing wis sampeyan lebokake. Kanggo nampilake mung iklan saka pengiklan sing sampeyan gawe liwat mode Connect (sing ngasilake bagéan sampeyan), tambahi data-partner nganggo ID mitra sampeyan (goleki ing kaca Pengembang ing dasbor sampeyan):
<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>Yen pengiklan sampeyan nyakup pirang-pirang kategori, buwang data-category sakabehe — mung nganggo data-partner, widget bakal nampilake kabeh iklan sampeyan saka kabeh kategori ing siji grid, tinimbang kudu siji blok widget kanggo saben kategori:
<div
class="annualads-widget"
data-geo="global"
data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>Kowe pengin unit gaya footer ing jejere unit ing kontenmu, saben nuduhake iklan sing beda? Tambahna blok widget kapindho nganggo data-layout="compact" (siji iklan, bisa digulung dadi pil cilik) lan data-offset disetel miturut pira iklan sing wis ditampilake dening widget kapisanmu:
<!-- 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 kanggo ditampilake. Wajib — kajaba yen data-partner wis disetel, ing kono ora nyantumake bakal nampilake iklan mitra kasebut ing saben kategori. |
data-geo | Cakupan geo: lokal, regional, utawa global. Defaulté global. |
data-count | Jumlah iklan sing bakal ditampilake. Defaulté 4. |
data-columns | Jumlah kolom grid. Defaulté 2. |
data-layout | grid, list, utawa compact. Defaulté grid. compact nampilaké siji iklan (data-count diabaikan) karo tombol kanggo nyepet dadi pil cilik lan mbalèkaké manèh — unit gaya footer, ora tau dipasang fixed déning skripé dhéwé, kowé bisa nempataké lan ngatur gaya div konténer miturut karepmu ing kaca dhéwé. |
data-offset | Jumlah iklan peringkat paling dhuwur sing bakal dilangkahi. Defaulté 0. Ngidini widget kapindho ing kaca sing padha (umpamane sing kompak ing footer lan sing grid luwih ndhuwur) nampilake iklan sing béda tinimbang mbaleni iklan sing padha kaping pindho — wenehana jumlah iklan sing wis ditampilake déning widget liyané. |
data-partner | ID mitramu (golekna ing kaca Developers ing dashboardmu). Opsional — tanpa iku, widget bakal nampilake peringkat umum lengkap kanggo kategori kasebut, kabeh pengiklan ing platform. Kanthi iku, mung iklan saka pengiklan sing kowe ajak liwat mode Connect — sing pancen ngasilake bagéanmu. |
Panjaluk diwatesi saben kunci saben menit. Saben tanggapan sing wis diotentikasi nggawa header X-RateLimit-Limit, X-RateLimit-Remaining, lan X-RateLimit-Reset; yen ngluwihi watesan bakal mbalekake kode kesalahan 429 Too Many Requests karo header Retry-After.
Opsional, saben mitra. Nganti sampeyan nambah entri, kunci sampeyan nampa panyuwunan saka sembarang IP — entri pisanan ngganti kabeh kunci mitra kasebut dadi mung ing dhaptar ijin.
Saben webhook ditandhani nganggo HMAC-SHA256 kanthi rahasia sing mung diwenehake sepisan nalika digawe — priksa tandha tangan sadurunge percaya karo muatan. Acara mung dikirim menyang mitra sing nduwèni pengiklan sing cocog.
payment.succeeded | Pembayaran wis dikonfirmasi. |
payment.refunded | Pambayaran bali wis ditindakake. |
ad.activated | Iklan dadi aktif, kanthi otomatis utawa sawisé ditinjau admin. |
invoice.issued | Faktur wis diterbitake. |
referral.payout.completed | Komisi rujukan tekan status dibayar. |
referral.payout.failed | Batch pambayaran rujukan gagal ing panyedhiya — penghasilan bali menyang akun sing isih kudu dibayar lan bakal dicoba maneh. |
rank.changed | Peringkat iklan bisa owah — kalebu nalika pambayaran saka pengiklan liyane nyebabake owah-owahan kasebut. |
ad.expiring_soon | 30, 7, utawa 1 dina sadurunge iklan kadaluwarsa. |
partner_ad_revenue.payout.completed | Pembayaran bagi hasil pendapatan iklan wis tekan status dibayar. |
partner_ad_revenue.payout.failed | Klompok pambayaran bagi hasil iklan gagal ing panyedhiya — saham bali menyang dhaftar sing isih bisa dibayar lan dicoba maneh. |
SDK resmi JavaScript/TypeScript lan Python, sing digawe saka spesifikasi API sing padha iki, wis direncanakake nanging durung diterbitake — nganti wektu kuwi, gunakake HTTP API langsung.
Durung ana SDK — iki nelpon HTTP API langsung lan bisa digunakake saiki ing basa apa wae.
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": "...",
},
)