Annual Ads

Dokumentasi pangembang

Mbangun langsung ing platform Annual Ads — gawe pengiklan, nerbitake iklan, miwiti pambayaran, lan nglacak peringkat, kabèh liwat API.

Deleng tabel rega lengkap

Sampeyan njaga 70% Apa sing dibayar para pengiklan ing Connect-mode kanggo iklané — dibayar kanthi otomatis menyang dompetmu. Delengen carane kerjane ing ngisor iki.

URL dhasar

https://api.adhub365.com
OpenAPI 3

Otentikasi

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/json

Sandbox lan produksi

Kunci sandbox lan kunci produksi dipisahake kanthi tuntas — kunci sandbox ora bakal bisa maca utawa nulis data sing digawe dening kunci produksi, lan kosok balene.

Teleskop

Saben kunci winates mung kanggo lingkup sing wis ditemtokake nalika diterbitake — kunci ora bakal nduwé akses luwih saka akun mitra sing nggawe.

Kunci API diwenehake marang akun mitra sing wis disetujoni dening tim Iklan Taunan.

Gawé akun pasangan

Pembagian pendapatan iklan

Yen kunci API sampeyan nggawe akun pengiklan kanggo pangguna sampeyan dhéwé (mode Connect — delengen Autentikasi ing ndhuwur), sampeyan bakal entuk bagéan saka apa sing dibayar para pengiklan mau kanggo iklané. Bagi-bagi ing ngisor iki diwaca langsung saka endpoint sing padha, ora tau dikode keras, lan sakabehe kapisah saka komisi rujukan sing ana ing ngisor kaca iki.

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

70%

Dadi kanggo sampeyan

Dibayar kanthi otomatis menyang dompet pembayaran sing wis sampeyan atur — ora perlu panyuwunan narik dana.

30%

Mlaku menyang Iklan Taunan

Nyakup moderasi, hosting, lan infrastruktur peringkat sing digunakake kanggo iklan sampeyan.

Carane kerjane

  1. Salah siji pengiklan ing mode Connect mbayar iklan liwat integrasimu.
  2. Iklan kasebut ditinjau lan disetujoni — kanthi otomatis, utawa dening tim moderasi kita.
  3. Pangsa sampeyan wis ana ing antrian kanggo pambayaran otomatis menyang dompet sampeyan, mekanisme sing padha karo program rujukan ing ngisor iki.
Saperangan ora bakal digawe nganti iklan kasebut bener-bener disetujoni — yen moderasi nolak, ora ana utang babagan pambayaran kuwi. Top-up ing iklan sing wis aktif ora nggawa risiko kaya ngono lan langsung dibagi.

Kahanan pambayaran

  • Dompet pembayaran kripto wis diatur ing akun mitramu.
  • Ora perlu KYC saka sisih sampeyan — akun mitra sampeyan wis diverifikasi nalika digawe.

Tuladha: maca saham sing wis ditumpukake

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
}

Titik pungkasan

Rekening

POST/v1/partner/advertisers

Gawé 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

Iklan

POST/v1/partner/ads

Gawé 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}/image

Unggah 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-url

Atur 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}/rank

Peringkat saiki, kategori, lan cakupan geografis kanggo iklan.

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

Jumlah 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

Pembayaran

POST/v1/partner/payments

Miwiwiti 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

Rujukan

POST/v1/partner/referrals

Gawé pranala rujukan.

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

Penghasilan rujukan kumulatif, dipérang miturut status.

referrals:read

Pembagian pendapatan iklan

GET/v1/partner/ad-revenue/earnings

70% bagéanmu saka apa sing dibayar para pengiklan sing kowe gawe ing mode Connect kanggo iklané, dipérang miturut status.

ad-revenue:read

Cathetan akses

GET/v1/partner/access-log

Riwayat telpon lengkap kanggo kunci iki — metode, jalur, IP, cap wektu.

Ana

Titik pungkasan umum

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

Peringkat mung-baca kanggo kategori lan lingkup geografis.

Umum
GET/v1/tiers

7 tingkat rega sing wis dikonfigurasi (ambang, keuntungan sing wis mbukak).

Umum
GET/v1/referral-program

Persentase komisi sing saiki aktif kanggo kaskade rujukan lan Kolam Pemimpin.

Umum
GET/v1/partner-program

Pembagian 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.

Piranti AI

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.

Iki mlaku liwat login dashboard pengiklan dhewe (token akses sesi), dudu liwat kunci API mitra — integrasi pihak katelu ora bisa nelpon mau atas jeneng pengiklan.
POST/v1/advertisers/{id}/ai/assistant

