Annual Ads

Әзірлеушіге арналған құжаттама

Annual Ads платформасында тікелей жұмыс істеңіз — жарнама берушілерді жасаңыз, жарнамаларды жариялаңыз, төлемдерді іске қосыңыз және рейтингті бақылаңыз, барлығы API арқылы.

Толық баға кестесін көру

Сіз 70%-ды сақтайсыз Connect-режиміндегі жарнама берушілеріңіз жарнамалары үшін не төлейтінін — автоматты түрде әмияныңызға аударылады. Төменде оның қалай жұмыс істейтінін көріңіз.

Негізгі URL

https://api.adhub365.com
OpenAPI 3

Аутентификация

Әрбір сұраным Authorization басылымындағы Bearer схемасы арқылы құпия кілтпен аутентификацияланады.

POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/json

Сэндбокс және өндіріс

Sandbox және production кілттері бір-бірінен толықтай оқшауланған — sandbox кілті production кілті арқылы жасалған деректерді ешқашан оқи немесе жаза алмайды, керісінше де мүмкін емес.

Қарау шеңберлері

Әрбір кілт тек оған берілген ауқымдармен шектеледі — кілт оны жасаған серіктес есептік жазбадан артық қолжетімділікке ешқашан ие болмайды.

API кілттері Жылдық жарнамалар тобымен мақұлданған серіктес есепшоттарына беріледі.

Серіктес шотын жасаңыз

Жарнама кірісін бөлісу

Егер сіздің API кілттеріңіз өз пайдаланушыларыңыз үшін жарнама берушілердің есептік жазбаларын жасаса (Connect режимі — жоғарыдағы Аутентификацияны қараңыз), сіз сол жарнама берушілер өз жарнамалары үшін төлейтін соманың бір бөлігін аласыз. Төмендегі бөліну осы бірдей endpoint-тен тікелей оқылады, ешқашан қатты кодталмаған және осы беттің әрі қарайғы сілтеме комиссиясынан мүлдем бөлек.

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

70%

Сен үшін

Төлем автоматты түрде сіз конфигурациялаған төлем әмияныңызға аударылады — қаражат алу сұранымы қажет емес.

30%

Жылдық жарнамаларға өтеді

Жарнамаларыңыздың көрсетілуін қамтамасыз ететін модерация, хостинг және рейтинг инфрақұрылымын қамтиды.

Қалай жұмыс істейді

  1. Connect режиміндегі жарнама берушілеріңіздің бірі сіздің интеграцияңыз арқылы жарнамаға ақы төлейді.
  2. Жарнама қаралып, мақұлданады — автоматты түрде немесе модерация тобымыз арқылы.
  3. Сіздің үлесіңіз әмиянға автоматты түрде төленетін кезекке қойылды, бұл төмендегі рефералдық бағдарламадағыдай механизм.
Жарнама нақты мақұлданбағанша ешқандай үлес жасалмайды — модерация оны қабылдамаса, сол төлем бойынша ештеңе төленбейді. Ал бұрыннан белсенді жарнамаға қосымша қаржы салу осындай тәуекел тудырмайды және үлес дереу есептеледі.

Төлем шарттары

  • Сіздің серіктес шотыңызға крипто төлем әмияны бапталып қойылған.
  • Сіздің жағыңызда KYC талап етілмейді — серіктес шотыңыз құрылған кезде-ақ тексерілген.

Мысал: жинақталған үлестерді оқу

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
}

Аяқталу нүктелері

Есепшоттар

POST/v1/partner/advertisers

Пайдаланушыларыңыздың бірінің атынан жарнама берушінің есептік жазбасын жасаңыз (Connect режимі).

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

Осы серіктес жасаған жарнама берушінің есептік жазбасын қарап шығыңыз.

advertisers:read

Жарнамалар

POST/v1/partner/ads

Жарнама жасаңыз. Ол бастапқыда жоба режимінде болады. Қосымша advertiser_type, promotion_type, link_type және promoted_brand өрістері серіктестік, сілтемелік, авторлық немесе жеке жарнаманы сипаттайды — төмендегі ескертуге қараңыз.

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

Жарнаманы іздеңіз.

ads:read
PATCH/v1/partner/ads/{id}

Редакциялық мазмұнды жаңарту — тақырып, сипаттама, сілтеме, жарнама беруші түрі, акция түрі, сілтеме түрі және насихатталатын бренд. Санат, география және рейтинг жүйесі оқитын кез келген мәліметті мұнда ешқашан өзгертуге болмайды.

ads:write
POST/v1/partner/ads/{id}/image

Жарнама суретін тікелей жүктеңіз (JPEG/PNG/WebP, ең көбі 5 МБ). Бірінші төлем жасалмас бұрын қажет — төмендегі төлемдер тобына қараңыз.

