Eraiki zuzenean Annual Ads plataforman — sortu iragarki-emaileak, argitaratu iragarkiak, abiarazi ordainketak eta jarraitu sailkapena, guztiz API bidez.
Ikusi prezioen taula osoaZuk 70% gordetzen duzu. Zure Connect moduko iragarkigileek beren iragarkiengatik ordaintzen dutena — automatikoki zure zorroan sartzen da. Ikusi behean nola funtzionatzen duen.
Eskaera bakoitza egiaztatzen da Authorization buruan dagoen gako sekretu batekin, Bearer eskema erabiliz.
POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/jsonUrteko Iragarkiak taldearen eskutik API gakoak ematen zaizkie onartutako bazkide kontuei.
Sortu bazkide kontu bat| POST | /v1/partner/advertisersSortu iragarkigile kontu bat zure erabiltzaileetako baten izenean (Connect moduan). | advertisers:write |
| GET | /v1/partner/advertisers/{id}Bilatu bazkide honek sortutako iragarkigile kontu bat. | advertisers:read |
| POST | /v1/partner/adsSortu iragarki bat. Hasieran zirriborro egoeran dago. aukerako advertiser_type, promotion_type, link_type eta promoted_brand eremuak afiliazio-, erreferentzia-, sortzaile- edo banakako publizitatea deskribatzen dituzte — ikusi beheko oharra. | ads:write |
| GET | /v1/partner/ads/{id}Bilatu iragarki bat. | ads:read |
| PATCH | /v1/partner/ads/{id}Eguneratu edizio-edukia — izenburua, deskribapena, esteka, iragarkiaren mota, promozioaren mota, estekaren mota eta sustatutako marka. Kategoria, geografia eta sailkapen-motorrak irakurtzen duen edozer hemen inoiz ezin dira aldatu. | ads:write |
| POST | /v1/partner/ads/{id}/imageIgo ezazu iragarki-irudi bat zuzenean (JPEG/PNG/WebP, gehienez 5 MB). Lehen ordainketa baino lehen beharrezkoa da — ikusi beheko ordainketa-taldea. | ads:write |
| POST | /v1/partner/ads/{id}/image-urlEzarri iragarkiaren irudia fitxategi bat igo beharrean URL batetik — zerbitzariak berak kargatu eta berrerosten du. Baldintza bera: lehen ordainketa baino lehen beharrezkoa da. | ads:write |
| GET | /v1/partner/ads/{id}/rankIragarki baten egungo sailkapena, kategoria eta kokapen-eremua. | ads:read |
| GET | /v1/partner/ads/{id}/statsIragarki baten ikustaldi eta klik kopuru osoa — igaro diren eta geratzen diren egunak jada GET /{id} eskuragarri dauden activated_at eta expires_at eremuetatik datoz, eta rank balioa GET /{id}/rank bidez lortzen da. | ads:read |
| POST | /v1/partner/paymentsEgin kriptomoneta-ordainketa bat hasierako erosketa edo saldo-gehikuntza baterako. Hasierako ordainketa huts egiten du 422 errorearekin, iragarkiak jada irudi bat ez badu — ikus goiko uploadAdImage/setAdImageUrl. | payments:write |
| GET | /v1/partner/payments/{id}Ordainketa baten egoera egiaztatu. | payments:read |
| POST | /v1/partner/referralsSortu erreferentzia-esteka bat. | referrals:write |
| GET | /v1/partner/referrals/{code}/earningsBidalketa-irabazi metatuak, egoeraren arabera banatuak. | referrals:read |
| GET | /v1/partner/ad-revenue/earningsConnect moduan sortu zenituen iragarkigileek beren iragarkietan ordaindu zutena zure %70eko zatia, egoeraren arabera banatuta. | ad-revenue:read |
| GET | /v1/partner/access-logGako honen dei-historia osoa — metodoa, ibilbidea, IP helbidea, denbora-marka. | Han |
| GET | /v1/rankings?category={id}&geo={scope}Kategoria eta esparru geografiko baterako soilik irakurtzeko sailkapena. | Publikoa |
| GET | /v1/tiersKonfiguratutako 7 prezio-maila (muga, desblokeatutako onurak). | Publikoa |
| GET | /v1/referral-programErreferentzia-kaskadarako eta Liderren Poolerako une honetan indarrean dauden komisio-portzentajeak. | Publikoa |
| GET | /v1/partner-programZure eta Annual Ads-en arteko iragarkien diru-sarreren banaketa egungo (Connect moduan). | Publikoa |
| GET | /v1/search?q={query}Naturala hizkuntzako bilaketa — "Kenyan altzari-iragarkiak egiten dituztenak" bezalako kontsulta bat dagokion kategoria eta esparru geografikora bideratzen du, eta ondoren sailkapen hori bere benetako ordena zehatzean itzultzen du. | Publikoa |
Afiliatu eta erreferentzia bidezko publizitatea
advertiser_type, promotion_type, link_type eta promoted_brand eremu aukerakoak dira POST eta PATCH /v1/partner/ads-en — Urteko iragarkiak ez daude beren burua iragartzen duten enpresetara mugatuta. link_type affiliate_link edo referral_invitation_link denean, edo promotion_type affiliate_offer edo referral_opportunity denean, affiliate_terms_accepted egia izan behar da, bestela eskaera 422 kodearekin baztertuko da. title 35 karakterez mugatuta dago eta description 80 karakterez — biak zerbitzari-aldetik betearazten dira, ez bakarrik kontrol-paneleko UI-an.
Publizitate-kontu bakoitzak AI tresna integratuen multzo bat jasotzen du — iragarkien edukia eta irudiak sortzeko generadore bat, elkarrizketa-laguntzaile bat, aurrekontu-aholkulari bat eta SEO kanpoko auditori bat — AI kredituak erabiliz ordaintzen dena, urteko prezio finkoaren gainetik.
| POST | /v1/advertisers/{id}/ai/assistantAsk Annual Ads — elkarrizketa-laguntzaile flotagarria, informazio-helburuarako soilik, kontu-datuei dagokienez soilik irakurtzeko modukoa. | Publikoa |
| POST | /v1/advertisers/{id}/ai/creative-studioNegozioaren deskribapen labur batetik iragarki baten izenburua, deskribapena eta gako-hitzak sortu. | 2 kreditu |
| POST | /v1/advertisers/{id}/ai/creative-studio/imageNegozio-deskribapen beretik iragarki-zerrenda-irudi bat (PNG) sortu, ostatu hartuta eta iragarki bati eransteko prest. | 8 kreditu |
| POST | /v1/advertisers/{id}/ai/budget-advisorBenetako proiekzio estatistiko bat — inoiz ez generatiboa — emandako maila bat 30/90/365 egunetan mantentzeko probabilitateena. | 1 kreditu |
| POST | /v1/advertisers/{id}/ai/seo-auditIragarkigilearen kanpoko webgunea aztertu eta SEO hobekuntza zehatzak proposatu. | 2 kreditu |
Kategoria bera eta negozioaren deskribapen bera beheko irudi-sortzailea ere elikatzen dute.
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
}Sortu iragarki berarentzako ikusizko material egokia:
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
}Zure webgunean prestaturiko iragarki-unitate bat jarri — ez dago eraikuntza-urratsik, ez iframe-rik. Scriptak orrian zuzenean itzal-DOM isolatu baten barruan bistaratzen du, beraz, bere estiloek ez dute inoiz zure webgunera ihes egiten, eta zure webguneko estiloek ere ez dute inoiz horretara.
<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>Lehenetsita, honek kategoria osorako sailkapen publiko osoa erakusten du — plataformako iragarki-emaile guztiak, ez bakarrik zuk ekarritakoak. Connect moduan sortu dituzun iragarki-emaileek soilik (zure kuota sortzen dutenek) bidalitako iragarkiak erakusteko, gehitu data-partner zure bazkide-IDarekin (aurki dezakezu zure kontrol-paneleko Garatzaileen orrialdean):
<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>Zure iragarki-emaileek kategoria anitz hartzen badituzte, kendu erabat data-category — data-partner bakarrik erabilita, widget-ak zure iragarki guztiak kategoria guztietakoak sare bakar batean erakusten ditu, kategoria bakoitzeko widget-bloke bat behar izatearen ordez:
<div
class="annualads-widget"
data-geo="global"
data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>Eduki barruko unitatearen ondoan oin-ohar estiloko beste unitate bat nahi duzu, bakoitzak iragarki desberdinak erakutsiko dituena? Gehitu bigarren widget bloke bat data-layout="compact" (iragarki bakarra, pilula txiki batean tolestu daitekeena) eta data-offset lehen widgetak dagoeneko zenbat iragarki erakusten dituen arabera ezarrita:
<!-- 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 | Erakutsi beharreko kategoria ID-a. Beharrezkoa — data-partner ezarrita ez badago; bestela, hura ezartzeak bazkidearen iragarkiak kategoria guztietan erakusten dituela adierazten du. |
data-geo | Geo-esparrua: tokikoa, eskualdekoa edo globala. Lehenetsia globala da. |
data-count | Erakutsi beharreko iragarkien kopurua. 4ra lehenetsita dago. |
data-columns | Sareko zutabe kopurua. 2ra lehenetsita dago. |
data-layout | grid, list edo compact. Lehenetsia grid da. compact-ek iragarki bakarra erakusten du (data-count balioa kontuan hartu gabe), eta botoi batekin iragarkia pilula txiki batean tolestu eta berriro agerrarazi daiteke — oin-ohar estiloko unitate bat, inoiz ez da script-ak finkatuta kokatzen; zuk nahi duzun moduan kokatu eta estiloa eman diezaiokezu edukiontzi-div-ari zure orrialdean. |
data-offset | Goi-mailako iragarkiak saltzeko kopurua. 0 lehenetsita dago. Orrialde berean dagoen bigarren widget bati (adibidez, oin-oharrean dagoen konpaktu bat eta orrialdearen goialdean dagoen sarea bat) iragarki desberdinak erakusteko aukera ematen dio, iragarki bera bi aldiz errepikatu beharrean — pasatu beste widgetak dagoeneko erakusten dituen iragarkien kopurua. |
data-partner | Zure bazkide ID-a (aurki ezazu zure kontrol-taularen Garatzaileen orrian). Aukerakoa — hori gabe, widget-ak kategoria horretako sailkapen publiko osoa erakusten du, plataformako iragarki-emaile guztiekin. Horrela, Connect moduan ekarritako iragarki-emaileen iragarkiak bakarrik agertuko dira — benetan zure kuota sortzen dutenak. |
Eskaerak gako bakoitzeko minutuko mugatuta daude. Erantzun autentifikatu bakoitzak X-RateLimit-Limit, X-RateLimit-Remaining eta X-RateLimit-Reset buru-ilarak daramatza; muga gainditzeak 429 Eskaera Gehiegi akats-kodea itzultzen du Retry-After buru-ilara batekin.
Aukerakoa, bazkide bakoitzeko. Sarrera bat gehitu arte, zure gakoek edozein IP helbidetatik datozen eskaerak onartzen dituzte — lehen sarrerak bazkide horren gako guztiak soilik onartzeko zerrendan egotera aldatzen ditu.
Webhook bakoitza HMAC-SHA256 bidez sinatzen da, sortze unean behin emandako sekretu batekin — sinadura egiaztatu karga konfiantzaz onartu aurretik. Ekitaldiak soilik jasotzen ditu iragarleari dagokion bazkideak.
payment.succeeded | Ordainketa bat baieztatuta dago. |
payment.refunded | Itzulketa gauzatu da. |
ad.activated | Iragarki bat aktibo jartzen da, automatikoki edo administratzailearen berrikuspenaren ondoren. |
invoice.issued | Faktura bat igorri da. |
referral.payout.completed | Erreferentzia-komisio batek ordaindutako egoerara iristen da. |
referral.payout.failed | hornitzailean erreferentzia-ordainketa-multzo bat huts egiten du — irabaziak ordainketa-egoerara itzuli eta berriro saiatzen dira. |
rank.changed | Iragarki baten sailkapena aldatzen da — beste iragarki-emaile baten ordainketak eraginda ere. |
ad.expiring_soon | iragarki bat iraungi baino 30, 7 edo 1 egun lehenago. |
partner_ad_revenue.payout.completed | Iragarkien diru-sarreren banaketaren ordainketa ordaindutako egoerara iristen da. |
partner_ad_revenue.payout.failed | Proban hornitzailean iragarkien diru-sarreren banaketa-ordainketa multzo bat huts egiten du — kuotak ordainketa-egoerara itzuli eta berriro saiatzen dira. |
Ofizial JavaScript/TypeScript eta Python SDK-ak, API zehaztapenean bertan oinarrituta sortuak, aurreikusita daude baina oraindik ez dira argitaratu — bitartean, deitu zuzenean HTTP APIari.
Oraindik ez dago SDK-rik — hauek HTTP APIari zuzenean dei egiten diote eta gaur egun edozein hizkuntzatan funtzionatzen dute.
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": "...",
},
)