Vytvárajte priamo na platforme Annual Ads – pridávajte inzerentov, zverejňujte reklamy, iniciujte platby a sledujte pozíciu v rebríčku, a to všetko prostredníctvom API.
Pozrite si kompletnú cenovú tabuľkuZostáva vám 70 % z toho, čo vaši inzerenti v režime Connect platia za svoje reklamy – suma sa automaticky pripíše do vašej peňaženky. Nižšie si môžete pozrieť, ako to funguje.
Každá požiadavka sa overuje pomocou tajného kľúča v hlavičke „Authorization“ s využitím schémy „Bearer“.
POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/jsonTím Annual Ads vydáva kľúče API schváleným partnerským účtom.
Vytvorte partnerský účet| POST | /v1/partner/advertisersVytvorte účet inzerenta v mene jedného zo svojich používateľov (režim Connect). | advertisers:write |
| GET | /v1/partner/advertisers/{id}Vyhľadajte účet inzerenta, ktorý vytvoril tento partner. | advertisers:read |
| POST | /v1/partner/adsVytvorte reklamu. Spočiatku má status „návrh“. Voliteľné polia advertiser_type, promotion_type, link_type a promoted_brand opisujú partnerskú, odporúčaciu, tvorcovskú alebo individuálnu reklamu – pozrite si poznámku nižšie. | ads:write |
| GET | /v1/partner/ads/{id}Vyhľadajte inzerát. | ads:read |
| PATCH | /v1/partner/ads/{id}Aktualizujte redakčný obsah – názov, popis, odkaz, typ inzerenta, typ propagácie, typ odkazu a propagovanú značku. Kategóriu, geografické údaje a všetky údaje, ktoré číta systém hodnotenia, tu nemožno nikdy zmeniť. | ads:write |
| POST | /v1/partner/ads/{id}/imageNahrajte obrázok inzerátu priamo (formát JPEG/PNG/WebP, maximálne 5 MB). Je to potrebné pred prvou platbou – pozrite si časť o platbách nižšie. | ads:write |
| POST | /v1/partner/ads/{id}/image-urlNastavte obrázok reklamy pomocou URL namiesto nahratia súboru – server ho sám stiahne a umiestni na svoj server. Platí rovnaká podmienka: je potrebné to urobiť pred prvou platbou. | ads:write |
| GET | /v1/partner/ads/{id}/rankAktuálne umiestnenie, kategória a geografický rozsah reklamy. | ads:read |
| GET | /v1/partner/ads/{id}/statsCelkový počet zobrazení a kliknutí na reklamu — počet uplynulých/zostávajúcich dní pochádza z polí „activated_at“ a „expires_at“, ktoré sú už obsiahnuté v požiadavke GET /{id}, a pozícia v rebríčku pochádza z požiadavky GET /{id}/rank. | ads:read |
| POST | /v1/partner/paymentsSpustite platbu v kryptomene za prvý nákup alebo dobitie kreditu. Prvá platba skončí chybou 422, pokiaľ reklama ešte neobsahuje obrázok – pozri vyššie uvedené funkcie uploadAdImage/setAdImageUrl. | payments:write |
| GET | /v1/partner/payments/{id}Skontrolujte stav platby. | payments:read |
| POST | /v1/partner/referralsVytvorte odporúčací odkaz. | referrals:write |
| GET | /v1/partner/referrals/{code}/earningsKumulatívne výnosy z odporúčaní, rozdelené podľa statusu. | referrals:read |
| GET | /v1/partner/ad-revenue/earningsVáš 70 % podiel z čiastok, ktoré inzerenti, ktorých ste vytvorili v režime Connect, zaplatili za svoje reklamy, rozdelený podľa stavu. | ad-revenue:read |
| GET | /v1/partner/access-logÚplná história volaní pre tento kľúč – metóda, cesta, IP adresa, časová pečiatka. | Tam |
| GET | /v1/rankings?category={id}&geo={scope}Poradie s právom iba na čítanie pre danú kategóriu a geografickú oblasť. | Verejné |
| GET | /v1/tiers7 nastavených cenových úrovní (prahová hodnota, odomknuté výhody). | Verejné |
| GET | /v1/referral-programPercentá provízií, ktoré sú v súčasnosti platné pre kaskádový systém odporúčaní a program Leaders Pool. | Verejné |
| GET | /v1/partner-programSúčasné rozdelenie príjmov z reklamy (režim Connect) medzi vás a Annual Ads. | Verejné |
| GET | /v1/search?q={query}Vyhľadávanie v prirodzenom jazyku — nasmeruje dotaz typu „inzerenti nábytku v Keni“ do príslušnej kategórie a geografického rozsahu a následne vráti výsledky zoradené presne v tom poradí, v akom sa skutočne nachádzajú. | Verejné |
Partnerská a odporúčacia reklama
advertiser_type, promotion_type, link_type a promoted_brand sú voliteľné polia pri metódach POST a PATCH na adrese /v1/partner/ads — služba Annual Ads nie je obmedzená len na firmy, ktoré inzerujú samy seba. Ak je hodnota poľa link_type affiliate_link alebo referral_invitation_link, alebo ak je hodnota poľa promotion_type affiliate_offer alebo referral_opportunity, musí byť hodnota poľa affiliate_terms_accepted nastavená na true, inak bude žiadosť odmietnutá s chybovým kódom 422. Dĺžka poľa title je obmedzená na 35 znakov a poľa description na 80 znakov – obidve obmedzenia sa vynucujú na strane servera, nielen v používateľskom rozhraní riadiaceho panela.
Každý inzerentský účet má k dispozícii sadu integrovaných nástrojov umelej inteligencie – generátor obsahu a vizuálov reklám, konverzačného asistenta, poradcu pre rozpočet a externého audítora SEO –, ktoré sa okrem paušálnej ročnej ceny hradia kreditmi na umelú inteligenciu.
| POST | /v1/advertisers/{id}/ai/assistantAsk Annual Ads — plávajúci konverzačný asistent, slúži výlučne na informačné účely a má prístup k údajom účtu iba na čítanie. | Verejné |
| POST | /v1/advertisers/{id}/ai/creative-studioNa základe stručného popisu firmy vygenerujte názov inzerátu, popis a kľúčové slová. | 2 kredit(ov) |
| POST | /v1/advertisers/{id}/ai/creative-studio/imageVytvorte vizuál inzerátu (PNG) na základe toho istého popisu firmy, ktorý je už pripravený na priloženie k inzerátu. | 8 kredit(ov) |
| POST | /v1/advertisers/{id}/ai/budget-advisorSkutočná štatistická prognóza – v žiadnom prípade nie generatívny odhad – pravdepodobnosti udržania daného poradia po 30, 90 a 365 dňoch. | 1 kredit(ov) |
| POST | /v1/advertisers/{id}/ai/seo-auditAnalyzujte externú webovú stránku samotného inzerenta a navrhnite konkrétne zlepšenia v oblasti SEO. | 2 kredit(ov) |
Tá istá kategória a popis činnosti slúžia aj ako podklad pre generátor obrázkov nižšie.
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
}Vytvorte zodpovedajúci vizuál pre tú istú reklamu:
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
}Vložte hotový reklamný blok na svoju stránku – bez nutnosti vytvárania, bez iframe. Skript sa vykresľuje priamo na stránke v izolovanom prostredí Shadow DOM, takže jeho štýly sa nikdy neprenášajú na vašu stránku a štýly vašej stránky sa nikdy neprenášajú do neho.
<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>V predvolenom nastavení sa tu zobrazuje kompletné verejné poradie v danej kategórii – všetci inzerenti na platforme, nielen tí, ktorých ste priviedli vy. Ak chcete zobraziť len reklamy od inzerentov, ktorých ste vytvorili prostredníctvom režimu Connect (tých, ktorí generujú váš podiel), pridajte atribút „data-partner“ s vaším partnerským ID (nájdete ho na stránke „Developers“ vo vašom vlastnom riadiacom paneli):
<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>Ak vaši inzerenti pôsobia vo viacerých kategóriách, úplne vynechajte atribút „data-category“ — ak použijete len atribút „data-partner“, widget zobrazí všetky vaše reklamy zo všetkých kategórií v jednej mriežke, namiesto toho, aby bol potrebný jeden blok widgetu pre každú kategóriu:
<div
class="annualads-widget"
data-geo="global"
data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>Chcete popri widgete v obsahu mať aj ďalší v pätičke, pričom každý z nich bude zobrazovať iné reklamy? Pridajte druhý blok widgetu s atribútom data-layout="compact" (jedna reklama, ktorú možno zložiť do malého modulu) a atribútom data-offset nastaveným na počet reklám, ktoré už zobrazuje váš prvý widget:
<!-- 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 | ID kategórie, ktorá sa má zobraziť. Povinné — pokiaľ nie je nastavený parameter „data-partner“; v takom prípade sa pri jeho vynechaní zobrazia reklamy daného partnera vo všetkých kategóriách. |
data-geo | Geografický rozsah: miestny, regionálny alebo globálny. Predvolené nastavenie je globálne. |
data-count | Počet reklám, ktoré sa majú zobraziť. Predvolená hodnota je 4. |
data-columns | Počet stĺpcov tabuľky. Predvolená hodnota je 2. |
data-layout | mriežka, zoznam alebo kompaktný režim. Predvolené nastavenie je mriežka. V kompaktnom režime sa zobrazí jediná reklama (hodnota „data-count“ sa ignoruje) s tlačidlom na jej zmenšenie na malú ikonu a opätovné zobrazenie — ide o prvok v štýle päty stránky, ktorý skript sám nikdy neumiestňuje pevne; umiestnenie a štýl kontajnerového divu si na svojej stránke môžete prispôsobiť podľa vlastného uváženia. |
data-offset | Počet najvyššie zaradených reklám, ktoré sa majú preskočiť. Predvolená hodnota je 0. Umožňuje, aby druhý widget na tej istej stránke (napr. kompaktný widget v pätičke a mriežkový widget vyššie) zobrazoval iné reklamy namiesto toho, aby sa tá istá reklama opakovala dvakrát – zadajte počet reklám, ktoré už druhý widget zobrazuje. |
data-partner | Vaše partnerské ID (nájdete ho na stránke „Developers“ vo vašom vlastnom riadiacom paneli). Voliteľné — bez neho widget zobrazuje úplné verejné poradie v danej kategórii, teda všetkých inzerentov na platforme. Ak ho zadáte, zobrazujú sa iba reklamy od inzerentov, ktorých ste priviedli prostredníctvom režimu Connect — teda tých, ktorí vám skutočne generujú podiel. |
Počet požiadaviek je obmedzený na jeden kľúč za minútu. Každá overená odpoveď obsahuje hlavičky X-RateLimit-Limit, X-RateLimit-Remaining a X-RateLimit-Reset; pri prekročení limitu sa vráti stav 429 Too Many Requests s hlavičkou Retry-After.
Voliteľné, pre každého partnera. Pokiaľ nepridáte žiadny záznam, vaše kľúče prijímajú požiadavky z akejkoľvek IP adresy – prvý záznam prepne všetky kľúče daného partnera do režimu „len zoznam povolených“.
Každý webhook je podpísaný pomocou algoritmu HMAC-SHA256 s využitím tajného kľúča, ktorý sa generuje jednorazovo pri jeho vytvorení – predtým, ako dôverujete obsahu správy, overte jej podpis. Udalosti sa doručujú iba partnerovi, ktorý je vlastníkom príslušného inzerenta.
payment.succeeded | Platba bola potvrdená. |
payment.refunded | Vrátenie peňazí bolo vykonané. |
ad.activated | Inzerát sa zverejní automaticky alebo po schválení správcom. |
invoice.issued | Vystaví sa faktúra. |
referral.payout.completed | Provízia za odporúčanie dosiahla status „vyplatená“. |
referral.payout.failed | Hromadná výplata provízií za odporúčania zlyhala u poskytovateľa — výnosy sa vrátili do položky „k vyplateniu“ a proces sa opakuje. |
rank.changed | Zmena poradia reklamy – vrátane prípadov, keď k nej dôjde v dôsledku platby iného inzerenta. |
ad.expiring_soon | 30, 7 alebo 1 deň (dni) pred uplynutím platnosti inzerátu. |
partner_ad_revenue.payout.completed | Výplata podielu na príjmoch z reklamy dosiahla stav „zaplatené“. |
partner_ad_revenue.payout.failed | Hromadná výplata podielu na príjmoch z reklamy zlyhala u poskytovateľa – podiely sa vrátili do položky „k vyplateniu“ a pokus sa opakuje. |
Plánuje sa vydanie oficiálnych SDK pre JavaScript/TypeScript a Python, ktoré budú vygenerované na základe tejto špecifikácie API, zatiaľ však neboli zverejnené — dovtedy využívajte priamo HTTP API.
Zatiaľ nie je k dispozícii žiadne SDK – tieto riešenia volajú HTTP API priamo a fungujú už dnes v akomkoľvek jazyku.
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": "...",
},
)