← Volver al hub para desarrolladores

Integre el widget de calidad del agua en su sitio de noticias (configuración en 5 minutos)

Añada un informe interactivo de calidad del agua de ZipCheckup a cualquier sitio web con una sola línea de código

El código del widget

Añada una tarjeta de puntuación de ZipCheckup a cualquier página web con una sola etiqueta iframe. Sin JavaScript, sin clave de API, sin paso de compilación.

<iframe
  src="https://zipcheckup.com/embed/90210"
  width="400"
  height="300"
  frameborder="0"
  title="ZipCheckup Home Safety Score for 90210"
></iframe>

El valor 90210 es un ejemplo; cualquier código postal válido de EE. UU. funciona en su lugar. El widget muestra una tarjeta compacta con la calificación general, las puntuaciones por componente y los indicadores clave de riesgo.

Opciones de personalización

Controle la apariencia del widget mediante parámetros de URL:

Parámetro Valores Predeterminado Descripción
theme light, dark light Esquema de color
components all, water, lead, radon, flood all Qué puntuaciones de riesgo mostrar
showGrade true, false true Mostrar la insignia con la letra de la calificación
compact true, false false Diseño minimalista para espacios reducidos

Ejemplos

Tema oscuro, solo calidad del agua:

<iframe
  src="https://zipcheckup.com/embed/90210?theme=dark&components=water"
  width="400"
  height="200"
  frameborder="0"
  title="Water Quality Score for 90210"
></iframe>

Modo compacto para barras laterales:

<iframe
  src="https://zipcheckup.com/embed/90210?compact=true"
  width="300"
  height="180"
  frameborder="0"
  title="ZipCheckup Score for 90210"
></iframe>

Contenedor responsivo para el widget

El iframe por sí mismo no se redimensiona automáticamente. El siguiente contenedor CSS hace que el widget sea responsivo:

<style>
  .zipcheckup-embed {
    position: relative;
    width: 100%;
    max-width: 500px;
    padding-bottom: 75%; /* Relación de aspecto 4:3 */
    height: 0;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
  }
  .zipcheckup-embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
  }
</style>

<div class="zipcheckup-embed">
  <iframe
    src="https://zipcheckup.com/embed/90210"
    title="ZipCheckup Home Safety Score for 90210"
    loading="lazy"
  ></iframe>
</div>

Este contenedor:

  • Mantiene una relación de aspecto consistente en cualquier tamaño de pantalla
  • Añade esquinas redondeadas y una sombra sutil
  • Usa loading="lazy" para evitar bloquear la carga de la página
  • Limita el ancho máximo a 500 px (ajústelo según su diseño)

Instrucciones por plataforma

WordPress

Opción A: Editor de bloques (Gutenberg)

  1. Abra el editor de la entrada o página
  2. Añada un bloque HTML personalizado (haga clic en + → busque "HTML personalizado")
  3. Pegue el código del iframe o el contenedor responsivo
  4. Previsualice la entrada para confirmar que el widget se muestra correctamente

Opción B: Editor clásico

  1. Cambie a la pestaña Texto (no Visual)
  2. Pegue el código del iframe donde quiera que aparezca el widget
  3. Vuelva a Visual para ver un marcador de posición y luego previsualice la página

Opción C: Área de widgets (barra lateral / pie de página)

  1. Vaya a Apariencia → Widgets
  2. Añada un widget de HTML personalizado a su barra lateral
  3. Pegue el código compacto del widget:
<iframe
  src="https://zipcheckup.com/embed/90210?compact=true"
  width="100%"
  height="200"
  frameborder="0"
  title="Local Water Quality Score"
  loading="lazy"
></iframe>

Squarespace

  1. Abra el editor de la página
  2. Haga clic en + para añadir un bloque → elija Code
  3. Desactive la opción Display Source
  4. Pegue el código del contenedor responsivo (la versión con el bloque CSS <style> y el <div> envolvente)
  5. Haga clic en Apply y previsualice

Nota sobre Squarespace: Squarespace elimina algunos atributos. El enfoque del contenedor responsivo funciona mejor que un iframe simple porque el contenedor <div> se encarga del dimensionamiento.

HTML personalizado / sitios estáticos

Pegue el iframe o el contenedor responsivo directamente en su HTML. Si usa un generador de sitios estáticos (Hugo, Jekyll, 11ty, Astro), puede crear un shortcode reutilizable:

Ejemplo de shortcode para Hugo (layouts/shortcodes/zipcheckup.html):

{{ $zip := .Get 0 | default "90210" }}
<div class="zipcheckup-embed">
  <iframe
    src="https://zipcheckup.com/embed/{{ $zip }}"
    title="ZipCheckup Home Safety Score for {{ $zip }}"
    loading="lazy"
  ></iframe>
</div>

Uso en el contenido:

Vea la puntuación de calidad del agua para este vecindario:

{{</* zipcheckup "60614" */>}}

Buenas prácticas para sitios de noticias locales

Si va a integrar widgets de ZipCheckup en artículos de noticias, siga estas pautas para una mejor experiencia del lector:

1. La ubicación del widget cerca del párrafo relevante

No relegue el widget al final. Colóquelo justo después del párrafo que menciona el código postal o el vecindario, para que los lectores vean los datos en contexto.

2. Títulos descriptivos para el widget

El atributo title del iframe es importante para la accesibilidad (lectores de pantalla) y para el SEO. Incluya siempre el código postal:

title="Water Quality Score for Springfield, IL (62704)"

3. Añada contexto editorial

No deje que el widget hable por sí solo. Añada un pie de foto o una oración introductoria:

<figure>
  <div class="zipcheckup-embed">
    <iframe
      src="https://zipcheckup.com/embed/62704"
      title="Water Quality Score for Springfield, IL"
      loading="lazy"
    ></iframe>
  </div>
  <figcaption>
    La puntuación de calidad del agua de Springfield refleja 3 infracciones
    de la EPA en los últimos 5 años.
    <a href="https://zipcheckup.com/zip/62704/">Informe completo →</a>
  </figcaption>
</figure>

4. Enlace al informe completo

El widget muestra un resumen. Ofrezca siempre a los lectores un enlace a la página del informe completo de ZipCheckup para ver los detalles:

https://zipcheckup.com/zip/{ZIP_CODE}/

5. Varios códigos postales en un mismo artículo

Si su artículo compara varios vecindarios, integre cada widget en línea con un encabezado:

<h3>Downtown (60601)</h3>
<iframe src="https://zipcheckup.com/embed/60601" ...></iframe>

<h3>Lincoln Park (60614)</h3>
<iframe src="https://zipcheckup.com/embed/60614" ...></iframe>

<h3>South Side (60621)</h3>
<iframe src="https://zipcheckup.com/embed/60621" ...></iframe>

6. Consideraciones de rendimiento

  • El atributo loading="lazy" es apropiado para todos los widgets — especialmente si hay 3 o más en una sola página
  • El widget se carga de forma asíncrona y no bloquea el Largest Contentful Paint (LCP) de su página
  • Cada widget hace una llamada a la API desde el navegador del usuario. Si va a integrar 10 o más widgets en una sola página, una opción es usar la API directamente y renderizar sus propias tarjetas

Entrada dinámica del código postal

Para páginas interactivas donde los lectores pueden consultar su propio código postal, use un fragmento sencillo de JavaScript:

<div style="margin-bottom:16px;">
  <label for="zip-input" style="font-weight:600;">Ingrese su código postal:</label>
  <input type="text" id="zip-input" maxlength="5" pattern="[0-9]{5}"
         placeholder="ej. 90210"
         style="padding:8px 12px; border:1px solid #ccc; border-radius:6px; margin-left:8px; width:100px;">
  <button onclick="loadEmbed()" style="padding:8px 16px; margin-left:4px; cursor:pointer;">Consultar</button>
</div>

<div id="embed-container"></div>

<script>
function loadEmbed() {
  var zip = document.getElementById('zip-input').value.trim();
  if (!/^\d{5}$/.test(zip)) {
    alert('Por favor ingrese un código postal válido de 5 dígitos');
    return;
  }
  document.getElementById('embed-container').innerHTML =
    '<iframe src="https://zipcheckup.com/embed/' + zip + '"' +
    ' width="100%" height="300" frameborder="0"' +
    ' title="ZipCheckup Score for ' + zip + '"' +
    ' loading="lazy"></iframe>';
}
</script>

Esto ofrece a los lectores una experiencia interactiva sin necesidad de preseleccionar un código postal.