Annual Ads

Documentación d'o desembolicador

Construye dreitament en a plataforma Annual Ads: creya anunciants, publica anuncios, activa os pagos y fa un seguimiento d'o ran, tot a traviés de l'API.

Veyer a tabla de pres completa

T'encargas de 70% d'o que pagan os tuyos anunciants en modo Connect por os suyos anuncios — pagau automaticament en a tuya cartera. Mira cómo funciona debaixo.

URL base

https://api.adhub365.com
OpenAPI 3

Autenticación

Cada solicitut s'autentica con una clau secreta en o encabezau d'Autorización, fendo servir l'esquema Bearer.

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

Sandbox y producción

As claus de sandbox y de producción son de tot isoladas entre ellas — una clau de sandbox nunca no puede leyer ni escribir datos creyaus por una clau de producción, y viceversa.

Alcances

Cada clau ye limitada a os ambitos con os que se emitió — una clau nunca no tiene mas acceso que a cuenta asociada que la creyó.

As claus API s'emiten a las cuentas de socio aprobadas por l'equipo d'Anuncios Anyals.

Creyar una cuenta de socio

Reparto d'os ingresos publicitarios

Si as tuyas claus d'API creyan cuentas d'anunciants pa os tuyos propios usuarios (modo Connect — se veiga Autenticación más entalto), ganas una parte de lo que ixos anunciants pagan por os suyos anuncios. A división de más t'abaixo se leye en directo dende iste mesmo punto final, nunca codificada en duro, y ye de tot deseparada d'a comisión de derivación más abaixo en ista pachina.

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

70%

Te toca a tu

Paga-se automaticament a la tuya cartera de pago configurada — no cal garra solicitut de retirada.

30%

Va ta Anuncios anyals

Cubre a moderación, l'alochamiento y a infraestructura de clasificación en a que s'executan os tuyos anuncios.

Cómo funciona

  1. Un d'os tuyos anunciants en modo Connect paga un anuncio a traviés d'a tuya integración.
  2. L'anuncio se revisa y s'apreba — automaticament, u por o nuestro equipo de moderación.
  3. A tuya parte ye en a cola pa o pago automatico a la tuya cartera, o mesmo mecanismo que o programa de referenzia de debaixo.
Una parte nunca no se creya dica que l'anuncio sía aprebau de verdat — si a moderación lo refusa, no se debe cosa por ixe pago. Una recarga en un anuncio ya activo no tiene ixe risgo y se comparte immediatament.

Condicions de pago

  • S'ha configurau una cartera de pago en criptomoneda en a tuya cuenta de socio.
  • No cal KYC por a tuya parte — a tuya cuenta de socio ya ha estau verificada en creyar-la.

Exemplo: leyer as accions acumuladas

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
}

Puntos finals

Cuentas

POST/v1/partner/advertisers

Crear una cuenta d'anunciant en nombre d'un d'os suyos usuarios (modo Connect).

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

Busque una cuenta d'anunciant creyada por iste socio.

advertisers:read

Publicidat

POST/v1/partner/ads

Crea un anuncio. Empecipia con estatus de borrador. Os campos opcionals advertiser_type, promotion_type, link_type y promoted_brand describen publicidat d'afiliaus, de referencia, de creyadors u individual — se veiga a nota de debaixo.

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

Busca un anuncio.

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

Actualizar o conteniu editorial — títol, descripción, vinclo, tipo d'anunciant, tipo de promoción, tipo de vinclo y marca promocionada. A categoría, a cheografía y tot o que lée o motor de clasificación nunca no se pueden cambiar aquí.

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

Puya una imachen de l'anuncio directament (JPEG/PNG/WebP, 5 MB max). Requisito antes d'o primer pago — se veiga o grupo de pagos de debaixo.

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

Estableix a imachen d'un anuncio dende una URL en cuenta de puyar un fichero — o servidor la recupera y la alocha ell mesmo. O mesmo requisito: cal antes d'o primer pago.

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

Rango, categoría y ámbito cheografico actuals pa un anuncio.

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

As vistas y clics totals d'un anuncio — os días pasaus/restants promanan d'os campos activated_at/expires_at ya disponibles en GET /{id}, y o ranqueo de GET /{id}/rank.

ads:read

Pagos

POST/v1/partner/payments

Prencipia un pago en criptomoneda pa una compra inicial u una recarga. Un pago inicial falla con 422 si l'anuncio no tiene ya una imachen — se veiga uploadAdImage/setAdImageUrl más entalto.

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

Comprobar o estau d'un pago.

payments:read

Remisions

POST/v1/partner/referrals

Crea un vinclo de referencia.

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

Ganancias acumuladas por derivación, deseparadas por estatus.

referrals:read

Reparto d'os ingresos publicitarios

GET/v1/partner/ad-revenue/earnings

A tuya parte d'o 70% de lo que os anunciants que creyaste en modo Connect pagoron por os suyos anuncios, desglossada por estau.

ad-revenue:read

Rechistro d'acceso

GET/v1/partner/access-log

