Annual Ads

Arendajate dokumentatsioon

Töötage otse Annual Ads platvormil – looge reklaamijaid, avaldage reklaame, käivitage makseid ja jälgige positsiooni täielikult API kaudu.

Vaata täielikku hinnakirja

Sulle jääb 70% sellest, mida teie Connect-režiimi reklaamijad oma reklaamide eest maksavad – summa kantakse automaatselt teie rahakotti. Vaadake allpool, kuidas see toimib.

Põhi-URL

https://api.adhub365.com
OpenAPI 3

Autentimine

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

Testkeskkond ja tootmiskeskkond

Testkeskkonna ja tootmiskeskkonna võtmed on üksteisest täielikult eraldatud – testkeskkonna võti ei saa kunagi lugeda ega kirjutada tootmiskeskkonna võtme poolt loodud andmeid ja vastupidi.

Kohaldamisala

Iga võti kehtib ainult sellega seotud ulatuse piires – võtmel ei ole kunagi laiemat juurdepääsu kui selle loonud partnerkontol.

API-võtmed väljastab heakskiidetud partnerkontodele Annual Ads’i meeskond.

Loo partnerikonto

Reklaamitulude jagamine

Kui teie API-võtmed loovad teie enda kasutajatele reklaamijate kontosid (Connect-režiim – vt eespool jaotist „Autentimine”), teenite te osa summast, mida need reklaamijad oma reklaamide eest maksavad. Allpool esitatud jaotus loetakse reaalajas samast lõpppunktist, seda ei ole kunagi koodi sisse kirjutatud ning see on täiesti eraldiseisev käesoleva lehekülje allpool kirjeldatud soovitustasust.

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

70%

See on sinu jaoks

Raha makstakse automaatselt sinu seadistatud väljamakse-rahakotti – väljamakse taotlust pole vaja esitada.

30%

Suunab aasta reklaamidele

Hõlmab modereerimist, hostimist ja reitingu infrastruktuuri, mille alusel teie reklaamid kuvatakse.

Kuidas see toimib

  1. Üks teie Connect-režiimis tegutsevatest reklaamijatest maksab reklaami eest teie integratsiooni kaudu.
  2. Reklaam vaadatakse läbi ja kiidetakse heaks – kas automaatselt või meie modereerimismeeskonna poolt.
  3. Teie osa on järjekorda pandud automaatseks väljamaksmiseks teie rahakotti – sama mehhanism nagu allpool kirjeldatud soovitamisprogrammis.
Tulu ei teki kunagi enne, kui reklaam on tegelikult heaks kiidetud – kui moderaator selle tagasi lükkab, ei ole selle makse eest midagi võlgnetav. Juba aktiivse reklaami täiendamine ei sisalda sellist riski ja tulu jagatakse kohe.

Väljamaksetingimused

  • Teie partnerikontole on seadistatud krüptovaluuta väljamaksete rahakott.
  • Teie poolt ei ole vaja KYC-protseduuri läbida — teie partnerikonto on loomisel juba kontrollitud.

Näide: kogunenud aktsiate lugemine

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
}

Lõpppunktid

Kontod

POST/v1/partner/advertisers

Loo reklaamija konto ühe oma kasutaja nimel (ühendusrežiim).

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

Otsi üles selle partneri loodud reklaamija konto.

advertisers:read

Reklaamid

POST/v1/partner/ads

Loo 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}/image

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

Mää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}/rank

Reklaami praegune positsioon, kategooria ja geograafiline ulatus.

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

Reklaami 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

Maksed

POST/v1/partner/payments

Alusta 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

Soovitused

POST/v1/partner/referrals

Loo soovitamislingi.

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

Kogutulu soovitustest, jaotatuna staatuse järgi.

referrals:read

Reklaamitulu jagamine

GET/v1/partner/ad-revenue/earnings

Teie 70-protsendiline osa summast, mida Connect-režiimis loodud reklaamijad oma reklaamide eest maksid, jaotatuna staatuse järgi.

ad-revenue:read

Juurdepääsulogi

GET/v1/partner/access-log

Selle võtme täielik kõneajalugu – meetod, tee, IP-aadress, ajamärge.

Seal

Avalikud lõpppunktid

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

Kategooria ja geograafilise piirkonna jaoks ainult lugemisõigusega edetabel.

Avalik
GET/v1/tiers

7 konfigureeritud hinnataset (lävend, avatud soodustused).

Avalik
GET/v1/referral-program

