Töötage otse Annual Ads platvormil – looge reklaamijaid, avaldage reklaame, käivitage makseid ja jälgige positsiooni täielikult API kaudu.
Vaata täielikku hinnakirjaSulle jääb 70% sellest, mida teie Connect-režiimi reklaamijad oma reklaamide eest maksavad – summa kantakse automaatselt teie rahakotti. Vaadake allpool, kuidas see toimib.
Iga päring autentitakse „Authorization“-päises oleva salajase võtmega, kasutades „Bearer“-skeemi.
POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/jsonAPI-võtmed väljastab heakskiidetud partnerkontodele Annual Ads’i meeskond.
Loo partnerikonto| POST | /v1/partner/advertisersLoo reklaamija konto ühe oma kasutaja nimel (ühendusrežiim). | advertisers:write |
| GET | /v1/partner/advertisers/{id}Otsi üles selle partneri loodud reklaamija konto. | advertisers:read |
| POST | /v1/partner/adsLoo reklaam. Alguses on see eelnõu staatusega. Valikulised väljad „advertiser_type”, „promotion_type”, „link_type” ja „promoted_brand” kirjeldavad partner-, soovitaja-, looja- või eraisiku reklaami – vaata allpool olevat märkust. | ads:write |
| GET | /v1/partner/ads/{id}Otsi kuulutus üles. | ads:read |
| PATCH | /v1/partner/ads/{id}Toimetusliku sisu uuendamine — pealkiri, kirjeldus, link, reklaamija tüüp, reklaamikampaania tüüp, lingi tüüp ja reklaamitav bränd. Kategooriat, geograafilist asukohta ega muid andmeid, mida edetabelimootor arvesse võtab, ei saa siin kunagi muuta. | ads:write |
| POST | /v1/partner/ads/{id}/imageLaadige reklaamipilt otse üles (JPEG/PNG/WebP, maksimaalselt 5 MB). See on vajalik enne esimest makset – vt allpool olevat makseid käsitlevat jaotist. | ads:write |
| POST | /v1/partner/ads/{id}/image-urlMäärake reklaami pilt URL-aadressi kaudu, selle asemel et faili üles laadida – server laadib selle ise alla ja majutab uuesti. Sama nõue: tuleb täita enne esimest makset. | ads:write |
| GET | /v1/partner/ads/{id}/rankReklaami praegune positsioon, kategooria ja geograafiline ulatus. | ads:read |
| GET | /v1/partner/ads/{id}/statsReklaami vaadete ja klõpsude koguarv ning möödunud/jäänud päevade arv pärinevad väljadest „activated_at“ ja „expires_at“, mis on juba olemas päringus GET /{id}, ning pingerida päringust GET /{id}/rank. | ads:read |
| POST | /v1/partner/paymentsAlusta krüptomakse tegemist esmase ostu või kontoseisu täiendamise jaoks. Esmane makse ebaõnnestub veakoodiga 422, kui kuulutusel pole veel pilti – vt eespool toodud uploadAdImage/setAdImageUrl. | payments:write |
| GET | /v1/partner/payments/{id}Kontrolli makse staatust. | payments:read |
| POST | /v1/partner/referralsLoo soovitamislingi. | referrals:write |
| GET | /v1/partner/referrals/{code}/earningsKogutulu soovitustest, jaotatuna staatuse järgi. | referrals:read |
| GET | /v1/partner/ad-revenue/earningsTeie 70-protsendiline osa summast, mida Connect-režiimis loodud reklaamijad oma reklaamide eest maksid, jaotatuna staatuse järgi. | ad-revenue:read |
| GET | /v1/partner/access-logSelle võtme täielik kõneajalugu – meetod, tee, IP-aadress, ajamärge. | Seal |
| GET | /v1/rankings?category={id}&geo={scope}Kategooria ja geograafilise piirkonna jaoks ainult lugemisõigusega edetabel. | Avalik |
| GET | /v1/tiers7 konfigureeritud hinnataset (lävend, avatud soodustused). | Avalik |
| GET | /v1/referral-programViitekaskadi ja juhtide reservi jaoks hetkel kehtivad komisjonitasud. | Avalik |
| GET | /v1/partner-programPraegune reklaamitulude jaotus (Connect-režiim) sinu ja Annual Ads’i vahel. | Avalik |
| GET | /v1/search?q={query}Looduskeelne otsing — suunab päringu, näiteks „mööbli reklaamijad Keenias”, vastavasse kategooriasse ja geograafilisse piirkonda ning kuvab seejärel tulemuste järjestuse täpselt sellises järjekorras, nagu need tegelikult on. | Avalik |
Partner- ja soovitusturundus
advertiser_type, promotion_type, link_type ja promoted_brand on POST- ja PATCH-päringute puhul /v1/partner/ads valikulised väljad — Annual Ads ei piirdu ainult end reklaamivate ettevõtetega. Kui link_type on affiliate_link või referral_invitation_link või promotion_type on affiliate_offer või referral_opportunity, peab affiliate_terms_accepted olema väärtusega true, vastasel juhul lükatakse päring tagasi veakoodiga 422. Pealkirja pikkus on piiratud 35 tähemärgiga ja kirjelduse pikkus 80 tähemärgiga – mõlemat piirangut rakendatakse serveri poolel, mitte ainult kasutajaliidese kaudu.
Iga reklaamija kontole antakse kasutusse sisseehitatud tehisintellekti tööriistade komplekt – reklaami sisu ja visuaalide genereerija, vestlusassistent, eelarvenõustaja ja väline SEO-auditeerija –, mille eest tasutakse tehisintellekti krediitidega lisaks kindlasummalisele aastatasule.
| POST | /v1/advertisers/{id}/ai/assistantKüsige Annual Adsilt – ujuv vestlusassistent, mis on mõeldud üksnes teabe andmiseks ja millel on kontodele juurdepääs ainult lugemisõigustega. | Avalik |
| POST | /v1/advertisers/{id}/ai/creative-studioLoo lühikese ettevõtte kirjelduse põhjal reklaami pealkiri, kirjeldus ja märksõnad. | 2 ainepunkti |
| POST | /v1/advertisers/{id}/ai/creative-studio/imageLoo sama ettevõtte kirjelduse põhjal kuulutuse pilt (PNG), mis on juba veebis kättesaadav ja valmis kuulutusele lisamiseks. | 8 ainepunkti |
| POST | /v1/advertisers/{id}/ai/budget-advisorTõeline statistiline prognoos – mitte kunagi spekulatiivne oletus – selle kohta, millised on tõenäosused säilitada antud reiting 30, 90 ja 365 päeva pärast. | 1 ainepunkti |
| POST | /v1/advertisers/{id}/ai/seo-auditAnalüüsige reklaamija enda välist veebisaiti ja tehke konkreetseid ettepanekuid selle SEO parandamiseks. | 2 ainepunkti |
Sama kategooria ja tegevusala kirjeldus on aluseks ka allpool olevale pildigeneraatorile.
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
}Loo sama reklaami jaoks sobiv visuaal:
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
}Lisage valmis reklaamplokk oma veebilehele – ilma eraldi loomise etapita ja ilma iframe’ita. Skript kuvatakse otse lehele isoleeritud Shadow DOM-i sees, mistõttu selle stiilid ei mõjuta kunagi teie veebilehte ja teie veebilehe stiilid ei mõjuta kunagi seda.
<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>Vaikimisi kuvatakse siin kategooria täielik avalik edetabel – kõik platvormil olevad reklaamijad, mitte ainult need, keda sina oled toonud. Et kuvada ainult nende reklaamijate reklaame, keda oled loonud Connect-režiimis (need, kes teenivad sulle komisjonitasu), lisa atribuut „data-partner“ koos oma partneri ID-ga (leiad selle oma juhtpaneeli arendajate lehelt):
<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>Kui teie reklaamijad kuuluvad mitmesse kategooriasse, jätke „data-category“ täielikult välja – kui kasutada ainult „data-partner“, kuvab vidin kõik teie reklaamid kõigist kategooriatest ühes tabelis, selle asemel et iga kategooria jaoks oleks vaja eraldi vidinablokki:
<div
class="annualads-widget"
data-geo="global"
data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>Kas soovid lisaks sisu sees olevale reklaamplokile ka jaluselaadset reklaamplokki, kus kummaski kuvatakse erinevaid reklaame? Lisa teine vidinablokk, millel on atribuut data-layout="compact" (üks reklaam, mida saab kokku klappida väikseks pilliks) ja mille atribuut data-offset on seatud vastavalt sellele, mitu reklaami su esimene vidin juba kuvab:
<!-- 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 | Kuvatav kategooria ID. Kohustuslik — välja arvatud juhul, kui on määratud „data-partner“; sel juhul selle väljajätmine tähendab, et selle partneri reklaame kuvatakse kõigis kategooriates. |
data-geo | Geograafiline ulatus: kohalik, piirkondlik või globaalne. Vaikimisi on valitud globaalne. |
data-count | Kuvatavate reklaamide arv. Vaikimisi on see 4. |
data-columns | Võre veergude arv. Vaikimisi on see 2. |
data-layout | võrgustik, nimekiri või kompaktne. Vaikimisi on valitud võrgustik. Kompaktne režiim kuvab ühe reklaami (parameetrit „data-count“ ei võeta arvesse) koos nupuga, mille abil saab reklaami kokku klappida väikseks pilliks ja uuesti avada — tegemist on jaluselaadse elemendiga, mida skript ise kunagi fikseeritud asendisse ei paiguta; saad paigutada ja kujundada konteiner-div-i oma lehel just nii, nagu soovid. |
data-offset | Kõrgeima reitinguga reklaamide arv, mida vahele jätta. Vaikimisi on see 0. Võimaldab samal lehel asuval teisel vidinal (nt kompaktne vidin jaluses ja ruudustikuvidin lehe ülaosas) näidata erinevaid reklaame, selle asemel et sama reklaami kaks korda korrata – ületada reklaamide arvu, mida teine vidin juba näitab. |
data-partner | Teie partneri ID (leiate selle oma juhtpaneeli arendajate lehelt). Valikuline — ilma selleta kuvab vidin selle kategooria täieliku avaliku edetabeli, mis hõlmab kõiki platvormil olevaid reklaamijaid. Selle olemasolul kuvatakse vaid nende reklaamijate reklaame, keda olete toonud platvormile Connect-režiimi kaudu — need, kes tegelikult teie osakaalu tekitavad. |
Päringute arv on piiratud võtme ja minuti kohta. Iga autentimise läbinud vastus sisaldab päiseid X-RateLimit-Limit, X-RateLimit-Remaining ja X-RateLimit-Reset; piiri ületamisel tagastatakse vastus 429 Too Many Requests koos päisega Retry-After.
Valikuline, iga partneri kohta. Kuni sa pole veel kirjet lisanud, võtavad su võtmed vastu taotlusi mis tahes IP-aadressilt – esimene kirje muudab kõnealuse partneri kõik võtmed nii, et need lubavad ainult lubatud nimekirjas olevaid aadresse.
Iga webhook on allkirjastatud HMAC-SHA256-ga, kasutades loomise ajal ühekordselt väljastatud salajast võtit – kontrollige allkirja enne, kui usaldate andmeid. Sündmused edastatakse ainult sellele partnerile, kellele kuulub asjaomane reklaamija.
payment.succeeded | Makse on kinnitatud. |
payment.refunded | Tagasimakse on teostatud. |
ad.activated | Reklaam muutub aktiivseks kas automaatselt või pärast administraatori poolt läbivaatamist. |
invoice.issued | Arve on väljastatud. |
referral.payout.completed | Soovitustasu on saanud makstud staatuse. |
referral.payout.failed | Soovitustasude väljamaksete partii ebaõnnestub teenusepakkuja juures — tulud kantakse tagasi maksmisele ja protsess korratakse. |
rank.changed | Reklaami positsioon muutub — sealhulgas juhul, kui selle põhjustab mõne teise reklaamija makse. |
ad.expiring_soon | 30, 7 või 1 päev enne kuulutuse kehtivusaja lõppu. |
partner_ad_revenue.payout.completed | Reklaamitulu osamakse on jõudnud maksmisstaatusesse. |
partner_ad_revenue.payout.failed | Reklaamitulu jagamise väljamakse partii ebaõnnestub teenusepakkuja juures — osad kantakse tagasi maksmisele ja proovitakse uuesti. |
Kavandatud on ametlikud JavaScript/TypeScript ja Python SDK-d, mis on loodud sama API spetsifikatsiooni alusel, kuid need pole veel avaldatud – seni kasutage otse HTTP-API-d.
SDK-d veel pole — need kasutavad otse HTTP-API-d ja toimivad juba praegu mis tahes programmeerimiskeeles.
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": "...",
},
)