ads:write
POST/v1/partner/ads/{id}/image-url

Жарнама суретін файлды жүктеудің орнына URL-мекенжайдан орнатыңыз — сервер оны өзі жүктеп алып, қайта орналастырады. Талап бірдей: алғашқы төлемге дейін қажет.

ads:write
GET/v1/partner/ads/{id}/rank

Жарнаманың ағымдағы рейтингі, санаты және географиялық ауқымы.

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

Жарнаманың жалпы көрілімдері мен басулары — өткен/қалған күндер activate_at/expires_at өрістерінен (GET /{id} арқылы) алынады, ал рангі GET /{id}/rank арқылы алынады.

ads:read

Төлемдер

POST/v1/partner/payments

Бастапқы сатып алу немесе шотты толықтыру үшін крипто төлемді бастаңыз. Егер жарнамада сурет болмаса, бастапқы төлем 422 қатесімен сәтсіз аяқталады — жоғарыдағы uploadAdImage/setAdImageUrl-ге қараңыз.

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

Төлемнің мәртебесін тексеру.

payments:read

Жіберулер

POST/v1/partner/referrals

Сілтеме сілтемесін жасаңыз.

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

Мәртебесі бойынша бөлінген жинақталған жолдама табыстары.

referrals:read

Жарнамадан түскен кірісті бөлісу

GET/v1/partner/ad-revenue/earnings

Сіз Connect режимінде жасаған жарнама берушілеріңіздің жарнамаларына төлеген қаражаттағы сіздің 70% үлесіңіз, мәртебесі бойынша бөлінген.

ad-revenue:read

Қолжетімділік журналы

GET/v1/partner/access-log

Бұл кілт үшін шақыру тарихының толық жазбасы — әдіс, жол, IP, уақыт таңбасы.

Сол жерде

Қоғамдық соңғы нүктелер

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

Санат пен географиялық ауқым бойынша тек оқуға арналған рейтинг.

Қоғамдық
GET/v1/tiers

7 баптаулы баға деңгейлері (шегі, ашылған артықшылықтар).

Қоғамдық
GET/v1/referral-program

Қазіргі уақытта рефералдық каскад пен Лидерлер пулы үшін қолданыстағы комиссия пайыздық мөлшерлемелері.

Қоғамдық
GET/v1/partner-program

Қазіргі жарнама кірісінің бөлінісі (Connect режимінде) сіз бен Annual Ads арасында.

Қоғамдық
GET/v1/search?q={query}

Табиғи тілдегі іздеу — «Кениядағы жиһаз жарнама берушілер» сияқты сұрауды сәйкес санат пен географиялық ауқымға бағыттап, содан кейін сол рейтингті нақты шынайы ретімен қайтарады.

Қоғамдық

Серіктестік және ұсыныстық жарнама

advertiser_type, promotion_type, link_type және promoted_brand — POST және PATCH /v1/partner/ads әдістеріндегі міндетті емес өрістер; Annual Ads тек өздерін жарнамалайтын кәсіпорындармен шектелмейді. link_type affiliate_link немесе referral_invitation_link болғанда, не promotion_type affiliate_offer немесе referral_opportunity болғанда affiliate_terms_accepted true болуы тиіс, әйтпесе сұраныс 422 кодымен қате болып қайтарылады. title 35 таңбаға, ал description 80 таңбаға дейін шектелген — бұл шектеулер тек бақылау тақтасының интерфейсінде ғана емес, сервер жағында да қолданылады.

Жасанды интеллект құралдары

Әр жарнама берушінің есепшотына кіріктірілген AI құралдарының жиынтығы беріледі: жарнама мазмұны мен визуалды генератор, әңгімелесу ассистенті, бюджет жөніндегі кеңесші және сыртқы SEO аудиторы. Олар жыл сайынғы біркелкі бағадан бөлек AI кредиттерімен төленеді.

Олар жарнама берушінің өз бақылау тақтасына кіруі (сеанстық қолжетімділік токені) арқылы жүзеге асады, серіктес API кілті арқылы емес — үшінші тарап интеграциясы жарнама беруші атынан оларды шақыра алмайды.
POST/v1/advertisers/{id}/ai/assistant

Ask Annual Ads — жүзетін әңгімелесуші көмекші, тек ақпараттық мақсатта, есептік деректерді тек оқуға арналған.

Қоғамдық
POST/v1/advertisers/{id}/ai/creative-studio

Қысқа бизнес сипаттамасынан жарнама тақырыбын, сипаттамасын және кілтсөздерін жасаңыз.

2 кредит(тер)
POST/v1/advertisers/{id}/ai/creative-studio/image

