Referencia del SDK
Un script, cinco llamadas. Sin cookies ni identificadores, y un anuncio fallido nunca bloquea tu página.
Carga
Pon un contenedor donde va el anuncio y carga el script una vez. El id del contenedor es adjoin- más el id del placement.
<!-- one script per page; data-placement renders that slot automatically -->
<div id="adjoin-plc_ab12" data-format="card"></div>
<script async src="https://cdn.adjoin.dev/v1.js" data-placement="plc_ab12"></script>- data-placement
- Renderiza este placement en cuanto la página está lista.
- data-format
- En el contenedor: banner, card, inline_native, sidebar o newsletter. Por defecto card.
- data-tenant
- Slug del partner, si llegaste a través de uno (ver Integración de partners).
- data-analytics="off"
- Desactiva la analítica gratuita de páginas vistas.
Tamaños: banner 728×90 · card 320×250 · inline_native 600×120 · sidebar 300×250 · newsletter 600×200
adjoin.render(options)
Renderiza un placement en su contenedor. La altura se reserva antes, así que no hay saltos de diseño, y el anuncio vive en un Shadow DOM para que tu CSS y el nuestro nunca se mezclen. Si nada encaja, el hueco se pliega a altura cero.
adjoin.render({
placement: 'plc_cd34', // required — the id from your dashboard
format: 'sidebar', // banner | card | inline_native | sidebar | newsletter
onEmpty: () => showMyOwnPromo() // optional — called when the slot collapses
});adjoin.trigger(moment, options?)
Marca un momento en tu app — signup_complete, empty_state, quota_hit, etc. Se registra aunque no haya placement, así tu embudo sigue contando si apagas los anuncios.
// record a moment; with a placement it also renders an ad there
adjoin.trigger('signup_complete', { placement: 'plc_ab12' });adjoin.pageview(path?)
Analítica gratuita. Solo se envían los dos primeros segmentos de la ruta, y los ids se sustituyen por :id.
// sent automatically on load; call it yourself on client-side route changes
adjoin.pageview('/pricing');
<!-- or turn analytics off -->
<script async src="https://cdn.adjoin.dev/v1.js" data-analytics="off"></script>adjoin.segment(label, on?)
Etiquetas de audiencia. Marca la sesión actual con una palabra que la describa — plan, rol, etapa. Los anunciantes pueden dirigirse a una etiqueta o excluirla, así que el inventario etiquetado rinde más. La etiqueta vive solo en esta pestaña (sessionStorage) y se envía solo con las solicitudes de anuncios y páginas vistas de este sitio; nunca sigue al visitante a otro sitio. Solo se guardan totales de páginas vistas por etiqueta. Formato: minúsculas, dígitos, _ : -, hasta 32 caracteres, sin secuencias de 6+ dígitos. Hasta 5 por sesión. Una etiqueta se puede segmentar cuando alcanza 100 páginas vistas en la red en 7 días.
// label this visitor's session — plain words, never ids or emails
adjoin.segment('plan:free');
adjoin.segment('role:developer');
adjoin.segment('plan:free', false); // remove one
adjoin.segment(null); // remove all
// suggested labels: plan:free · plan:paid · plan:trial · role:developer · role:designer
// role:founder · stage:onboarding · stage:active · intent:upgradeadjoin.convert(valueUsd?, orderId?)
Para anunciantes con CPA o afiliación. Llámalo en tu propio sitio tras una compra. El token del clic se guarda solo en esta pestaña (sessionStorage), así enlaza conversiones de la misma visita. Pasa un id de pedido: el mismo pedido nunca se cobra dos veces y puedes reembolsarlo con ese id. Para conversiones días después, usa servidor a servidor (API REST).
// on your own site, after checkout
adjoin.convert(29.00, 'order_1234'); // value in USD, your order idPrivacidad
Sin cookies, sin localStorage, sin fingerprinting. Los visitantes se cuentan con un hash que cambia cada día, así que no se puede vincular a la misma persona de un día a otro.
Preguntas: [email protected]