Games I Know logoGames I Know
Juegos EmbedDocumentación

Embed API documentos

Aprende el embed jugando con él y luego conecta los eventos.

Comienza con la demostración en vivo, observa los eventos de la página principal y luego copia los patrones iframe y del oyente en tu sitio. El mismo flujo funciona para todos los juegos Games I Know y iframe.

Obtén una clave embed
1. Aprende primero

Demostración en vivo: juega e inspecciona los eventos.

Realiza un movimiento en Tic Tac Toe iframe. El registro de eventos muestra GAME_STARTED, eventos de juego y cargas útiles de finalización exactamente como las recibe una página principal.

Contrato para eventos en toda la plataforma

Games I Know envía eventos embed para cada juego en la plataforma: Tic Tac Toe, Four in a Row, Bingo y I Know hoy, y cada nuevo juego embeddable que agreguemos en el futuro. No necesita una integración separada para cada título. Cree un oyente de página principal contra el contrato estándar (listo, GAME_STARTED, eventos de juego, finalización con datos del ganador y resultados firmados) y reutilícelo en todos los juegos embed actuales y futuros.

2. Inicio rápido

De cero a trabajar embed

Utilice esta opción cuando ya sepa dónde debe aparecer el juego en su sitio web.

  1. 1

    Crear una cuenta de socio

    Agregue el dominio del sitio web que alojará el iframe.

    Ir al paso
  2. 2

    Instalar la ruta del marco

    Utilice /embed/{gameSlug}/frame/ con su tenantId. No utilice iframe la página de destino SEO.

    Ir al paso
  3. 3

    Escuche los mensajes de los padres.

    Filtra en data.source === "gamesiknow", luego maneja los eventos de juego GAME_STARTED, GAME_COMPLETED y versión 1.

    Ir al paso
  4. 4

    Verificar resultados completados

    Envía resultId y signedToken a tu backend antes de otorgar créditos, recompensas o desbloqueos.

    Ir al paso
Iniciador iframe

Utilice su ID de inquilino real del panel de control del socio.

html
<iframe
  src="https://gamesiknow.com/embed/tic-tac-toe/frame/?tenantId=YOUR_TENANT_ID"
  title="Tic Tac Toe by Games I Know"
  width="100%"
  height="640"
  style="border:0;border-radius:16px;max-width:420px;display:block;margin:0 auto;"
  loading="lazy"
  allow="fullscreen"
  referrerpolicy="no-referrer-when-downgrade"
  allowfullscreen
></iframe>
3. Arquitectura

Cómo funciona el embed

Un Games I Know embed es un iframe aislado en su dominio. Valida su inquilino y dominio contra el API, luego se comunica con su página principal a través de window.postMessage.

Paso 1

La página principal se carga iframe

Su sitio renderiza un iframe que apunta a /embed/{gameSlug}/frame/ con tenantId y parámetros de consulta opcionales mode o campaignId.

Paso 2

Embed valida el inquilino y el dominio.

El iframe llama a GET /embed/config (o /api/embed/config). Games I Know comprueba tu cuenta de socio, dominio permitido, acceso al juego y cuota de AI. Se registra un evento de análisis embed cargado en el servidor.

Paso 3

Embed está listo

El iframe envía un evento de listo a la página principal para que pueda mostrar un estado de carga o redimensionar el marco usando payload.embedHeight.

Paso 4

El jugador inicia un partido

Cuando comienza el juego, cada juego embeddable publica GAME_STARTED en la página principal y registra game_started en el servidor automáticamente. No se llama a ningún análisis API desde su sitio web.

Paso 5

Transmisión de eventos de juego

Durante la partida, los eventos de juego de la versión 1, como move y mode_change, actualizan la interfaz de usuario o los análisis internos.

Paso 6

El partido finaliza con los datos del ganador.

Al finalizar, cada juego embeddable envía GAME_COMPLETED al servidor principal con el resultado, el ganador y los jugadores para que tu página muestre los resultados de inmediato. El servidor iframe también firma el resultado mediante POST /embed/results e incluye resultId y signedToken en GAME_COMPLETED cuando la firma es exitosa. Tu servidor backend puede verificar esos tokens con una clave de servidor asociada antes de otorgar las recompensas.