Ask Annual Ads — asisten obrolan apung, mung kanggo informasi, mung maca data akun.

Umum
POST/v1/advertisers/{id}/ai/creative-studio

Ngasilake judhul iklan, katrangan, lan tembung kunci saka katrangan bisnis sing cekak.

2 kredit
POST/v1/advertisers/{id}/ai/creative-studio/image

Gawé gambar daftar (PNG) saka katrangan bisnis sing padha, wis dihosting lan siap dipasang ing iklan.

8 kredit
POST/v1/advertisers/{id}/ai/budget-advisor

Proyeksi 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-audit

Analisa situs web eksternal saka pengiklan lan usulake perbaikan SEO sing konkret.

2 kredit

Tuladha — ngasilake konten iklan

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
}

Widget

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.

Tambahna ing kaca sampeyan

<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>

Sipat-sipat

data-categoryID Kategori kanggo ditampilake. Wajib — kajaba yen data-partner wis disetel, ing kono ora nyantumake bakal nampilake iklan mitra kasebut ing saben kategori.
data-geoCakupan geo: lokal, regional, utawa global. Defaulté global.
data-countJumlah iklan sing bakal ditampilake. Defaulté 4.
data-columnsJumlah kolom grid. Defaulté 2.
data-layoutgrid, 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-offsetJumlah 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-partnerID 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.

Pembagian pendapatan

Kepiye komisi rujukan saka mitra sejatine tekan marang dheweke — persentase, mekanisme pambayaran, lan prasyarat.

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
}

Ora nomer sing tetep

Persentase komisi wis diatur ing sisih kita lan bisa owah — tansah waca langsung saka endpoint iki tinimbang ngetik nilai kanthi tetep.

Sakabehe otomatis

Ora ana titik pungkasan penarikan. Pakaryan sing dijadwalake nglumpukake penghasilan sing bisa dibayar, nggolongake miturut saben pengiklan, lan mbayar kanthi otomatis sawise kabeh kahanan ing ngisor iki kacumponi.

Kahanan pambayaran

  • Total penghasilan sing kudu dibayar dening pengiklan wis tekan jumlah pambayaran minimal.
  • Dompet pembayaran kripto wis diatur ing akuné.
  • Status KYC-e wis diverifikasi.

Tuladha: maca penghasilan sing wis numpuk

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
}

Tingkat rega (langsung)

Waca langsung saka endpoint iki — aja tau hardcode nilai-nilai iki, amarga bisa owah saka sisih kita. Gawé pemilih tingkat kanggo pangguna sampeyan tinimbang kolom jumlah gratis: saben rega sing ditampilake wis jumlah pas sing kudu dikirim nalika nggawe pambayaran, lan keuntungan sing wis kabuka ing kene nerangake persis apa sing dipikolehi pangguna saka rega kasebut, supaya padha milih rega sing dipahami tinimbang nebak angka.

TingkatReganeMbukak kunci
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

Tautan sing bisa diklik
Gold$500.00

Animation unlocked

Tautan sing bisa diklikAnimasi
Platinum$1,000.00

Enhanced exposure

Tautan sing bisa diklikAnimasi
Diamond$2,500.00

Premium placement

Tautan sing bisa diklikAnimasi
Elite$5,000.00

Top-tier visibility

Tautan sing bisa diklikAnimasi
Legendary$10,000.00

Maximum visibility & branding

Tautan sing bisa diklikAnimasi

Watesan laju

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.

Dhaptar ijin IP

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.

Cangkang web

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.succeededPembayaran wis dikonfirmasi.
payment.refundedPambayaran bali wis ditindakake.
ad.activatedIklan dadi aktif, kanthi otomatis utawa sawisé ditinjau admin.
invoice.issuedFaktur wis diterbitake.
referral.payout.completedKomisi rujukan tekan status dibayar.
referral.payout.failedBatch pambayaran rujukan gagal ing panyedhiya — penghasilan bali menyang akun sing isih kudu dibayar lan bakal dicoba maneh.
rank.changedPeringkat iklan bisa owah — kalebu nalika pambayaran saka pengiklan liyane nyebabake owah-owahan kasebut.
ad.expiring_soon30, 7, utawa 1 dina sadurunge iklan kadaluwarsa.
partner_ad_revenue.payout.completedPembayaran bagi hasil pendapatan iklan wis tekan status dibayar.
partner_ad_revenue.payout.failedKlompok pambayaran bagi hasil iklan gagal ing panyedhiya — saham bali menyang dhaftar sing isih bisa dibayar lan dicoba maneh.

Kit Pangembangan Piranti Lunak

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.

Miwiwitan kanthi cepet

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": "...",
    },
)