Annual Ads

Nyaraka za msanidi programu

Jenga moja kwa moja kwenye jukwaa la Matangazo ya Mwaka — tengeneza watangazaji, chapisha matangazo, anzisha malipo, na fuatilia nafasi, yote kupitia API.

Tazama jedwali kamili la bei

Unabaki na 70% ya kile watangazaji wako wa Connect-mode wanacholipia kwa matangazo yao — hulipwa moja kwa moja kwenye pochi yako. Tazama jinsi inavyofanya kazi hapa chini.

URL ya msingi

https://api.adhub365.com
OpenAPI 3

Uthibitishaji

Kila ombi linathibitishwa kwa kutumia ufunguo wa siri katika kichwa cha idhini, kwa kutumia mpangilio wa Bearer.

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

Sandbox na uzalishaji

Funguo za sandbox na za uzalishaji zimetengwa kabisa — funguo za sandbox haiwezi kamwe kusoma au kuandika data iliyoundwa na funguo za uzalishaji, na kinyume chake.

Vikomo

Kila ufunguo umepunguzwa kwa wigo uliotolewa — ufunguo hauwezi kamwe kuwa na upatikanaji zaidi kuliko akaunti ya mshirika iliyouunda.

Funguo za API hutolewa kwa akaunti za washirika walioidhinishwa na timu ya Matangazo ya Mwaka.

Unda akaunti ya mshirika

Mgawanyo wa mapato ya matangazo

Ikiwa funguo zako za API zinaunda akaunti za watangazaji kwa watumiaji wako wenyewe (hali ya Kuunganisha — angalia Uthibitishaji hapo juu), unapata sehemu ya kile watangazaji hao wanacholipa kwa matangazo yao. Mgawanyo ulio hapa chini unasomwa moja kwa moja kutoka kwenye kiunganishi hiki, haujawahi kuwekwa moja kwa moja kwenye msimbo, na ni tofauti kabisa na kamisheni ya rufaa iliyo chini zaidi kwenye ukurasa huu.

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

70%

Inakujia

Malipo hufanywa kiotomatiki kwenye pochi yako ya malipo uliyoiweka — hakuna haja ya kuomba kutoa pesa.

30%

Inakwenda kwenye Matangazo ya Mwaka

Inashughulikia udhibiti, mwenyeji, na miundombinu ya upangaji ambayo matangazo yako yanayotumia.

Jinsi inavyofanya kazi

  1. Mmoja wa watangazaji wako wa Connect-mode hulipia tangazo kupitia muunganisho wako.
  2. Tangazo linapitiwa na kuidhinishwa — kiotomatiki, au na timu yetu ya udhibiti.
  3. Sehemu yako imewekwa kwenye foleni kwa malipo ya moja kwa moja kwenye pochi yako, kwa utaratibu uleule kama programu ya rufaa hapa chini.
Sehemu haitengenezwi kamwe kabla tangazo halijathibitishwa — ikiwa wasimamizi wataikataa, hakuna deni lolote linalotokana na malipo hayo. Kuongeza salio kwenye tangazo ambalo tayari linaendelea hakuna hatari kama hiyo na hushirikiwa mara moja.

Masharti ya malipo

  • Waleti ya malipo ya crypto imewekwa kwenye akaunti yako ya mshirika.
  • Hakuna KYC inahitajika upande wako — akaunti yako ya mshirika tayari imepitiwa ukaguzi wakati ilipotengenezwa.

Mfano: kusoma hisa zilizokusanywa

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
}

Nukta za mwisho

Hesabu

POST/v1/partner/advertisers

Tengeneza akaunti ya mtangazaji kwa niaba ya mmoja wa watumiaji wako (Hali ya Kuunganisha).

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

Tafuta akaunti ya mtangazaji iliyoundwa na mshirika huyu.

advertisers:read

Matangazo

POST/v1/partner/ads

Tengeneza tangazo. Huanza katika hali ya rasimu. Sehemu za hiari za advertiser_type, promotion_type, link_type, na promoted_brand zinaelezea matangazo ya mshirika, rufaa, muumba, au mtu binafsi — angalia dokezo hapa chini.

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

Tafuta tangazo.

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

Sasisha maudhui ya uhariri — kichwa, maelezo, kiungo, aina ya mtangazaji, aina ya promosheni, aina ya kiungo, na chapa iliyotangazwa. Kategoria, jiografia, na chochote kinachosomwa na injini ya upangaji haviwezi kubadilishwa hapa.

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

Pakia picha ya tangazo moja kwa moja (JPEG/PNG/WebP, hadi MB 5). Inahitajika kabla ya malipo ya kwanza — angalia kikundi cha malipo hapa chini.

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

