Mejores prácticas
Directrices para crear integraciones confiables con DiffHook.
Utilice selectores CSS para reducir el ruido
Las páginas cambian constantemente: los banners de cookies se actualizan, los anuncios se actualizan y las marcas de tiempo marcan. Adapte sus monitores al contenido que realmente le interesa:
{
"css_selector": "#pricing-table"
}
Esto reduce los falsos positivos y hace que sus diferencias sean más significativas.
Utilice el renderizado JS solo cuando sea necesario
La representación del navegador sin cabeza es más lenta y requiere más recursos. Habilítelo solo cuando la página de destino realmente requiera JavaScript para mostrar contenido significativo.
La mayoría de las fuentes de noticias, sitios de documentación y páginas de precios se generan en el servidor y no lo necesitan.
Responda a los webhooks rápidamente
Su punto final debería devolver 200 OK dentro de 10 segundos. Los tiempos de espera y las respuestas que no son 2xx activan reintentos automáticos con retroceso exponencial en minutos (consulte Recibir webhooks).
Procese las cargas útiles de forma asincrónica: envíelas a una cola, guárdelas en una base de datos y luego devuelva 200 inmediatamente.
Idempotencia
Los webhooks se pueden entregar más de una vez en escenarios de falla poco comunes. Utilice la combinación monitor_id + triggered_at como clave de deduplicación:
const eventKey = `${body.monitor_id}:${body.triggered_at}`
if (await redis.get(eventKey)) return // Already processed
await redis.set(eventKey, '1', 'EX', 86400)
Elija el intervalo correcto
Una buena regla general:
| Caso de uso | Intervalo recomendado |
|---|---|
| Ventas flash, alertas de precios | 5 a 15 minutos |
| Seguimiento de la competencia | 60 minutos |
| Presentaciones reglamentarias | 360 minutos (6h) |
| Bolsas de trabajo, páginas de empleo | 1440 minutos (diario) |
Verificar firmas
Verifique siempre el encabezado X-Signature antes de procesar cargas útiles de webhook. Esto protege contra solicitudes falsificadas. Consulte la guía Verificar firmas para ver ejemplos de implementación.