Сол бір бизнес сипаттамасынан жарнамаға тіркеуге дайын тізімдік визуал (PNG) жасаңыз.

8 кредит(тер)
POST/v1/advertisers/{id}/ai/budget-advisor

Нақты статистикалық болжам — ешқашан генеративті болжам емес — белгілі бір рейтингті 30/90/365 күнде сақтап қалу ықтималдығы.

1 кредит(тер)
POST/v1/advertisers/{id}/ai/seo-audit

Жарнама берушінің сыртқы веб-сайтын талдап, нақты SEO жақсартуларын ұсыныңыз.

2 кредит(тер)

Мысал — жарнама мазмұнын жасау

Сол санат пен бизнес сипаттамасы төмендегі сурет генераторына да негіз болады.

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
}

Сол жарнамаға сәйкес келетін визуал жасаңыз:

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
}

Виджет

Дайын жарнама блогын өз сайтыңызға орналастырыңыз — құру қажет емес, iframe қолданудың қажеті жоқ. Скрипт оқшауланған Shadow DOM ішінде тікелей бетке рендерленеді, сондықтан оның стильдері ешқашан сіздің сайтыңызға әсер етпейді, ал сіздің сайтыңыздың стильдері де оған әсер етпейді.

Оны бетіңізге қосыңыз

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

Әдепкі бойынша бұл категорияның толық ашық рейтингін көрсетеді — платформадағы барлық жарнама берушілерді, тек сіз әкелгендерді ғана емес. Connect режимі арқылы жасаған (сіздің үлесіңізді түзетін) жарнама берушілердің жарнамаларын ғана көрсету үшін data-partner деректеріне серіктес идентификаторыңызды қосыңыз (оны өз бақылау тақтаңыздың Әзірлеушілер бетінен таба аласыз):

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

Егер сіздің жарнама берушілеріңіз бірнеше санатқа жататын болса, data-category сипаттамасын мүлде алып тастаңыз — тек data-partner сипаттамасын пайдаланғанда виджет барлық санаттардағы барлық жарнамаларыңызды бір торда көрсетеді, әр санатқа бөлек виджет блогын орналастырудың қажеті жоқ:

<div
  class="annualads-widget"
  data-geo="global"
  data-partner="YOUR_PARTNER_ID"
></div>
<script async src="https://adhub365.com/widget.js"></script>

Мазмұндағы баннер блогының қасына әрқайсысы әртүрлі жарнама көрсететін футер стиліндегі блок қосқыңыз келе ме? data-layout="compact" (бір жарнама, кішігірім «пилл» түрінде жиырылатын) және data-offset мәнін бірінші виджетіңіздегі жарнамалар санына тең етіп орнатып, екінші виджет блогын қосыңыз:

<!-- 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Көрсетуге арналған санат идентификаторы. Қажет — егер data-partner көрсетілмесе, оны көрсетпеу әрбір санаттағы серіктес жарнамаларын көрсетуді білдіреді.
data-geoГео ауқымы: жергілікті, өңірлік немесе жаһандық. Әдепкі бойынша жаһандық.
data-countКөрсетілетін жарнамалар саны. Әдепкі бойынша 4.
data-columnsТор бағаналарының саны. Әдепкі бойынша 2.
data-layoutтор, тізім немесе ықшам. Әдепкі бойынша тор. Ықшам бір ғана жарнаманы (data-count ескерілмейді) көрсетеді, оны шағын түймешеге жинап, қайта шығаруға мүмкіндік беретін батырмасы бар — бұл беттің төменгі жағындағы бөлім стиліндегі блок, скрипт оны ешқашан бекітілген күйге орналастырмайды, сіз контейнер div-ті өз бетіңізде қалағаныңызша орналастырып, стильдей аласыз.
data-offsetЖоғары рейтингті жарнамаларды өткізіп жіберу саны. Әдепкі бойынша 0. Бұл бір беттегі екінші виджетке (мысалы, төменгі жақтағы ықшам виджет пен беттің жоғарғы жағындағы торлы виджет) бірдей жарнаманы екі рет қайталамай, басқа жарнамаларды көрсетуге мүмкіндік береді — басқа виджеттің қазір көрсетіп тұрған жарнамалар санын жіберіңіз.
data-partnerСіздің серіктес идентификаторыңыз (оны өз бақылау тақтаңыздың «Әзірлеушілер» бетінен таба аласыз). Міндетті емес — ол болмаса, виджет сол санаттағы барлық жарнама берушілердің толық ашық рейтингін көрсетеді. Ал оны қолдансаңыз, тек Connect режимі арқылы әкелген жарнама берушілердің жарнамалары ғана көрсетіледі — яғни, нақты сіздің үлесіңізді құрайтын жарнамалар.

Түсімді бөлісу