Weka picha ya tangazo kutoka kwa URL badala ya kupakia faili — seva inapakua na kuihifadhi tena yenyewe. Sharti lile lile: linahitajika kabla ya malipo ya kwanza.

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

Cheo cha sasa, kategoria, na upeo wa kijiografia kwa tangazo.

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

Idadi ya jumla ya maoni na bonyeza kwa tangazo — siku zilizopita/zinazobaki zinatoka kwenye nyanja za activated_at/expires_at zilizopo tayari kwenye GET /{id}, na cheo kinatoka kwenye GET /{id}/rank.

ads:read

Malipo

POST/v1/partner/payments

Anza malipo ya crypto kwa ununuzi wa awali au kujaza salio. Malipo ya awali yanashindwa kwa 422 isipokuwa tangazo tayari lina picha — angalia uploadAdImage/setAdImageUrl hapo juu.

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

Angalia hali ya malipo.

payments:read

Rufaa

POST/v1/partner/referrals

Tengeneza kiungo cha rufaa.

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

Mapato ya rufaa yaliyokusanywa, yaliyogawanywa kulingana na hadhi.

referrals:read

Mgawanyo wa mapato ya matangazo

GET/v1/partner/ad-revenue/earnings

Sehemu yako ya 70% ya kile watangazaji uliowaumba katika hali ya Connect walilolipia kwa matangazo yao, ikigawanywa kulingana na hadhi.

ad-revenue:read

Kumbukumbu ya ufikiaji

GET/v1/partner/access-log

Historia kamili ya simu kwa njia hii muhimu — mbinu, njia, anwani ya IP, alama ya muda.

Kuna

Vituo vya umma

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

Uorodheshaji wa kusoma tu kwa kategoria na upeo wa kijiografia.

Umma
GET/v1/tiers

Viwango saba vya bei vilivyowekwa (vigezo vya kiwango, manufaa yaliyofunguliwa).

Umma
GET/v1/referral-program

Asilimia za tume zinazotumika kwa sasa kwa mfuatano wa rufaa na Bwawa la Viongozi.

Umma
GET/v1/partner-program

Mgawanyo wa sasa wa mapato ya matangazo (Modhi ya Kuunganisha) kati yako na Matangazo ya Mwaka.

Umma
GET/v1/search?q={query}

Utafutaji wa lugha asilia — huelekeza hoja kama "watangazaji wa fanicha nchini Kenya" kwenye kategoria inayolingana na wigo wa kijiografia, kisha hurudisha orodha hiyo, katika mpangilio wake halisi.

Umma

Matangazo ya ushirika na rufaa

advertiser_type, promotion_type, link_type, na promoted_brand ni sehemu za hiari kwenye POST na PATCH /v1/partner/ads — Matangazo ya Mwaka hayazuilwi kwa biashara zinazotangaza wenyewe. Wakati link_type ni affiliate_link au referral_invitation_link, au promotion_type ni affiliate_offer au referral_opportunity, affiliate_terms_accepted lazima iwe kweli vinginevyo ombi litakataliwa kwa 422. Kichwa kina kikomo cha herufi 35 na maelezo herufi 80 — vyote vinatekelezwa upande wa seva, si tu katika kiolesura cha dashibodi.

Zana za AI

Kila akaunti ya mtangazaji hupata seti ya zana za AI zilizojengewa ndani — kizalishaji cha maudhui ya matangazo na picha, msaidizi wa mazungumzo, mshauri wa bajeti, na mkaguzi wa SEO wa nje — zinazolipwa kwa mikopo ya AI, juu ya bei thabiti ya kila mwaka.

Hizi hufanywa kupitia kiingilio cha dashibodi ya mtangazaji mwenyewe (tokeni ya ufikiaji wa kipindi), si kwa kutumia ufunguo wa API wa mshirika — muunganisho wa wahusika wengine hawawezi kuviita kwa niaba ya mtangazaji.
POST/v1/advertisers/{id}/ai/assistant

Ask Annual Ads — msaidizi wa mazungumzo unaoelea, kwa taarifa tu, unaweza kusoma tu data za akaunti.

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

Tengeneza kichwa cha tangazo, maelezo, na maneno muhimu kutoka kwa maelezo mafupi ya biashara.

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

Tengeneza picha ya orodha (PNG) kutokana na maelezo yale yale ya biashara, iliyohifadhiwa na tayari kuambatishwa kwenye tangazo.

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

