Ամբողջովին API-ի միջոցով կառուցեք ուղղակիորեն Annual Ads հարթակում՝ ստեղծեք գովազդատուներ, հրապարակեք գովազդներ, նախաձեռնեք վճարումներ և հետևեք դասակարգին։
Տեսեք ամբողջական գների աղյուսակըԴուք պահում եք 70%-ը Ձեր Connect-mode գովազդատուները իրենց գովազդների համար վճարում են՝ գումարը ավտոմատ կերպով փոխանցվում է ձեր դրամապանակին։ Տեսեք ստորև, թե ինչպես է դա գործում։
Յուրաքանչյուր հարցում վավերացվում է գաղտնի բանալով «Authorization» վերնագրում՝ օգտագործելով Bearer սխեման։
POST https://api.adhub365.com/v1/partner/ads
Authorization: Bearer sk_sandbox_...
Content-Type: application/jsonAPI բանալիները տրամադրվում են հաստատված գործընկերային հաշիվներին Տարեկան գովազդների թիմի կողմից։
Ստեղծել գործընկերային հաշիվ| 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Ուploadեք գովազդային պատկերը անմիջապես (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Գովազդի ընդհանուր դիտումները և սեղմումները — անցած/մնացած օրերը ստացվում են արդեն GET /{id}-ում առկա activated_at/expires_at դաշտերից, իսկ դասակարգումը ստացվում է 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Ձեր 70%-անոց բաժինը՝ այն գումարից, որը Connect ռեժիմում ստեղծված գովազդատուները վճարել են իրենց գովազդների համար, բաժանված ըստ կարգավիճակի։ | ad-revenue:read |
| GET | /v1/partner/access-logԱյս բանալիների կանչերի ամբողջական պատմությունը — մեթոդ, ուղի, IP հասցե, ժամանակի դրոշմ։ | Այնտեղ |
| GET | /v1/rankings?category={id}&geo={scope}Միայն կարդալու համար նախատեսված դասակարգում կատեգորիայի և աշխարհագրական շրջանակի համար։ | Հանրային |
| GET | /v1/tiers7 կարգավորված գների մակարդակներ (աշեմ, բացված առավելություններ) | Հանրային |
| 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 նիշով — երկուսն էլ կիրառվում են սերվերի կողմից, ոչ միայն կառավարման վահանակի UI-ում։
Յուրաքանչյուր գովազդողի հաշիվը ստանում է ներկառուցված AI գործիքների հավաքածու՝ գովազդային բովանդակության և տեսողական նյութերի գեներատոր, զրուցային օգնական, բյուջեի խորհրդատու և արտաքին SEO աուդիտոր, որոնք վճարվում են AI կրեդիտներով՝ տարեկան ֆիքսված գնի վրա։
| POST | /v1/advertisers/{id}/ai/assistantAsk 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 տվյալը՝ ձեր գործընկեր ID-ով (գտեք այն ձեր սեփական կառավարման վահանակի Developers էջում):
<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>Ցանկանու՞մ եք բովանդակության մեջ տեղադրված միավորի կողքին ունենալ նաև ստորին (footer) ոճի միավոր, որոնցից յուրաքանչյուրը ցուցադրի տարբեր գովազդներ։ Ավելացրեք երկրորդ widget բլոկ՝ data-layout="compact" (մեկ գովազդ, որը կարելի է փոքրացնել՝ փոքր պիլի տեսքով) և data-offset արժեքը սահմանեք այն գովազդների թվին, որքանն արդեն ցուցադրում է ձեր առաջին 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։ Պարտադիր է — եթե data-partner հատկանիշը սահմանված չէ, ապա դրա բացակայությունը ցուցադրում է տվյալ գործընկերոջ գովազդները բոլոր կատեգորիաներում։ |
data-geo | Գեոգրաֆիական շրջանակ՝ տեղական, տարածաշրջանային կամ համաշխարհային։ Ստանդարտը համաշխարհային է։ |
data-count | Ցուցադրվող գովազդների քանակը։ Ստանդարտ արժեքը՝ 4։ |
data-columns | Ցանցի սյունների քանակը։ Ստանդարտ արժեքը՝ 2։ |
data-layout | ցանցային, ցուցակային կամ կոմպակտ։ Ստանդարտը ցանցային է։ Կոմպակտը ցուցադրում է մեկ գովազդ (data-count-ը անտեսվում է)՝ կոճակով, որը թույլ է տալիս այն փոքրացնել փոքրիկ կոճակի տեսքով և հետ բերել — ստորին հատվածի (footer) ոճի միավոր է, որը սցրիպտը երբեք ֆիքսված դիրքով չի տեղադրում, դուք կարող եք ձեր էջում ցանկացած կերպ տեղադրել և ոճավորել container div-ը։ |
data-offset | Առաջին հորիզոնականի գովազդների թիվը, որոնք պետք է բաց թողնել։ Ստանդարտ արժեքը 0 է։ Թույլ է տալիս նույն էջում երկրորդ վիջեթին (օրինակ՝ ստորին հատվածում կոմպակտ, իսկ վերևում՝ ցանցային) ցուցադրել տարբեր գովազդներ՝ նույն գովազդը երկու անգամ կրկնելու փոխարեն՝ փոխանցելով մյուս վիջեթի ցուցադրած գովազդների թիվը։ |
data-partner | Ձեր գործընկեր ID-ն (գտեք այն ձեր սեփական վահանակի Developers էջում): Ընտրովի — առանց դրա վիջեթը ցուցադրում է տվյալ կատեգորիայի ամբողջ հանրային վարկանիշը՝ հարթակում գործող բոլոր գովազդատուների համար: Իսկ դրա շնորհիվ ցուցադրվում են միայն այն գովազդները, որոնք դուք բերել եք Connect ռեժիմով՝ այն գովազդները, որոնք իրականում ապահովում են ձեր բաժինը: |
Պահանջները սահմանափակվում են յուրաքանչյուր բանալիի համար յուրաքանչյուր րոպեում։ Յուրաքանչյուր վավերացված պատասխան պարունակում է X-RateLimit-Limit, X-RateLimit-Remaining և X-RateLimit-Reset վերնագրեր; սահմանաչափը գերազանցելու դեպքում վերադարձվում է 429 «Չափից շատ հարցումներ» կոդով սխալ՝ Retry-After վերնագրով։
Ընտրովի՝ յուրաքանչյուր գործընկերոջ համար։ Մինչև դուք չավելացնեք գրառում, ձեր բանալիները ընդունում են հարցումներ ցանկացած 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 | Մատակարարի մոտ գովազդային եկամուտների բաժանման վճարման խմբաքանակը ձախողվում է — բաժնետոմսերը վերադառնում են վճարման ենթակա և կրկին փորձվում են։ |
Պաշտոնական JavaScript/TypeScript և Python SDK-ները, որոնք ստեղծվել են նույն API-սպեցիֆիկացիայից, պլանավորված են, սակայն դեռևս չեն հրապարակվել — մինչև այդ ուղղակիորեն օգտագործեք 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": "...",
},
)