Dos formatos de postMessage

Eventos del ciclo de vida usar un objeto plano con event: "GAME_STARTED" or event: "GAME_COMPLETED". Eventos de juego envolver datos en version: 1 con anidado payload. Siempre filtrar activado data.source === "gamesiknow".

4. Instalar

Configuración de socios y fragmentos de código iframe

La mayoría de las integraciones constan de cuatro decisiones: registrar el dominio, generar un token, instalar iframe y, a continuación, estar atento a los eventos de inicio y finalización.

Registra cada sitio web

Agregue todos los dominios que alojarán un Games I Know y un embed. Los dominios están normalizados, por lo que example.com y www.example.com se manejan de manera consistente.

Generar un token de dominio

Crea un token embed independiente para cada sitio web. Esto mantiene los análisis actualizados y prepara la cuenta para la tarificación futura basada en dominios.

Instala el iframe

Copie el iframe o el contenedor responsivo en su bloque HTML personalizado de CMS, área embed del creador de sitios web o plantilla frontend personalizada.

Escuche los eventos y verifique los resultados.

Gestiona los eventos postMessage GAME_STARTED y GAME_COMPLETED en tu página principal para mostrar el estado del partido y los detalles del ganador. Verifica los resultados firmados desde tu backend con una clave de servidor asociada antes de otorgar las recompensas.

Configuración recomendada de iframe

Ancho

Utilice el 100% para que embed llene la columna de contenido disponible.

Altura

640px para la mayoría de los juegos. Tic Tac Toe también funciona a 600px. Usa payload.embedHeight de los eventos ready para redimensionar automáticamente.

Juegos

Utilice /embed/tic-tac-toe/frame/, /embed/four-in-a-row/frame/, /embed/bingo/frame/ o /embed/i-know/frame/.

Modo

Omita el modo para la elección del jugador, o pase mode=ai cuando desee que embed solicite AI primero.

Normal iframe

El jugador elige el tipo de partida dentro del juego cuando hay disponible una cuota de AI.

html
<iframe
  src="https://gamesiknow.com/embed/tic-tac-toe/frame/?tenantId=TENANT_ID"
  width="100%"
  height="640"
  style="border:0;border-radius:16px;max-width:420px;display:block;margin:0 auto;"
  allow="fullscreen"
  loading="lazy"
  title="Tic Tac Toe by Games I Know"
></iframe>
Forzado AI iframe

Solicita AI primero. Si se agota la cuota, recurre silenciosamente a PvP.

html
<iframe
  src="https://gamesiknow.com/embed/tic-tac-toe/frame/?tenantId=TENANT_ID&mode=ai&campaignId=homepage-widget"
  width="100%"
  height="640"
  style="border:0;border-radius:16px;max-width:420px;display:block;margin:0 auto;"
  allow="fullscreen"
  loading="lazy"
  title="Tic Tac Toe vs AI by Games I Know"
></iframe>
5. Configuración

Parámetros de URL iframe

Las URL de marco utilizan /embed/{gameSlug}/frame/. Las páginas de destino de SEO sin juego están disponibles en /embed/{gameSlug}/.

ParámetroRequeridoDescripción
ID del inquilinoSu ID de inquilino asociado del panel de socios Games I Know. También se acepta como partnerId para integraciones heredadas.
modoNoConfigurado para que la IA solicite el modo AI forzado. Se siguen aplicando las cuotas del servidor y las reglas de dominio. Si AI no está disponible, se recurre al modo jugador contra jugador.
ID de campañaNoLa etiqueta de campaña opcional se refleja en los eventos postMessage y se almacena en los análisis de socios para realizar pruebas A/B o segmentación a nivel de página.
6. Eventos

Referencia del evento postMessage

El mismo contrato se aplica a Tic Tac Toe, Four in a Row, Bingo, I Know y las próximas versiones embed.

Regla 1

Fuente del filtro

Ignorar los mensajes a menos que data.source sea gamesiknow.

Regla 2

Gestionar el ciclo de vida

Utilice GAME_STARTED y GAME_COMPLETED para conocer el estado del partido, el nombre del ganador y el resultado.