Utakikaji halisi wa takwimu — sio tu dhana ya kuzalisha — wa uwezekano wa kudumisha cheo fulani baada ya siku 30/90/365.

1 krediti
POST/v1/advertisers/{id}/ai/seo-audit

Chambua tovuti ya nje ya mwendelezaji mwenyewe na pendekeza maboresho maalum ya SEO.

2 krediti

Mfano — tengeneza maudhui ya tangazo

Kategoria ile ile na maelezo ya biashara pia huendesha kizalishaji cha picha hapa chini.

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
}

Tengeneza picha inayolingana kwa tangazo lile lile:

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
}

Gidjeti

Weka kitengo cha tangazo kilichotayarishwa tayari kwenye tovuti yako — hakuna hatua ya ujenzi, hakuna iframe. Skripti inaonyeshwa moja kwa moja kwenye ukurasa ndani ya Shadow DOM iliyotengwa, hivyo mitindo yake haitavujia kwenye tovuti yako, na mitindo ya tovuti yako haitavujia ndani yake.

Ongeza kwenye ukurasa wako

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

Kwa chaguo-msingi, hii inaonyesha orodha kamili ya umma kwa kategoria — kila mtangazaji kwenye jukwaa, si tu wale uliowaleta. Ili kuonyesha matangazo tu kutoka kwa watangazaji uliowatengeneza kupitia hali ya Connect (wale wanaotengeneza sehemu yako), ongeza data-partner na kitambulisho cha mshirika wako (kipate kwenye ukurasa wa Waendelezaji kwenye dashibodi yako):

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

Ikiwa watangazaji wako wanajumuisha kategoria kadhaa, acha kabisa data-category — kwa kutumia tu data-partner, widget inaonyesha kila tangazo lako katika kategoria zote kwenye gridi moja, badala ya kuhitaji bloku moja ya widget kwa kila kategoria:

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

Unataka kitengo cha mtindo wa footer kando na kitengo chako kilicho ndani ya maudhui, kila kimoja kikiwa kinaonyesha matangazo tofauti? Ongeza bloku ya widget ya pili na data-layout="compact" (matangazo moja, yanayoweza kupunguzwa kuwa kidonge kidogo) na data-offset ikiwa imewekwa kulingana na idadi ya matangazo ambayo widget yako ya kwanza tayari inaonyesha:

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

Sifa

data-categoryKitambulisho cha kategoria cha kuonyesha. Inahitajika — isipokuwa data-partner imewekwa, ambapo kuiacha inaonyesha matangazo ya mshirika huyo katika kila kategoria.
data-geoUpana wa kijiografia: wa ndani, wa kikanda, au wa kimataifa. Chaguo-msingi ni kimataifa.
data-countIdadi ya matangazo ya kuonyesha. Kiashiria chaguo-msingi ni 4.
data-columnsIdadi ya safu za gridi. Ina chaguo-msingi 2.
data-layoutgrid, orodha, au compact. Ina chaguo-msingi ya grid. compact inaonyesha tangazo moja (data-count haizingatiwi) lenye kitufe cha kulifinyanga kuwa kidonge kidogo na kulirudisha — kitengo cha mtindo wa footer, kisichowekwa imara na skripti yenyewe; unaweza kuweka na kupamba div ya kontena jinsi unavyotaka kwenye ukurasa wako mwenyewe.
data-offsetIdadi ya matangazo yaliyo juu kabisa ya kuruka. Kiashiria chake ni 0. Inaruhusu widget ya pili kwenye ukurasa uleule (kwa mfano, ile ndogo kwenye sehemu ya chini ya ukurasa pamoja na ile ya gridi iliyoko juu zaidi) kuonyesha matangazo tofauti badala ya kurudia tangazo lile lile mara mbili — toa idadi ya matangazo ambayo widget nyingine tayari inaonyesha.
data-partnerKitambulisho chako cha mshirika (kipate kwenye ukurasa wa Watengenezaji kwenye dashibodi yako). Chaguo — bila kitambulisho hicho, widget inaonyesha orodha kamili ya umma kwa kategoria hiyo, kila mtaalamu wa matangazo kwenye jukwaa. Ukiwa na kitambulisho hicho, ni matangazo tu kutoka kwa wataalamu wa matangazo uliowaleta kupitia hali ya Connect — wale ambao kwa kweli hutoa sehemu yako.

Mgawanyo wa mapato

Jinsi kamisheni ya rufaa ya mshirika inavyowafikia kwa kweli — asilimia, utaratibu wa malipo, na masharti ya awali.

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
}

Si nambari iliyowekwa

