Saltar al contenido principal
7 min de lectura

Widgets Incrustables

Zenovay proporciona widgets listos para usar que puedes incrustar en tu sitio web para mostrar conteos de visitantes en vivo, líneas de tiempo de actividad y desglose geográfico. No se requiere autenticación; simplemente usa tu código de seguimiento.

Tipos de Widgets

WidgetDescripciónCaso de Uso
RealtimeConteo de visitantes en vivoMostrar visitantes actuales en línea
PreviewLínea de tiempo de actividad de 24 horasMostrar actividad de visitantes durante el último día
RecentDesglose de 30 minutos por paísMostrar ubicaciones recientes de visitantes

URL Base

Todos los endpoints de widgets están disponibles en:

https://api.zenovay.com/widgets/{trackingCode}

Reemplaza {trackingCode} con el código de seguimiento de tu sitio web (por ejemplo, ZV_XXXXXXXXXXX).

Widget Realtime

Muestra el número actual de visitantes en vivo en tu sitio web:

GET/widgets/:trackingCode/realtime

Widget de conteo de visitantes en vivo

Parámetros de Consulta:

ParámetroTipoPredeterminadoDescripción
mainTextSizestring48pxTamaño de fuente para el conteo de visitantes
primaryColorstring#e78468Color de acento primario (hex)
themestringsystemTema: light, dark o system
hideBrandingbooleanfalseOcultar pie de página "Con tecnología de Zenovay" (Empresa)
Incrustar con iframeHTML
<iframe
src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/realtime?theme=dark&primaryColor=%236366f1"
width="200"
height="120"
frameborder="0"
style="border-radius: 12px; overflow: hidden;"
></iframe>

Vista Previa del Widget:

El widget realtime muestra:

  • Número grande de conteo de visitantes
  • Etiqueta "visitantes en línea ahora"
  • Indicador de pulso animado
  • Pie de página de marca opcional

Widget Preview (Línea de Tiempo de 24 Horas)

Muestra la actividad de visitantes durante las últimas 24 horas como un gráfico de línea de tiempo:

GET/widgets/:trackingCode/preview

Widget de línea de tiempo de actividad de 24 horas

Parámetros de Consulta:

ParámetroTipoPredeterminadoDescripción
mainTextSizestring36pxTamaño de fuente para el conteo total
primaryColorstring#e78468Color de línea del gráfico (hex)
secondaryColorstring#8dcdffColor de relleno del gráfico (hex)
themestringsystemTema: light, dark o system
Incrustar con iframeHTML
<iframe
src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/preview?theme=light&primaryColor=%236366f1"
width="400"
height="200"
frameborder="0"
style="border-radius: 12px; overflow: hidden;"
></iframe>

Vista Previa del Widget:

El widget preview muestra:

  • Total de visitantes en las últimas 24 horas
  • Gráfico de desglose por hora
  • Indicador de hora pico
  • Flecha de tendencia (arriba/abajo vs. día anterior)

Widget Recent (Desglose por País)

Muestra la actividad de visitantes de los últimos 30 minutos desglosada por país:

GET/widgets/:trackingCode/recent

Desglose de 30 minutos por país

Parámetros de Consulta:

ParámetroTipoPredeterminadoDescripción
mainTextSizestring32pxTamaño de fuente para el conteo
primaryColorstring#e78468Color de acento primario (hex)
themestringsystemTema: light, dark o system
hideBrandingbooleanfalseOcultar pie de página de marca (Empresa)
Incrustar con iframeHTML
<iframe
src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/recent?theme=dark"
width="300"
height="250"
frameborder="0"
style="border-radius: 12px; overflow: hidden;"
></iframe>

Vista Previa del Widget:

El widget recent muestra:

  • Conteo de visitantes de los últimos 30 minutos
  • Países principales con banderas
  • Desglose porcentual por país
  • Actualización en vivo cada 30 segundos

Ejemplos de Estilo

Tema Oscuro con Colores Personalizados

Widget Tema OscuroHTML
<iframe
src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/realtime?theme=dark&primaryColor=%2310b981&mainTextSize=64px"
width="220"
height="140"
frameborder="0"
style="border-radius: 16px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);"
></iframe>

Tema Claro para Paneles

Widget de PanelHTML
<div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;">
<!-- Visitantes en Vivo -->
<iframe
  src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/realtime?theme=light"
  width="100%"
  height="120"
  frameborder="0"
></iframe>

<!-- Línea de Tiempo 24h -->
<iframe
  src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/preview?theme=light"
  width="100%"
  height="120"
  frameborder="0"
></iframe>

