Teknisk dokumentation

Integrationsmanual för tillgänglighetswidgeten och referens för domänhanterings-API:t.

Widget-integration

Automatisk laddning (Plug & Play)

Grundläggande implementering utan ytterligare konfiguration. Widgeten laddas omedelbart med standardvärden.

Du behöver ingen separat CSS-länk: skriptet infogar stilmallen automatiskt (samma bassökväg som `.js`). Du kan valfritt behålla en `` i `` för parallell nedladdning.

<script defer src="https://api.addaw.org/addaw-wba11y.min.js"></script>

Initialisering via API (Rekommenderat)

Möjliggör definition av fördröjningar och anpassade visuella konfigurationer från JavaScript.

<script defer src="https://api.addaw.org/addaw-wba11y.min.js"></script>
<script defer>
Addaw.init({
  delay: 5000,
  position: 'left',
  dark_mode: '1',
  lang: 'es',
  logo_url: 'https://yoursite.com/logo.png',
  logo_link: 'https://yoursite.com'
});
</script>

Initialiseringsparametrar

Initialization parameters reference
Parameter Typ Standard Beskrivning
delay Number 0 Tid i ms för fördröjd laddning.
position String 'right' Knappens position: left eller right.
dark_mode String / Bool '0' 1 för att starta i mörkt läge (om inget minne finns).
lang String 'auto' ISO-språkkod (es, en, fr...).
autoInit Boolean true Om false, väntar widgeten på att anropas manuellt.
logo_url URL ADDAW logo Anpassad bild för widgetens sidfot.
logo_link URL https://addaw.org/es Klickmål för den anpassade logotypen.
Nota: existen endpoints internos de panel como PanelDominioAlta, PanelDominioBaja o PanelDominioRenovacion que usan sesion web del panel. Para integraciones de terceros debes usar los endpoints ApiEmpleado* documentados aqui.
Importante: no existe un endpoint separado para position, dark_mode, lang, autoInit, etc. Todas esas opciones se envian en un unico endpoint: ApiEmpleadoPersonalizarDominio.

Kontrollmetoder (offentligt API)

Använd dessa kommandon från konsolen eller dina skript för att interagera med widgeten efter laddning.

Addaw.initialized — Kontrollerar om widgeten är aktiv.

if (Addaw.initialized) {
  console.log('Widget is active');
}

Addaw.destroy() — Tar bort widgeten helt från webbplatsen.

Addaw.destroy();

Addaw.init({...}) — Initierar om med ny konfiguration.

Addaw.init({
  position: 'left',
  dark_mode: '1',
  lang: 'en'
});

Konfigurationshierarki

Widgeten följer en strikt prioritetslogik för att tillämpa inställningar:

1.º Persistens Webbläsarminne (LocalStorage). Om användaren redan har använt den, har deras val företräde.
2.º Manuellt API Det som utvecklaren definierar i Addaw.init().
3.º URL / Default Parametrar från skriptets src eller fabriksvärden.

Avancerad manuell kontroll

För applikationer som kräver start på begäran (till exempel efter att ha tryckt på en specifik knapp):

<script>
window.AddawConfig = { autoInit: false };
</script>
<script defer src="https://api.addaw.org/addaw-wba11y.min.js"></script>
<script defer>
document.addEventListener('DOMContentLoaded', function() {
  Addaw.init({
    position: 'right',
    lang: 'es'
  });
});
</script>

Domänhanterings-API

REST-API som gör det möjligt för anställda att hantera domäner kopplade till deras konto och anpassa widgetens utseende och beteende (färgpaletter och parametrar motsvarande Addaw.init).

Endpoints disponibles (API empleado)

Employee API endpoints
Metodo Endpoint Descripcion
POST /webService/ApiEmpleadoLogin Autentica y devuelve access_token tipo Bearer.
GET /webService/ApiEmpleadoPing Comprueba validez del token y estado operativo.
POST /webService/ApiEmpleadoDominioAlta Alta de dominio (idempotente, con control de cuota/plan activo).
POST /webService/ApiEmpleadoDominioBaja Baja logica del dominio (marca activo=0).
GET /webService/ApiEmpleadoMisDominios Lista dominios activos con su configuracion efectiva.
GET /webService/ApiEmpleadoColoresDisponibles Lista paletas de color disponibles.
POST /webService/ApiEmpleadoPersonalizarDominio Guarda color y opciones del widget por dominio.

Quickstart backend (flujo recomendado)

  1. Autentica con ApiEmpleadoLogin y guarda access_token.
  2. Da de alta el dominio con ApiEmpleadoDominioAlta.
  3. Consulta paletas con ApiEmpleadoColoresDisponibles.
  4. Aplica configuracion con ApiEmpleadoPersonalizarDominio.
  5. Valida el resultado con ApiEmpleadoMisDominios.