Historial completo d'as clamadas d'ista clau — metodo, rota, IP, marca de tiempo.

Astí

Puntos finals publicos

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

Ranquin de nomás lectura pa una categoría y un ámbito cheografico.

Publico
GET/v1/tiers

Os 7 livels de pre configuraus (branca, beneficios desbloqueyaus).

Publico
GET/v1/referral-program

Os porcentaches de comisión actualment activos pa la cascada de referidos y o Puesto de Líderes.

Publico
GET/v1/partner-program

A repartición actual d'os ingresos por publicidat (modo Connect) entre tu y Publicidaz Anyals.

Publico
GET/v1/search?q={query}

Busca en luenga natural — diriche una consulta como "anunciants de muebles en Kenya" a la categoría y l'abasto cheografico correspondients, y dimpués retorna ixe ranquián, en o suyo orden real exacto.

Publico

Publicidat d'afiliaus y de referencia

advertiser_type, promotion_type, link_type, y promoted_brand son campos opcionals en as peticions POST y PATCH /v1/partner/ads — Annual Ads no se limita a interpresas que s'anuncian a ellas mesmas. Cuan link_type ye affiliate_link u referral_invitation_link, u promotion_type ye affiliate_offer u referral_opportunity, affiliate_terms_accepted ha d'estar true u a solicitut se refusa con un 422. O títol se limita a 35 caracters y a descripción a 80 — toz dos s'aplican dende o costau d'o servidor, no nomás en a interfaz d'usuario d'o panel de control.

Ferramientas d'IA

Cada cuenta d'anunciant tiene un conchunto de ferramientas d'IA integradas —un chenerador de conteniu y visuals publicitarios, un asistent de conversa, un consellero de presupuesto y un auditor SEO externo— pagadas con creditos d'IA, amás d'o preu anyal fixo.

Istos s'executan a traviés d'a sesión de l'anunciant (un token d'acceso de sesión), y no pas d'una clau d'API de socio; una integración de tercers no puede invocar-los en nombre de l'anunciant.
POST/v1/advertisers/{id}/ai/assistant

Ask Annual Ads — un asistent de conversa flotant, nomás informativo, en cuenta nomás de lectura.

Publico
POST/v1/advertisers/{id}/ai/creative-studio

Chenerar un títol, una descripción y parolas clau d'un anuncio a partir d'una breu descripción d'empresa.

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

Chenerar una imachen listada (PNG) a partir d'a mesma descripción d'o negocio, alochada y presta pa adchuntar a un anuncio.

8 creditos
POST/v1/advertisers/{id}/ai/budget-advisor

Una verdadera prochección estatistica — nunca no una suposición chenerativa — d'as probabilidaz de mantener un ran dau a 30/90/365 días.

1 creditos
POST/v1/advertisers/{id}/ai/seo-audit

Analizar o propio sitio web externo de l'anunciant y sucherir milloras SEO concretas.

2 creditos

Exemplo — chenerar conteniu publicitario

A mesma categoría y descripción d'o negocio tamién alimentan o chenerador d'imachens de debaixo.

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
}

Chenerar una imachen a chuego pa o mesmo anuncio:

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
}

Gacheta

Fica una unidat publicitaria prefabricada en o tuyo propio puesto web — sin necesidat de construcción, sin iframe. O script dibuja-se directament en a pachina adintro d'un Shadow DOM isolau, de traza que os suyos estilos nunca no s'escapan enta o tuyo puesto web, y os estilos d'o tuyo puesto web nunca no s'escapan enta él.

Adhibe-lo a la tuya pachina

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