Viitekaskadi ja juhtide reservi jaoks hetkel kehtivad komisjonitasud.

Avalik
GET/v1/partner-program

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

Tehisintellekti tööriistad

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.

Need käivitatakse reklaamija enda juhtpaneeli sisselogimise kaudu (seanssi juurdepääsutoken), mitte partneri API-võtme kaudu – kolmanda osapoole integratsioon ei saa neid reklaamija nimel käivitada.
POST/v1/advertisers/{id}/ai/assistant

Kü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-studio

Loo lühikese ettevõtte kirjelduse põhjal reklaami pealkiri, kirjeldus ja märksõnad.

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

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

Tõ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-audit

Analüüsige reklaamija enda välist veebisaiti ja tehke konkreetseid ettepanekuid selle SEO parandamiseks.

2 ainepunkti

Näide – reklaamisisu genereerimine

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
}

Vidin

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.

Lisa see oma lehele

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

Omadused

data-categoryKuvatav 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-geoGeograafiline ulatus: kohalik, piirkondlik või globaalne. Vaikimisi on valitud globaalne.
data-countKuvatavate reklaamide arv. Vaikimisi on see 4.
data-columnsVõre veergude arv. Vaikimisi on see 2.
data-layoutvõ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-offsetKõ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-partnerTeie 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.

Tulude jagamine

Kuidas partneri soovitustasu talle tegelikult laekub – protsendimäär, väljamaksmise kord ja eeltingimused.

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
}

Ei ole kindel arv

Komisjonitasu protsent on meie poolt seadistatud ja võib muutuda – lugege seda alati reaalajas sellest lõpppunktist, mitte ärge programmeerige väärtust koodi sisse.

Täisautomaatne

Väljamakse tähtaega ei ole. Planeeritud ülesanne arvutab välja maksmisele kuuluvad tulud, rühmitab need reklaamija kaupa ja maksab need automaatselt välja, kui kõik allpool loetletud tingimused on täidetud.

Väljamaksetingimused

  • Reklaamija maksmisele kuuluv kogutulu on jõudnud minimaalse väljamaksesummale.
  • Nende kontole on seadistatud krüptovaluuta väljamakse rahakott.
  • Nende KYC-staatus on kinnitatud.

Näide: kogunenud kasumi väljatoomine

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
}

Hinnatasemed (kasutusel)

Loe andmeid otse sellest lõpppunktist — ära kunagi koodi neid väärtusi püsivalt sisse, sest need võivad meie poolel muutuda. Looge oma kasutajatele taseme valikuvahend tasuta summa välja asemel: iga kuvatud hind on juba täpne summa, mis tuleb makse loomisel saata, ning siin kuvatud avatud soodustused näitavad kasutajatele täpselt, mida see hind neile annab, nii et nad valivad hinna, mida nad mõistavad, selle asemel, et numbrit ära arvata.

TaseHindAvab
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

Klõpsatav link
Gold$500.00

Animation unlocked

Klõpsatav linkAnimatsioon
Platinum$1,000.00

Enhanced exposure

Klõpsatav linkAnimatsioon
Diamond$2,500.00

Premium placement

Klõpsatav linkAnimatsioon
Elite$5,000.00

Top-tier visibility

Klõpsatav linkAnimatsioon
Legendary$10,000.00

Maximum visibility & branding

Klõpsatav linkAnimatsioon

Kiiruspiirangud

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.

IP-lubatud nimekiri

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.

Veebihookid

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.succeededMakse on kinnitatud.
payment.refundedTagasimakse on teostatud.
ad.activatedReklaam muutub aktiivseks kas automaatselt või pärast administraatori poolt läbivaatamist.
invoice.issuedArve on väljastatud.
referral.payout.completedSoovitustasu on saanud makstud staatuse.
referral.payout.failedSoovitustasude väljamaksete partii ebaõnnestub teenusepakkuja juures — tulud kantakse tagasi maksmisele ja protsess korratakse.
rank.changedReklaami positsioon muutub — sealhulgas juhul, kui selle põhjustab mõne teise reklaamija makse.
ad.expiring_soon30, 7 või 1 päev enne kuulutuse kehtivusaja lõppu.
partner_ad_revenue.payout.completedReklaamitulu osamakse on jõudnud maksmisstaatusesse.
partner_ad_revenue.payout.failedReklaamitulu jagamise väljamakse partii ebaõnnestub teenusepakkuja juures — osad kantakse tagasi maksmisele ja proovitakse uuesti.

Tarkvaraarenduskomplektid

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.

Kiirstart

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