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 beiUnabaki 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.
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/jsonFunguo za API hutolewa kwa akaunti za washirika walioidhinishwa na timu ya Matangazo ya Mwaka.
Unda akaunti ya mshirika| POST | /v1/partner/advertisersTengeneza 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 |
| POST | /v1/partner/adsTengeneza 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}/imagePakia 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-urlWeka 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}/rankCheo cha sasa, kategoria, na upeo wa kijiografia kwa tangazo. | ads:read |
| GET | /v1/partner/ads/{id}/statsIdadi 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 |
| POST | /v1/partner/paymentsAnza 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 |
| POST | /v1/partner/referralsTengeneza kiungo cha rufaa. | referrals:write |
| GET | /v1/partner/referrals/{code}/earningsMapato ya rufaa yaliyokusanywa, yaliyogawanywa kulingana na hadhi. | referrals:read |
| GET | /v1/partner/ad-revenue/earningsSehemu yako ya 70% ya kile watangazaji uliowaumba katika hali ya Connect walilolipia kwa matangazo yao, ikigawanywa kulingana na hadhi. | ad-revenue:read |
| GET | /v1/partner/access-logHistoria kamili ya simu kwa njia hii muhimu — mbinu, njia, anwani ya IP, alama ya muda. | Kuna |
| GET | /v1/rankings?category={id}&geo={scope}Uorodheshaji wa kusoma tu kwa kategoria na upeo wa kijiografia. | Umma |
| GET | /v1/tiersViwango saba vya bei vilivyowekwa (vigezo vya kiwango, manufaa yaliyofunguliwa). | Umma |
| GET | /v1/referral-programAsilimia za tume zinazotumika kwa sasa kwa mfuatano wa rufaa na Bwawa la Viongozi. | Umma |
| GET | /v1/partner-programMgawanyo 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.
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.
| POST | /v1/advertisers/{id}/ai/assistantAsk Annual Ads — msaidizi wa mazungumzo unaoelea, kwa taarifa tu, unaweza kusoma tu data za akaunti. | Umma |
| POST | /v1/advertisers/{id}/ai/creative-studioTengeneza kichwa cha tangazo, maelezo, na maneno muhimu kutoka kwa maelezo mafupi ya biashara. | 2 krediti |
| POST | /v1/advertisers/{id}/ai/creative-studio/imageTengeneza 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-advisorUtakikaji 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-auditChambua tovuti ya nje ya mwendelezaji mwenyewe na pendekeza maboresho maalum ya SEO. | 2 krediti |
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
}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.
<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>data-category | Kitambulisho cha kategoria cha kuonyesha. Inahitajika — isipokuwa data-partner imewekwa, ambapo kuiacha inaonyesha matangazo ya mshirika huyo katika kila kategoria. |
data-geo | Upana wa kijiografia: wa ndani, wa kikanda, au wa kimataifa. Chaguo-msingi ni kimataifa. |
data-count | Idadi ya matangazo ya kuonyesha. Kiashiria chaguo-msingi ni 4. |
data-columns | Idadi ya safu za gridi. Ina chaguo-msingi 2. |
data-layout | grid, 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-offset | Idadi 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-partner | Kitambulisho 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. |
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.
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.
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.succeeded | Malipo yathibitishwa. |
payment.refunded | Rejesho linafanywa. |
ad.activated | Tangazo linaanza kutumika, kiotomatiki au baada ya ukaguzi wa msimamizi. |
invoice.issued | Faktura imetolewa. |
referral.payout.completed | Kamisheni ya rufaa inafikia hali ya kulipwa. |
referral.payout.failed | Batch ya malipo ya rufaa inashindwa kwa mtoa huduma — mapato yanarudi kwenye malipo yanayosubiri na kujaribiwa tena. |
rank.changed | Cheo cha tangazo hubadilika — ikiwa ni pamoja na pale malipo ya mtangazaji mwingine yanaposababisha. |
ad.expiring_soon | Siku 30, 7, au 1 kabla tangazo kumalizika muda wake. |
partner_ad_revenue.payout.completed | Malipo ya mgawanyo wa mapato ya matangazo yamefikia hadhi ya kulipwa. |
partner_ad_revenue.payout.failed | Kundi la malipo ya mgawanyo wa mapato ya matangazo limeshindwa kwa mtoa huduma — hisa zinarejeshwa kwenye orodha ya kulipwa na kujaribiwa tena. |
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.
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": "...",
},
)