<!-- Países -->
<iframe
  src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/recent?theme=light"
  width="100%"
  height="120"
  frameborder="0"
></iframe>
</div>

Carga Dinámica con JavaScript

Carga widgets dinámicamente con JavaScript:

Carga Dinámica de WidgetsJavaScript
function loadZenovayWidget(trackingCode, type, options = {}) {
const defaults = {
  theme: 'system',
  primaryColor: '#e78468',
  mainTextSize: '48px'
};

const settings = { ...defaults, ...options };
const params = new URLSearchParams(settings).toString();

const iframe = document.createElement('iframe');
iframe.src = `https://api.zenovay.com/widgets/${trackingCode}/${type}?${params}`;
iframe.width = options.width || '200';
iframe.height = options.height || '120';
iframe.frameBorder = '0';
iframe.style.borderRadius = '12px';

return iframe;
}

// Uso
const widget = loadZenovayWidget('ZV_XXXXXXXXXXX', 'realtime', {
theme: 'dark',
primaryColor: '#10b981',
width: '250',
height: '150'
});

document.getElementById('widget-container').appendChild(widget);

Componente React

Incrustra widgets en aplicaciones React:

Componente de Widget ReactTSX
interface ZenovayWidgetProps {
trackingCode: string;
type: 'realtime' | 'preview' | 'recent';
theme?: 'light' | 'dark' | 'system';
primaryColor?: string;
width?: number;
height?: number;
}

function ZenovayWidget({
trackingCode,
type,
theme = 'system',
primaryColor = '#e78468',
width = 200,
height = 120
}: ZenovayWidgetProps) {
const params = new URLSearchParams({
  theme,
  primaryColor
}).toString();

return (
  <iframe
    src={`https://api.zenovay.com/widgets/${trackingCode}/${type}?${params}`}
    width={width}
    height={height}
    frameBorder="0"
    style={{ borderRadius: '12px', overflow: 'hidden' }}
    title={`Zenovay ${type} widget`}
  />
);
}

// Uso
<ZenovayWidget
trackingCode="ZV_XXXXXXXXXXX"
type="realtime"
theme="dark"
primaryColor="#10b981"
width={250}
height={150}
/>

Componente Vue

Incrustra widgets en aplicaciones Vue:

Componente de Widget VueVUE
<template>
<iframe
  :src="widgetUrl"
  :width="width"
  :height="height"
  frameborder="0"
  :style="{ borderRadius: '12px', overflow: 'hidden' }"
  :title="`Zenovay ${type} widget`"
/>
</template>

<script setup lang="ts">
import { computed } from 'vue';

interface Props {
trackingCode: string;
type: 'realtime' | 'preview' | 'recent';
theme?: 'light' | 'dark' | 'system';
primaryColor?: string;
width?: number;
height?: number;
}

const props = withDefaults(defineProps<Props>(), {
theme: 'system',
primaryColor: '#e78468',
width: 200,
height: 120
});

const widgetUrl = computed(() => {
const params = new URLSearchParams({
  theme: props.theme,
  primaryColor: props.primaryColor
}).toString();

return `https://api.zenovay.com/widgets/${props.trackingCode}/${props.type}?${params}`;
});
</script>

Etiqueta Blanca (Empresa)

Los clientes empresariales pueden eliminar la marca Zenovay:

Widget de Etiqueta BlancaHTML
<iframe
src="https://api.zenovay.com/widgets/ZV_XXXXXXXXXXX/realtime?hideBranding=true&primaryColor=%23your-brand-color"
width="200"
height="100"
frameborder="0"
></iframe>

El parámetro hideBranding solo está disponible en el plan Empresa. Contacta al equipo de Zenovay para activar widgets de etiqueta blanca en tu cuenta.

Almacenamiento en Caché y Rendimiento

Los widgets están optimizados para el rendimiento:

  • CDN Almacenado en Caché: El HTML del widget se almacena en caché en el perímetro para una carga rápida
  • Actualizaciones de Datos: Los datos en vivo se actualizan automáticamente cada 5-30 segundos
  • Ligero: HTML independiente sin dependencias externas
  • Receptivo: Los widgets se adaptan al tamaño del contenedor

Consideraciones de Seguridad

Los widgets solo muestran datos de analíticas de solo lectura. Tu código de seguimiento está diseñado para ser público y no puede usarse para modificar o acceder a datos sensibles.

  • Los widgets usan tu código de seguimiento público, no tu clave API
  • No se requiere autenticación para mostrar widgets
  • Los datos mostrados se limitan a estadísticas agregadas
  • No se expone información de identificación personal

Pasos Siguientes

¿Fue útil esta página?