Por defecto, isto amuestra o ranking publico completo d'a categoría — toz os anunciants d'a plataforma, no nomás os que has trayiu. Pa amostrar nomás os anuncios d'os anunciants que has creyau a traviés d'o modo Connect (os que cheneran a tuya parte), adhibe data-partner con o tuyo ID de socio (lo trobarás en a pachina de Desembolicadors d'o tuyo propio panel de control):

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

Si os suyos anunciants s'estienden por cuantas categorías, quite de tot "data-category" — con "data-partner" solo, o widget amuestra toz os suyos anuncios de todas as categorías en una sola ret, en cuenta de precisar un bloque de widget por categoría:

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

Quiers una unidat en estilo pie de pachina chunto a la tuya de dentro d'o conteniu, amostrando cada una anuncios diferents? Adhibe un segundo bloque de widgets con data-layout="compact" (un solo anuncio, plegable en una pastilla chicota) y data-offset configurau a o numero d'anuncios que o tuyo primer widget ya amuestra:

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

Atributos

data-categoryID de categoría pa amostrar. Requisito — de no estar que s'haiga configurau data-partner, en ixe caso, omitir-lo amuestra os anuncios d'ixe socio en todas as categorías.
data-geoAlcance cheografico: local, rechional u global. Por defecto, global.
data-countNumero d'anuncios a amostrar. Por defecto, 4.
data-columnsNumero de columnas d'a ret. Por defecto 2.
data-layoutgrid, list, u compact. Por defecto ye grid. compact amuestra un solo anuncio (data-count s'inora) con un botón pa plegar-lo en una pastilla chicota y tornar-lo a amostrar — una unidat d'estilo pie de pachina, nunca no posicionada fixa por o mesmo script; tu colocas y estilizas o contenedor div como quieras en a tuya propia pachina.
data-offsetNumero d'anuncios prencipals a saltar. Por defecto, 0. Permite que un segundo widget en a mesma pachina (p. ex. un de compacto en o piet de pachina y un d'una ret mas entalto) amuestre anuncios diferents en cuenta de repetir o mesmo dos vegadas — pasa o numero d'anuncios que l'atro widget ya amuestra.
data-partnerA tuya ID de socio (la trobarás en a pachina de Desembolicadors d'o tuyo propio panel de control). Opcional — sin ella, o widget amuestra o ranking publico completo d'ixa categoría, con toz os anunciants d'a plataforma. Con ella, nomás os anuncios d'os anunciants que has trayiu a traviés d'o modo Connect — os que realment cheneran a tuya parte.

Reparto d'ingresos

Cómo una comisión de derivación d'un socio realment le plega — o porcentache, o mecanismo de pago y as precondicions.

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
}

No ye un numero fixo

O porcentache d'a comisión se configura dende o nuestro costau y puede cambiar — leiga-lo siempre en directo dende iste endpoint en cuenta d'establir una valor fixa.

Totalment automatico

No i hai un punto final de retirada. Un treball programau chenera ganancias pagaderas, las agrupa por anunciant y las paga automaticament una vegada que se cumplen todas as condicions que se indican a continuación.

Condicions de pago

  • Os ingresos totals pagaders de l'anunciant plegan a la cantidat minima de pago.
  • S'ha configurau una cartera de pago en criptomoneda en a suya cuenta.
  • O suyo estau KYC ye verificau.

Exemplo: leyer os beneficios acumulaus

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
}

Nivels de pre (en directo)

Leye en directo dende iste punto de fin — nunca no codifiques istos valors de traza fixa, pueden cambiar d'a nuestra parte. Crea un selector de nivels pa os tuyos propios usuarios en cuenta d'un campo de cantidat libre: cada pre amostrau ye ya a cantidat exacta que cal ninviar en creyar o pago, y os beneficios desbloquiaus que s'amuestran aquí le dicen a os usuarios exactament qué les ofreixe ixe pre, pa que esliyan un pre que entiendan en cuenta d'endevinar un numero.

NivelPreDesbloqueya
Bronze$50.00

Basic visibility

Silver$300.00

Clickable link unlocked

Vinclo clicable
Gold$500.00

Animation unlocked

Vinclo clicableAnimación
Platinum$1,000.00

Enhanced exposure

Vinclo clicableAnimación
Diamond$2,500.00

Premium placement

Vinclo clicableAnimación
Elite$5,000.00

Top-tier visibility

Vinclo clicableAnimación
Legendary$10,000.00

Maximum visibility & branding

Vinclo clicableAnimación

Límites de velocidat

As solicituz son limitadas por clau, por minuto. Cada respuesta autenticada transporta as cabeceras X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset; superar o limite retorna 429 Too Many Requests con una cabecera Retry-After.

Lista de permisión d'IP

Opcional, por socio. Dica que adhibas una dentrada, as tuyas claus acceptan solicituz dende cualsiquier IP — a primera dentrada cambia todas as claus d'ixe socio ta que nomás accepten d'a lista blanca.

Ganchos web

Cada webhook ye sinyau con HMAC-SHA256 fendo servir un secreto emitiu nomás que una vegada, en o momento d'a suya creyación — comprebe a sinyatura antes de confiar en a carga útil. Os eventos se entregan nomás que a o socio que ye o propietario de l'anunciant relacionau.

payment.succeededUn pago ye confirmau.
payment.refundedS'executa un reembolso.
ad.activatedUn anuncio s'activa, automaticament u dimpués d'a revisión de l'administrador.
invoice.issuedS'emite una factura.
referral.payout.completedUna comisión de derivación plega a estar pagada.
referral.payout.failedUn lote de pagos de refiridos falla en o proveyedor — os ingresos tornan a o saldo a pagar y se tornan a prebar.
rank.changedO ran d'un anuncio cambia —incluindo cuan o pago d'un atro anunciant lo causa.
ad.expiring_soon30, 7, u 1 día(s) antes de que un anuncio caduque.
partner_ad_revenue.payout.completedUn pago de reparto d'ingresos publicitarios aconsigue o estatus de pagau.
partner_ad_revenue.payout.failedUn lote de pagos de reparto d'ingresos publicitarios falla en o proveedor — as participacions tornan a la cuenta de pagar y se tornan a prebar.

Conchuntos de desembolique de software

Os SDKs oficials de JavaScript/TypeScript y Python, cheneraus dende ista mesma especificación de l'API, son previstos pero encara no s'han publicau — dica alavez, clamatz directament l'API HTTP.

Inicio rapido

Encara no i hai SDK — istos claman directament a l'API HTTP y funcionan hue en qualsequier luengache.

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