Серіктестің жолдау комиссиясы оларға қалай нақты жетеді — пайыздық мөлшерлеме, төлем механизмі және алғышарттары.

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
}

Тұрақты сан емес

Комиссия пайыздық мөлшерлеме біздің жағымызда бапталады және өзгеруі мүмкін — мәні қатты кодтаудың орнына оны әрдайым осы ендпойнттан тікелей оқып алыңыз.

Толық автоматты

Қаражатты алу шегі жоқ. Жоспарланған жұмыс төленетін табысты есептейді, оны әр жарнама беруші бойынша топтастырады және төмендегі барлық шарттар орындалғаннан кейін автоматты түрде төлейді.

Төлем шарттары

  • Жарнама берушінің жалпы төленуге тиісті табысы ең төменгі төлем сомасына жетті.
  • Олардың шотында крипто төлем әмияны бапталып қойылған.
  • Олардың KYC мәртебесі расталды.

Мысал: жинақталған табыстарды оқу

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
}

Баға деңгейлері (тікелей)

Осы ендпойнттан тікелей оқыңыз — осы мәндерді ешқашан қатты кодтамаңыз, олар біздің жағымызда өзгеруі мүмкін. Тегін сома өрісінің орнына өз пайдаланушыларыңызға арналған деңгей таңдағышты құрыңыз: көрсетілген әрбір баға төлем жасау кезінде жіберілетін нақты соманы білдіреді, ал мұнда көрсетілген ашылған артықшылықтар пайдаланушыларға сол бағаның нені қамтитынын дәл түсіндіреді, сондықтан олар сандарды болжаудың орнына түсінетін бағаны таңдайды.

ДеңгейБағаАшады
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

Басуға болатын сілтеме
Gold$500.00

Animation unlocked

Басуға болатын сілтемеАнимация
Platinum$1,000.00

Enhanced exposure

Басуға болатын сілтемеАнимация
Diamond$2,500.00

Premium placement

Басуға болатын сілтемеАнимация
Elite$5,000.00

Top-tier visibility

Басуға болатын сілтемеАнимация
Legendary$10,000.00

Maximum visibility & branding

Басуға болатын сілтемеАнимация

Реттеу шектері

Сұраулар әр кілт бойынша минутына шектеледі. Әрбір аутентификацияланған жауап X-RateLimit-Limit, X-RateLimit-Remaining және X-RateLimit-Reset басылықтарын қамтиды; шектен асқан кезде Retry-After басылығымен 429 Too Many Requests қатесі қайтарылады.

IP рұқсат тізімі

Әр серіктес үшін міндетті емес. Сіз жазба қосқанға дейін кілттеріңіз кез келген IP-мекенжайдан келетін сұраныстарды қабылдайды — алғашқы жазба сол серіктестің барлық кілттерін тек рұқсат етілген тізімге ғана жіберу режиміне ауыстырады.

Вебхуктар

Әрбір вебхук құрылған кезде бір рет берілетін құпия кілт негізінде HMAC-SHA256 әдісімен қол қойылады — жүктемені сенімге алмас бұрын қолтаңбаны тексеріңіз. Оқиғалар тек тиісті жарнама берушіге ие серіктеске жеткізіледі.

payment.succeededТөлем расталды.
payment.refundedҚайтару жүзеге асырылады.
ad.activatedЖарнама автоматты түрде немесе әкімші мақұлдағаннан кейін белсенді болады.
invoice.issuedШот-фактура шығарылды.
referral.payout.completedРефералдық комиссия төленетін мәртебеге жетеді.
referral.payout.failedПровайдерде рефералдық төлем пакеті сәтсіз аяқталды — табыстар төленуге қайта оралып, қайтадан өңделеді.
rank.changedЖарнаманың рангі өзгереді — соның ішінде басқа жарнама берушінің төлемі себеп болған кезде де.
ad.expiring_soonЖарнама мерзімі аяқталуға 30, 7 немесе 1 күн қалғанда.
partner_ad_revenue.payout.completedЖарнама кірісінің үлесін төлеу ақылы мәртебеге жетеді.
partner_ad_revenue.payout.failedПровайдерде жарнама кірісін бөлісу төлемінің партиясы сәтсіз аяқталды — үлестер төлеуге қайта оралып, қайтадан орындалады.

Бағдарламалық қамтамасыз етуді әзірлеу жинақтары

Осы бірдей API сипаттамасынан жасалған ресми JavaScript/TypeScript және Python SDK-лары жоспарланған, бірақ әлі жарияланбаған — сол уақытқа дейін HTTP API-ге тікелей қоңырау шалыңыз.

Жылдам бастау

Әзірге SDK жоқ — олар HTTP API-ге тікелей шақырады және бүгінгі күні кез келген тілде жұмыс істейді.

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