Regla 3

Verificar para obtener recompensas

Envía resultId y signedToken a tu backend antes de otorgar las recompensas.

Eventos del ciclo de vida

EventoCuando disparaFormatoCampos clave
listoEmbed inicializado y configuración cargada.Jugabilidad (versión 1) para todos los juegos, o plana para algunos envoltorios del ciclo de vida.matchId, modo, embedHeight
JUEGO_INICIADOCada partida embeddable (actual y futura). Se activa cuando comienza una partida (por ejemplo, primer movimiento o inicio de ronda AI).Ciclo de vida planojuego, ID de socio, ID de campaña, modo, ID de partido (implícito a través del flujo de juego)
JUEGO_COMPLETADOCada partida de embeddable finaliza. Incluye el resultado, el ganador, el nombre del jugador ganador y los jugadores para que la página principal muestre los resultados inmediatamente. También incluye el ID del resultado y el token firmado cuando la firma del servidor es exitosa.Ciclo de vida planoresultado, ganador, nombreJugadorGanador, IDJugadorGanador, jugadores, puntuación, duraciónSegundos, IDResultado, tokenFirmado
CAMBIO DE PANTALLA COMPLETA INSERTAREl jugador activa la pantalla completa en embed.Ciclo de vida planocarga útil.activa booleana

Eventos de juego

Forma: { source, game, version: 1, event, payload }

  • listo - Igual que el ciclo de vida listo con la versión 1 del sobre.
  • cambio_de_modo - El jugador elige PvP, AI o regresa a la selección de modo.
  • mover - Se produjo un movimiento o una acción (celda del tablero, caída de disco, llamada de bingo, respuesta a la pregunta de trivia).
  • reiniciar - Reinicio del tablero o de la ronda.
  • deshacer - Último movimiento deshecho (solo Tic Tac Toe).
  • estado - Respuesta al comando get_state del padre (Tic Tac Toe, Four in a Row).

Cada publicación de juego embeddable GAME_COMPLETED al padre con outcome, winner, y players cuando termina un partido. Cuando la firma tiene éxito, GAME_COMPLETED también incluye resultId y signedToken para verificación de backend.

Ejemplo de GAME_STARTED
json
{
  "source": "gamesiknow",
  "event": "GAME_STARTED",
  "game": "tic-tac-toe",
  "partnerId": "partner_your_tenant",
  "campaignId": "homepage-widget",
  "mode": "ai"
}
Ejemplo de GAME_COMPLETED
json
{
  "source": "gamesiknow",
  "event": "GAME_COMPLETED",
  "game": "tic-tac-toe",
  "resultId": "res_abc123xyz",
  "partnerId": "partner_your_tenant",
  "campaignId": "homepage-widget",
  "status": "completed",
  "outcome": "player_1",
  "score": 100,
  "durationSeconds": 24,
  "winnerPlayerId": "player_1",
  "winnerPlayerName": "Player X",
  "winner": {
    "playerId": "player_1",
    "participant": "player_1",
    "type": "human",
    "label": "Player 1",
    "name": "Player X",
    "score": 100
  },
  "players": [
    {
      "playerId": "player_1",
      "participant": "player_1",
      "type": "human",
      "label": "Player 1",
      "name": "Player X",
      "score": 100,
      "status": "winner"
    },
    {
      "playerId": "player_2",
      "participant": "ai_bot",
      "type": "ai",
      "label": "AI BOT",
      "name": "AI Bot",
      "score": 60,
      "status": "lost"
    }
  ],
  "signedToken": "eyJ..."
}

Valores de resultado

jugador_1

Ganó el primer jugador humano.

jugador_2

Ganó el segundo jugador humano.

bot de IA

El oponente AI ganó.

dibujar

No hay ganador.

Comandos de padre a iframe

Solo compatible con Tic Tac Toe y Four in a Row. Dirija el slug del juego y la acción a la ventana de contenido iframe.

Restablecer o solicitar estado
js
// Parent page -> iframe (Tic Tac Toe or Four in a Row)
const iframe = document.querySelector("iframe");
iframe.contentWindow.postMessage(
  { game: "tic-tac-toe", action: "reset" },
  "https://gamesiknow.com"
);