Asilimia ya tume imewekwa upande wetu na inaweza kubadilika — daima isome moja kwa moja kutoka kwenye kiunganishi hiki badala ya kuweka thamani moja kwa moja.

Kiotomatiki kabisa

Hakuna kikomo cha kutoa. Kazi iliyopangwa hutoa mapato yanayolipwa, huweka pamoja kwa kila mtangazaji, na hulipa kiotomatiki mara tu masharti yote yafuatayo yatakapokidhiwa.

Masharti ya malipo

  • Jumla ya malipo ya mtangazaji imefikia kiwango cha chini cha malipo.
  • Waleti ya malipo ya sarafu fiche imewekwa kwenye akaunti yao.
  • Hali yao ya KYC imethibitishwa.

Mfano: kusoma mapato yaliyokusanywa

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
}

Viwango vya bei (hai)

Soma moja kwa moja kutoka kwa kiunganisho hiki cha mwisho — usiweke thamani hizi moja kwa moja kwenye msimbo, zinaweza kubadilika upande wetu. Tengeneza chaguo la ngazi kwa watumiaji wako badala ya uwanja wa kiasi cha bure: kila bei inayoonekana tayari ni kiasi halisi cha kutuma unapounda malipo, na manufaa yaliyofunguliwa yanayoonyeshwa hapa yanawaambia watumiaji hasa wanachopata kwa bei hiyo, hivyo wanachagua bei wanayoielewa badala ya kukisia nambari.

NgaziBeiKufungua
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

Kiungo kinachobofyeka
Gold$500.00

Animation unlocked

Kiungo kinachobofyekaUhuishaji
Platinum$1,000.00

Enhanced exposure

Kiungo kinachobofyekaUhuishaji
Diamond$2,500.00

Premium placement

Kiungo kinachobofyekaUhuishaji
Elite$5,000.00

Top-tier visibility

Kiungo kinachobofyekaUhuishaji
Legendary$10,000.00

Maximum visibility & branding

Kiungo kinachobofyekaUhuishaji

Vipimo vya kasi

Maombi yanapunguzwa kwa kila ufunguo kwa dakika. Kila jibu lililothibitishwa lina vichwa vya habari X-RateLimit-Limit, X-RateLimit-Remaining, na X-RateLimit-Reset; kuvuka kikomo hurejesha 429 Too Many Requests na kichwa cha habari Retry-After.

Orodha ya anwani za IP zilizoruhusiwa

Hiari, kwa kila mshirika. Hadi utakapoongeza kumbukumbu, funguo zako zitakubali maombi kutoka kwa anwani yoyote ya IP — kumbukumbu ya kwanza hubadilisha funguo zote za mshirika huyo kuwa zinatumika tu kwenye orodha ya kuruhusiwa.

Vihusisho vya wavuti

Kila webhook imetiwa sahihi kwa kutumia HMAC-SHA256 na siri iliyotolewa mara moja wakati wa uundaji — thibitisha sahihi kabla ya kuamini mzigo. Matukio hutolewa tu kwa mshirika anayemiliki mtangazaji husika.

payment.succeededMalipo yathibitishwa.
payment.refundedRejesho linafanywa.
ad.activatedTangazo linaanza kutumika, kiotomatiki au baada ya ukaguzi wa msimamizi.
invoice.issuedFaktura imetolewa.
referral.payout.completedKamisheni ya rufaa inafikia hali ya kulipwa.
referral.payout.failedBatch ya malipo ya rufaa inashindwa kwa mtoa huduma — mapato yanarudi kwenye malipo yanayosubiri na kujaribiwa tena.
rank.changedCheo cha tangazo hubadilika — ikiwa ni pamoja na pale malipo ya mtangazaji mwingine yanaposababisha.
ad.expiring_soonSiku 30, 7, au 1 kabla tangazo kumalizika muda wake.
partner_ad_revenue.payout.completedMalipo ya mgawanyo wa mapato ya matangazo yamefikia hadhi ya kulipwa.
partner_ad_revenue.payout.failedKundi la malipo ya mgawanyo wa mapato ya matangazo limeshindwa kwa mtoa huduma — hisa zinarejeshwa kwenye orodha ya kulipwa na kujaribiwa tena.

Seti za Maendeleo ya Programu

SDK rasmi za JavaScript/TypeScript na Python, zilizotengenezwa kutoka kwa maelezo haya ya API, zimepangwa lakini bado hazijachapishwa — tumia API ya HTTP moja kwa moja hadi wakati huo.

Mwanzo wa haraka

Bado hakuna SDK — hizi huita HTTP API moja kwa moja na zinafanya kazi leo katika lugha yoyote.

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