# Quickstart con curl (requiere jq)
TOKEN=$(curl -s -X POST "https://panel.addaw.org/webService/ApiEmpleadoLogin" \
  -H "Content-Type: application/json" \
  -d '{"correo":"tu_correo@ejemplo.com","pass":"tu_password"}' | jq -r '.access_token')

curl -s "https://panel.addaw.org/webService/ApiEmpleadoMisDominios" \
  -H "Authorization: Bearer ${TOKEN}"

Autentisering

Alla förfrågningar (utom login) kräver en Bearer-token i Authorization-headern.

POSThttps://panel.addaw.org/webService/ApiEmpleadoLogin
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoLogin');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'correo' => 'tu_correo@ejemplo.com',
    'pass'   => 'tu_password',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

$token = $response['access_token'];

Ping autenticado

Endpoint recomendado para verificar token y conectividad antes de operaciones de dominio.

GEThttps://panel.addaw.org/webService/ApiEmpleadoPing
curl -X GET "https://panel.addaw.org/webService/ApiEmpleadoPing" \
  -H "Authorization: Bearer $TOKEN"

Respuesta esperada: ok, datos del empleado y server_time.

Registrera en domän

Registrerar en ny domän kopplad till ditt konto. Operationen är idempotent: om domänen redan finns, dupliceras den inte.

POSThttps://panel.addaw.org/webService/ApiEmpleadoDominioAlta
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoDominioAlta');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['dominio' => 'www.example.com']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Avaktivera en domän

Avaktiverar en domän. Den raderas inte, den markeras som inaktiv.

POSThttps://panel.addaw.org/webService/ApiEmpleadoDominioBaja
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoDominioBaja');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['dominio' => 'www.example.com']));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Hämta mina domäner

Returnerar listan över aktiva domäner kopplade till ditt konto.

GEThttps://panel.addaw.org/webService/ApiEmpleadoMisDominios
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoMisDominios');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Lista tillgängliga färger

Returnerar namn och ID:n för tillgängliga färgpaletter för att anpassa widgeten.

GEThttps://panel.addaw.org/webService/ApiEmpleadoColoresDisponibles
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoColoresDisponibles');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

Anpassa en domän

Sparar widgetinställningar för en domän: färgpalett och valfritt samma parametrar som Addaw.init (språk, mörkt läge, position, autostart, logotyper, fördröjning och fokus i modaler). Första anropet måste innehålla palett-id `color`; senare kan det utelämnas för att behålla sparade färger eller endast vissa fält uppdateras. Skicka nyckeln som `null` för att återställa ett sparat värde.

JSON-bodyparametrar

Utöver `dominio` kan du inkludera följande fält. Namnen motsvarar widget-API:et (`autoInit` och `focusOnContent`; `auto_init` och `focus_on_content` accepteras också).

JSON body parameters for domain customization
Parameter Typ Beskrivning
color integer Palett-id från listan över tillgängliga färger. Krävs första gången domänen konfigureras; utelämnas det senare behålls sparade färger.
lang string | null Tvåbokstavskod ISO 639-1 (t.ex. `es`) eller `null` för standard.
dark_mode boolean | null `true` / `false`, `1` / `0` eller `null` (inledande mörkt läge; respekterar sparade webbläsarinställningar).
position string | null `left`, `right` eller `null`.
autoInit / auto_init boolean | null `true` / `false`, `1` / `0` eller `null` (autostart när skriptet laddas).
logo_url string | null URL för sidfotslogo (http, https, absolut sökväg eller relativ `./`) eller `null`.
logo_link string | null Mål-URL vid klick på logotyp eller `null`.
delay integer | null Heltal millisekunder mellan 0 och 86400000 för att fördröja start, eller `null`.
focusOnContent / focus_on_content boolean | null `true` / `false`, `1` / `0` eller `null` (fokus på innehåll i interna modaler).

När `addaw-wba11y.min.js` levereras via CDN hämtas domänen från Referer-headers. Om det finns sparade alternativ för domänen föregås skriptet av `window.AddawConfig = { ... };` så att de gäller före autostart (användaren kan fortfarande ha företräde via lokal lagring — se hierarkin i widgetavsnittet).