iframe.contentWindow.postMessage(
  { game: "tic-tac-toe", action: "get_state" },
  "https://gamesiknow.com"
);
7. Implementación

oyente de integración de muestra

Copia este detector de eventos en la página que aloja tu iframe. Gestiona el estado listo, el inicio del juego, los eventos de juego, la finalización firmada y los cambios de pantalla completa.

oyente de página principal unificado

Filtra por origen, gestiona GAME_STARTED y GAME_COMPLETED para la interfaz de usuario del ganador y los eventos de juego durante la partida.

js
/**
 * Games I Know embed listener (parent page)
 * Handles lifecycle events (GAME_STARTED, GAME_COMPLETED) and
 * version 1 gameplay events (move, mode_change, ...).
 */
const TRUSTED_ORIGIN = "https://gamesiknow.com"; // or your self-hosted origin

window.addEventListener("message", (event) => {
  if (TRUSTED_ORIGIN !== "*" && event.origin !== TRUSTED_ORIGIN) return;

  const data = event.data;
  if (!data || data.source !== "gamesiknow") return;

  // --- Lifecycle events (flat top-level event name) ---
  if (data.event === "GAME_STARTED") {
    console.log("Match started", {
      game: data.game,
      mode: data.mode,
      partnerId: data.partnerId,
      campaignId: data.campaignId,
    });
    return;
  }

  if (data.event === "GAME_COMPLETED") {
    const winnerLabel = data.winner?.name ?? data.winnerPlayerName ?? null;
    console.log("Match completed", {
      game: data.game,
      outcome: data.outcome, // player_1 | player_2 | ai_bot | draw
      winner: data.winner,
      winnerName: winnerLabel,
      players: data.players,
    });

    if (winnerLabel) {
      document.getElementById("game-winner")!.textContent = `${winnerLabel} won!`;
    } else if (data.outcome === "draw") {
      document.getElementById("game-winner")!.textContent = "Draw";
    }

    // For rewards: send resultId + signedToken to YOUR backend (never call verify from the browser)
    if (data.resultId && data.signedToken) {
      fetch("/api/reward-winner", {
        method: "POST",
        headers: { "content-type": "application/json" },
        body: JSON.stringify({
          resultId: data.resultId,
          signedToken: data.signedToken,
          userId: currentUserId,
        }),
      });
    }
    return;
  }

  if (data.event === "EMBED_FULLSCREEN_CHANGE") {
    document.body.classList.toggle("embed-fullscreen-active", Boolean(data.payload?.active));
    return;
  }

  // --- Gameplay events (version 1 envelope) ---
  if (data.version === 1 && typeof data.event === "string") {
    switch (data.event) {
      case "ready":
        resizeEmbed(data.payload?.embedHeight);
        break;
      case "mode_change":
        console.log("Mode changed", data.payload?.mode);
        break;
      case "move":
        console.log("Move", data.payload);
        break;
      default:
        console.log("Gameplay event", data.event, data.payload);
    }
  }
});

function resizeEmbed(height) {
  const iframe = document.querySelector('iframe[src*="/embed/"]');
  if (iframe && typeof height === "number") iframe.style.height = `${height}px`;
}

Lista de verificación de integración

  • Mostrar un banner de juego en curso en GAME_STARTED.
  • Mostrar el nombre del ganador de GAME_COMPLETED.winner o GAME_COMPLETED.winnerPlayerName.
  • Envía resultId y signedToken a tu servidor backend; verifica con una clave de servidor asociada antes de otorgar las recompensas.
  • Opcionalmente, valide event.origin contra su host Games I Know.
8. Seguridad

Resultados del juego verificados API

Utilice GAME_COMPLETED en la página principal para mostrar quién ganó. Para las recompensas, verifique los resultados firmados desde su backend con una clave de servidor asociada; nunca llame a la verificación API desde el navegador JavaScript.

Verificar un resultado firmado

Solo del lado del servidor. Use resultId y signedToken de GAME_COMPLETED con autorización: Bearer gik_psk_…

http
POST https://api.gamesiknow.com/embed/results/verify
Authorization: Bearer gik_psk_your_secret_key
Content-Type: application/json

{
  "resultId": "res_abc123xyz",
  "signedToken": "signed_token_from_game_completed"
}

Call from your backend server only. The partner server key must belong to the same tenant as the signed result. Browser requests are rejected.
Respuesta de verificación exitosa
json
{
  "ok": true,
  "resultId": "res_abc123xyz",
  "partnerId": "partner_your_tenant",
  "gameSlug": "tic-tac-toe",
  "outcome": "player_1",
  "score": 100,
  "durationSeconds": 24
}
Ejemplo de gestor de recompensas de backend

Tu backend recibe tokens de la página principal, los verifica con Games I Know y luego otorga la recompensa.

js
// Example: Node.js / Express handler on YOUR server
app.post("/api/reward-winner", async (req, res) => {
  const { resultId, signedToken, userId } = req.body;

  const verify = await fetch("https://api.gamesiknow.com/embed/results/verify", {
    method: "POST",
    headers: {
      "content-type": "application/json",
      authorization: `Bearer ${process.env.GAMESIKNOW_PARTNER_SERVER_KEY}`,
    },
    body: JSON.stringify({ resultId, signedToken }),
  });

  if (!verify.ok) return res.status(403).json({ error: "Invalid result" });

  const result = await verify.json();
  if (result.outcome !== "player_1") {
    return res.status(400).json({ error: "Player did not win" });
  }

  await grantReward(userId, result);
  return res.json({ ok: true });
});
9. Analítica

Eventos de análisis del lado del servidor

Games I Know registra estos eventos automáticamente cuando se carga iframe y los jugadores interactúan. Aparecen en el panel de control de socios. Para importar los mismos datos a tu propia base de datos, crea una clave de servidor de socio en la página de instalación y llama a GET /partners/analytics solo desde tu servidor backend.

  • embed_cargado - Cada juego embeddable cuando se valida la configuración o se permite que se ejecute iframe.
  • juego_iniciado - Cada juego embeddable cuando comienza el juego (registrado automáticamente por el iframe).
  • juego_completado - Cada juego embeddable cuando POST /embed/results tiene éxito.
  • ai_match_started - Cuota de AI consumida a través de POST /embed/ai-matches/start.
  • embed_bloqueado - Acceso denegado al dominio, al socio o al juego.
Exporta los análisis a tu servidor backend (se requiere la clave del servidor del socio).

Genere una clave de servidor de socio en Panel de socios → Instalar. Guárdela como secreto de servidor. Utilice los parámetros de consulta que se muestran a continuación para filtrar la exportación.

http
GET https://api.gamesiknow.com/partners/analytics
Autorización: Bearer gik_psk_tu_clave_secreta

Parámetros de consulta opcionales:

dominio: Nombre de host del sitio web registrado (example.com)
campañaId: Valor del parámetro iframe (campañaId)

gameSlug: tres en raya | cuatro en raya | bingo | i-know

desde: Fecha de inicio en UTC (AAAA-MM-DD)

hasta: Fecha de finalización en UTC (AAAA-MM-DD)

Ejemplo:

/partners/analytics?domain=www.example.com&gameSlug=tic-tac-toe&from=2026-05-01&to=2026-05-31

Llama solo desde tu servidor backend. Nunca expongas la clave de tu servidor de socios en el navegador (JavaScript).
10. Catálogo

matriz de capacidades del juego

Todos los juegos embeddable envían los mismos eventos principales. Compare los tiempos y los eventos adicionales de cada título a continuación.

JuegoJUEGO_INICIADOSeñal de finalizaciónFirmadoAI forzadoHeightComandos de padre
Tic Tac ToePrimer movimiento o AI inicioJUEGO_COMPLETADO640pxreiniciar, obtener_estado
Four in a RowPrimer movimiento o AI inicioJUEGO_COMPLETADO640pxreiniciar, obtener_estado
BingoComienza el partido (AI o PvP)JUEGO_COMPLETADO640pxTodavía no hay ninguno.
I KnowComienza el partido (AI o PvP)JUEGO_COMPLETADO640pxTodavía no hay ninguno.
11. Guías