POSThttps://panel.addaw.org/webService/ApiEmpleadoPersonalizarDominio
$ch = curl_init('https://panel.addaw.org/webService/ApiEmpleadoPersonalizarDominio');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([
    'dominio' => 'example.com',
    'color'   => 2,
    'lang'    => 'es',
    'position' => 'left',
]));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);
// Ejemplo JavaScript con fetch
await fetch('https://panel.addaw.org/webService/ApiEmpleadoPersonalizarDominio', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    dominio: 'example.com',
    color: 2,
    lang: 'es',
    position: 'left',
    autoInit: true,
    dark_mode: false,
    logo_url: 'https://example.com/logo.svg',
    logo_link: 'https://example.com',
    delay: 1200,
    focusOnContent: true
  })
});

Errores comunes y buenas practicas

En peticiones protegidas, la cabecera Authorization: Bearer ... es obligatoria.
  • Si quieres limpiar un valor almacenado para un dominio, envia esa clave con null.
  • Usa siempre HTTPS y valida la expiracion del token en tu backend.
  • La alta de dominio es idempotente: si ya existe, no se duplica.
  • Al servir el widget por CDN, verifica que el dominio de Referer coincide con el esperado.

Endpoint de estadisticas del widget

Ademas de la API de dominios, el widget envia agregados diarios de uso a:

POSThttps://api.addaw.org/webService/widgetInteractionStats

Este endpoint acepta JSON con events y suma contadores por dominio/dia/accion. Solo procesa claves permitidas (por ejemplo panel_open, tool_*, profile_*, blind_*).

await fetch('https://api.addaw.org/webService/widgetInteractionStats', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    events: {
      panel_open: 1,
      panel_close: 1,
      tool_zoom: 3,
      profile_dyslexia: 1
    }
  })
});
Este endpoint usa Origin o Referer para detectar dominio. Si no hay dominio valido, responde 204 sin persistir datos.

Como obtener estadisticas por dominio

En la API publica actual no existe un endpoint ApiEmpleado* especifico para leer series historicas de estadisticas por dominio con Bearer. La consulta por dominio se resuelve hoy desde el panel interno.

1) Vista de analitica por dominio (panel)

GET/Widget/Dominios/{domainNormalized}

Esta ruta requiere sesion de panel y muestra metricas de cargas e interacciones del dominio.

  • desde: fecha inicio en formato YYYY-MM-DD.
  • hasta: fecha fin en formato YYYY-MM-DD.
  • Si no se envian, el panel usa por defecto los ultimos 30 dias.
  • Rango maximo permitido por el backend: 90 dias.
# Ejemplo (navegador con sesion iniciada en panel)
https://panel.addaw.org/Widget/Dominios/example.com?desde=2026-04-01&hasta=2026-04-20

2) Metricas calculadas en esa vista

Cargas del script Serie diaria combinando widget_domain_loads_daily (dias cerrados) y widget_domain_loads (dia en curso).
Interacciones del panel Serie diaria desde widget_interaction_daily con filtros por action_key.
Top acciones Ranking por accion (excluye panel_open y panel_close en el top principal).

3) Consulta directa en BBDD (entornos internos)

-- Cargas diarias de un dominio
SELECT stat_date AS dia, SUM(request_count) AS total
FROM widget_domain_loads_daily
WHERE domain_normalized = 'example.com'
  AND stat_date BETWEEN '2026-04-01' AND '2026-04-20'
GROUP BY stat_date
ORDER BY stat_date;

-- Interacciones diarias de un dominio
SELECT stat_date AS dia, SUM(event_count) AS total
FROM widget_interaction_daily
WHERE domain_normalized = 'example.com'
  AND stat_date BETWEEN '2026-04-01' AND '2026-04-20'
GROUP BY stat_date
ORDER BY stat_date;

-- Top acciones por dominio
SELECT action_key, SUM(event_count) AS total
FROM widget_interaction_daily
WHERE domain_normalized = 'example.com'
  AND stat_date BETWEEN '2026-04-01' AND '2026-04-20'
GROUP BY action_key
ORDER BY total DESC
LIMIT 15;
Si necesitas exponer estas metricas por API publica para integraciones externas, lo recomendable es crear un endpoint nuevo de lectura (por ejemplo ApiEmpleadoEstadisticasDominio) con autenticacion Bearer y filtros de rango.

Börja förbättra er webbplatstillgänglighet

Aktivera lösningen eller be om expertstöd för att gå vidare tryggt.

Kontakt

Berätta vad ni behöver; vi återkommer så snart vi kan.

Logga in

Logga in med e-post och lösenord eller Google. Ni omdirigeras till panelen.

Eller fortsätt med Google

Inget konto än?

Crea tu cuenta

Regístrate para gestionar el widget en tus dominios.

Accede con tu cuenta de Google

¿Ya tienes cuenta?