Guías de configuración de la plataforma y los casos de uso

Esta página es la referencia técnica. Utilice estas guías cuando necesite pasos de instalación específicos para la plataforma o consejos sobre la colocación vertical. Todas las guías utilizan el mismo iframe y el mismo modelo de eventos documentado anteriormente.

Developer frameworks

Framework-specific iframe placement, event listeners, and production notes.

Website builders and CMS

Copy-paste embed guides for no-code and low-code site builders.

Use-case guides

Placement and UX recommendations for common website types.

¿Buscas páginas de resumen general como juegos iframe, widgets HTML5 o juegos embed gratuitos? Explorar todo embed guías en el centro.

12. Apoyo

Preguntas frecuentes

Respuestas sobre detalles de integración, compatibilidad actual con el juego, comandos, resultados firmados y compatibilidad futura con el juego.

¿Puedo embed Games I Know juegos en WordPress, Webflow, Wix, Squarespace o un sitio web personalizado?

Sí. Los Games I Know y embed utilizan HTML estándar, por lo que funcionan en bloques HTML personalizados de WordPress, elementos embed de Webflow, áreas de código personalizado de Wix y Squarespace, HTML estático, React, Next.js y otros sitios personalizados. Primero, registre el dominio del sitio web en su panel de socios y luego pegue el fragmento de marco generado en la página donde debería aparecer el juego.

¿Cuál es la diferencia entre /embed/{gameSlug}/ y /embed/{gameSlug}/frame/?

/embed/{gameSlug}/ es la página de inicio pública del juego embed. /embed/{gameSlug}/frame/ es el entorno de ejecución de iframe que debe pegarse en su sitio web. Utilice siempre la URL /frame/ en el código de iframe porque carga el juego jugable, valida su inquilino y dominio, y envía eventos de página principal.

¿Los juegos Games I Know iframe funcionan en dispositivos móviles y de escritorio?

Sí. Los juegos Games I Know y iframe están diseñados para navegadores móviles, tabletas, portátiles y ordenadores de escritorio. Utilice width="100%" y una altura recomendada de aproximadamente 640px para la mayoría de los embed. También puede escuchar el evento ready y usar payload.embedHeight si desea que su página principal cambie el tamaño de iframe automáticamente.

¿Cuánto cuesta jugar a los juegos de embed Games I Know?

Los Games I Know, iframe y embed son gratuitos durante la beta de embed. No se requiere tarjeta de crédito para comenzar, y los embed beta actuales no incluyen anuncios. Crea una cuenta de socio gratuita, registra tu dominio y genera el fragmento iframe desde el panel de control.

¿Necesito una cuenta de socio o una clave embed?

Sí. Una cuenta de socio le proporciona un ID de inquilino y un fragmento iframe restringido al dominio. El iframe envía el ID de inquilino con la URL del marco para que Games I Know pueda validar al socio, el dominio permitido, el acceso al juego, la cuota de AI, la campaña de análisis y el flujo de verificación de resultados.

¿Alguien puede copiar mi código iframe y usarlo en otro sitio web?

El embed tiene restricciones de dominio. Si alguien copia tu fragmento iframe en un sitio web no autorizado, Games I Know verifica el origen de la solicitud comparándolo con los dominios configurados para tu cuenta de socio y bloquea el uso no autorizado. Usa identificadores de campaña separados cuando quieras un análisis más preciso por sitio web o campaña.

¿Qué juegos Games I Know pueden ser embed?

Los Tic Tac Toe, Four in a Row, Bingo y I Know admiten iframe y embed actualmente. Cada juego envía el contrato de eventos estándar embed para el estado listo, el inicio del juego, la jugabilidad, la finalización, los datos del ganador, los análisis y la verificación de resultados. Se espera que los nuevos juegos compatibles con embed sigan el mismo patrón de eventos para que los socios no tengan que reconstruir su integración.

¿Qué eventos postMessage envía Games I Know a la página principal?

Cada juego embeddable utiliza dos formatos postMessage. Los eventos del ciclo de vida utilizan una forma plana con origen: gamesiknow y valores de evento como ready, GAME_STARTED, GAME_COMPLETED y EMBED_FULLSCREEN_CHANGE. Los eventos de juego utilizan la versión: 1 con nombres de eventos anidados como ready, mode_change, move, reset, undo y state. Filtrar siempre en data.source === "gamesiknow".

¿Puedo realizar un seguimiento de los inicios, finalizaciones, ganadores y resultados de los jugadores de un juego embedded?

Sí. Se escucha el evento GAME_STARTED cuando comienza una partida, se utilizan eventos de juego como move y mode_change durante el juego, y se utiliza GAME_COMPLETED cuando finaliza una partida. GAME_COMPLETED incluye el resultado, el ganador, los jugadores, la puntuación, la duración y los identificadores de resultado cuando la firma está disponible. El análisis del lado del servidor también registra las cargas, los inicios, las finalizaciones, los intentos bloqueados y los clics en las llamadas a la acción (CTA).

¿Qué evento de finalización debo usar para todos los juegos?

Usa GAME_COMPLETED cuando termine una partida. Cada juego embeddable envía este evento de ciclo de vida con el resultado, el ganador, el nombre del jugador ganador y los jugadores. Cuando GAME_COMPLETED incluya resultId y signedToken, envíalos a tu servidor backend y llama a POST /embed/results/verify con la clave de tu servidor asociado antes de otorgar recompensas o créditos.

¿Cómo puedo escuchar los eventos embed desde un iframe en mi sitio web?

Agregue window.addEventListener("message", handler) en la página que aloja iframe. En el controlador, ignore los mensajes a menos que event.data.source === "gamesiknow". Cree una bifurcación en event.data.event para eventos del ciclo de vida, o en event.data.event más event.data.version === 1 para eventos de juego. Opcionalmente, valide event.origin con su origen Games I Know permitido.

¿Cómo puedo verificar los resultados del juego antes de otorgar créditos, premios o desbloqueos?

Usa GAME_COMPLETED en la página principal para mostrar quién ganó inmediatamente (resultado, ganador, nombre del jugador ganador, jugadores). Para las recompensas, envía resultId y signedToken desde GAME_COMPLETED a tu backend, luego llama a POST /embed/results/verify con Authorization: Bearer gik_psk_… usando una clave de servidor de socio desde tu panel. El punto final de verificación es solo del lado del servidor; nunca lo llames desde el navegador JavaScript. Otorga recompensas solo después de que la verificación sea exitosa.

¿Qué parámetros de URL de iframe admite Games I Know?

Obligatorio: tenantId (el ID de inquilino de su socio). Opcional: mode=ai para solicitar el modo AI forzado cuando la cuota lo permita, y campaignId para segmentar los análisis. Las URL de los marcos siguen el formato /embed/{gameSlug}/frame/?tenantId=YOUR_TENANT_ID.

¿Puedo forzar que un juego embed se inicie en modo AI?

Sí. Añade mode=ai a la URL iframe para solicitar primero el modo AI. Las reglas de cuota y dominio del servidor siguen vigentes, por lo que embed puede recurrir a la elección del jugador o al modo jugador contra jugador cuando el modo AI no esté disponible o se haya agotado la cuota.

¿Puedo enviar comandos a Games I Know iframe?

Tic Tac Toe y Four in a Row aceptan mensajes de padre con el juego configurado como el slug del juego y la acción configurada como reset o get_state. iframe responde con un evento de juego de estado. Otros juegos embed aún no exponen comandos de padre.

Lista de verificación de producción

Confirme que el dominio del sitio web esté activo antes de generar un token.

Utilice un token o ID de campaña independiente para cada sitio web o grupo de campaña.

Presta atención a los mensajes GAME_STARTED y GAME_COMPLETED en la página principal.

Mantén visible la marca Games I Know dentro de embed.

Verifique los resultados firmados en su sistema backend antes de otorgar premios o créditos.

La prueba forzó el modo AI y la reversión a PvP cuando se agotó la cuota de AI.

¿Necesitas ayuda con la integración de un socio?

Comparta el sitio web, el CMS y la ubicación deseada para el juego. Podemos revisar con usted el cableado de su evento embed.

Contacta con soporte