Games I Know logoGames I Know
Jeux EmbedDocumentation

Embed API documents

Apprenez le embed en y jouant, puis connectez les événements.

Commencez par la démo en direct, observez les événements de la page parente, puis copiez les modèles iframe et d'écouteurs sur votre site. La même procédure s'applique à tous les jeux Games I Know et iframe.

Obtenez une clé embed
1. Apprendre d'abord

Démonstration en direct : jouez et examinez les événements

Effectuez un mouvement dans Tic Tac Toe iframe. Le journal des événements affiche GAME_STARTED, les événements de jeu et les données de fin de partie exactement comme une page parente les reçoit.

contrat d'événement à l'échelle de la plateforme

Games I Know envoie des événements embed pour chaque jeu de la plateforme : Tic Tac Toe, Four in a Row, Bingo et I Know actuellement, et pour chaque nouveau jeu embeddable ajouté ultérieurement. Une seule intégration par jeu suffit. Créez un écouteur sur la page parente, basé sur le contrat standard (prêt, GAME_STARTED, événements de jeu, fin de partie avec les données du gagnant et résultats signés), et réutilisez-le pour tous les jeux embed actuels et à venir.

2. Démarrage rapide

De zéro à opérationnel embed

Utilisez cette méthode si vous savez déjà où le jeu doit apparaître sur votre site web.

  1. 1

    Créer un compte partenaire

    Ajoutez le domaine du site Web qui hébergera iframe.

    Passez à l'étape suivante
  2. 2

    Installer le chemin du cadre

    Utilisez /embed/{gameSlug}/frame/ avec votre identifiant de locataire. Ne iframe pas la page de destination SEO.

    Passez à l'étape suivante
  3. 3

    Soyez attentif aux messages des parents

    Filtrer sur data.source === "gamesiknow", puis gérer les événements de jeu GAME_STARTED, GAME_COMPLETED et version 1.

    Passez à l'étape suivante
  4. 4

    Vérifier les résultats complets

    Envoyez resultId et signedToken à votre serveur avant d'accorder des crédits, des récompenses ou des déblocages.

    Passez à l'étape suivante
Début iframe

Utilisez votre véritable identifiant de locataire (tenantId) depuis le tableau de bord partenaire.

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. Architecture

Comment fonctionne le embed

Un Games I Know embed est un iframe isolé sur votre domaine. Il valide votre locataire et votre domaine par rapport au API, puis communique avec votre page parente via window.postMessage.

Étape 1

Chargement de la page parente iframe

Votre site affiche un iframe pointant vers /embed/{gameSlug}/frame/ avec tenantId et les paramètres de requête optionnels mode ou campaignId.

Étape 2

Embed valide le locataire et le domaine

Le processus iframe effectue une requête GET vers /embed/config (ou /api/embed/config). Le processus Games I Know vérifie votre compte partenaire, le domaine autorisé, l'accès au jeu et le quota AI. Un événement d'analyse côté serveur embed_loaded est enregistré.

Étape 3

Embed devient prêt

Le iframe envoie un événement prêt à la page parente afin que vous puissiez afficher un état de chargement ou redimensionner le cadre à l'aide de payload.embedHeight.

Étape 4

Le joueur lance un match

Au début d'une partie, chaque jeu embeddable envoie un événement GAME_STARTED à la page parente et enregistre automatiquement cet événement côté serveur. Vous n'effectuez aucune analyse API depuis votre site web.

Étape 5

Diffusion en direct des événements de jeu

Pendant le match, les événements de jeu de la version 1, tels que les déplacements et les changements de mode, mettent à jour votre interface utilisateur ou vos analyses internes.

Étape 6

Match terminé avec données du gagnant

Une fois la partie terminée, chaque jeu embeddable envoie GAME_COMPLETED au serveur parent avec le résultat, le gagnant et les joueurs, permettant ainsi à votre page d'afficher les résultats immédiatement. Le jeu iframe signe également le résultat via une requête POST /embed/results et inclut resultId et signedToken dans GAME_COMPLETED en cas de signature réussie. Votre serveur peut vérifier ces jetons avec une clé de serveur partenaire avant d'attribuer les récompenses.

Deux formats de message post

événements du cycle de vie utiliser un objet plat avec event: "GAME_STARTED" or event: "GAME_COMPLETED". Événements de jeu envelopper les données dans version: 1 avec imbriqué payload. Toujours filtrer data.source === "gamesiknow".

4. Installation

Configuration des partenaires et extraits de code iframe

La plupart des intégrations se résument à quatre décisions : enregistrer le domaine, générer un jeton, installer iframe, puis écouter les événements de démarrage et de fin.

Enregistrez chaque site web

Ajoutez chaque domaine qui hébergera un Games I Know ou un embed. Les domaines sont normalisés afin que example.com et www.example.com soient traités de manière cohérente.

Générer un jeton de domaine

Créez un jeton embed distinct pour chaque site web. Cela permet de conserver des données analytiques claires et prépare le compte à une future tarification basée sur le domaine.

Installez le iframe

Copiez le conteneur iframe ou le conteneur réactif dans votre bloc HTML personnalisé CMS, votre zone embed du constructeur de site Web ou votre modèle frontend personnalisé.

Soyez attentif aux événements et vérifiez les résultats.

Gérez les événements postMessage GAME_STARTED et GAME_COMPLETED sur votre page principale pour afficher l'état du match et les détails du vainqueur. Vérifiez les résultats signés depuis votre serveur avec une clé de serveur partenaire avant d'attribuer les récompenses.

Paramètres recommandés iframe

Largeur

Utilisez 100% pour que embed remplisse la colonne de contenu disponible.

Hauteur

640 px pour la plupart des jeux. Tic Tac Toe fonctionne également à 600 px. Utilisez payload.embedHeight à partir des événements ready pour le redimensionnement automatique.

Jeux

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

Mode

Omettez le mode pour le choix du joueur, ou passez mode=ai lorsque vous voulez que embed demande d'abord AI.

Normal iframe

Le joueur choisit le type de match dans le jeu lorsque le quota AI est disponible.

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>
Forcé AI iframe

Demande d'abord AI. Bascule silencieusement vers PvP lorsque le quota est épuisé.

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. Configuration

Paramètres d'URL iframe

Les URL de cadre utilisent /embed/{gameSlug}/frame/. Pages de destination SEO sans gameplay en direct sur /embed/{gameSlug}/.

ParamètreRequisDescription
locataireIdOuiL'identifiant de votre locataire partenaire, disponible sur le tableau de bord partenaire Games I Know, est également accepté comme identifiant de partenaire pour les intégrations existantes.
modeNonConfigurez l'IA pour forcer le mode AI. Les quotas côté serveur et les règles de domaine restent applicables. Bascule en mode joueur contre joueur si AI est indisponible.
identifiant de campagneNonLibellé de campagne facultatif repris dans les événements postMessage et stocké dans les analyses partenaires pour les tests A/B ou la segmentation au niveau de la page.
6. Événements

référence à l'événement postMessage

Le même contrat s'applique aux versions Tic Tac Toe, Four in a Row, Bingo, I Know et à venir embed.

Règle 1

Source du filtre

Ignorez les messages sauf si data.source est gamesiknow.

Règle 2

Gérer le cycle de vie

Utilisez GAME_STARTED et GAME_COMPLETED pour l'état du match, le nom du gagnant et le résultat.

Règle 3

Vérifiez pour obtenir des récompenses

Transmettez resultId et signedToken à votre serveur avant d'octroyer les récompenses.

événements du cycle de vie

ÉvénementQuand il tireFormatChamps clés
prêtEmbed initialisé et configuration chargée.Gameplay (version 1) pour tous les jeux, ou plat pour certains wrappers de cycle de vie.matchId, mode, embedHauteur
DÉBUT DU JEUChaque partie embeddable (actuelle et future). Se déclenche au début d'une partie (par exemple, au premier coup ou au début du tour AI).cycle de vie platgame, PartnerId, CampaignId, mode, matchId (implicite via le flux de jeu)
JEU TERMINÉChaque partie embeddable est enregistrée à la fin d'un match. Les résultats incluent le résultat, le vainqueur, son nom et les joueurs, permettant ainsi à la page principale d'afficher les résultats immédiatement. L'identifiant du résultat et le jeton signé sont également inclus en cas de signature côté serveur réussie.cycle de vie platrésultat, vainqueur, nom_du_joueur_vainqueur, identifiant_du_joueur_vainqueur, joueurs, score, durée_secondes, identifiant_du_résultat, jeton_signé
EMBED_FULLSCREEN_CHANGELe joueur bascule en mode plein écran.cycle de vie platpayload.active booléen

Événements de jeu

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

  • prêt - Identique au cycle de vie prêt avec l'enveloppe de version 1.
  • changement de mode - Le joueur choisit PvP, AI ou retourne à la sélection du mode.
  • se déplacer - Un mouvement ou une action s'est produit(case du plateau, disque lâché, appel du bingo, réponse à une question de culture générale).
  • réinitialiser - Réinitialisation du plateau ou du tour.
  • défaire - Dernière action annulée (Tic Tac Toe uniquement).
  • État - Réponse à la commande get_state du parent (Tic Tac Toe, Four in a Row).

Chaque publication de jeu embeddable GAME_COMPLETED au parent avec outcome, winner, et players lorsqu'un match se termine. Lorsque la signature réussit, GAME_COMPLETED comprend également resultId et signedToken pour la vérification du système dorsal.

Exemple GAME_STARTED
json
{
  "source": "gamesiknow",
  "event": "GAME_STARTED",
  "game": "tic-tac-toe",
  "partnerId": "partner_your_tenant",
  "campaignId": "homepage-widget",
  "mode": "ai"
}
Exemple 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..."
}

Valeurs des résultats

joueur_1

Le premier joueur humain a gagné.

joueur_2

Le deuxième joueur humain a gagné.

IA_bot

AI adversaire a gagné.

dessiner

Pas de vainqueur.

Commandes parent-à-iframe

Compatible uniquement avec Tic Tac Toe et Four in a Row. Ciblez la fenêtre de contenu iframe avec le slug du jeu et l'action.

Réinitialiser ou demander l'état
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. Mise en œuvre

Écouteur d'intégration d'échantillons

Copiez ce gestionnaire d'événements sur la page hébergeant votre iframe. Il gère l'état prêt, le démarrage du jeu, les événements de jeu, la fin de la session signée et les changements de mode plein écran.

Écouteur de page parent unifié

Filtrer par source, gérer GAME_STARTED et GAME_COMPLETED pour l'interface utilisateur du vainqueur et les événements de jeu pendant le match.

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`;
}

Liste de contrôle d'intégration

  • Afficher une bannière de partie en cours sur GAME_STARTED.
  • Afficher le nom du gagnant à partir de GAME_COMPLETED.winner ou GAME_COMPLETED.winnerPlayerName.
  • Transmettez resultId et signedToken à votre serveur ; vérifiez-les avec une clé de serveur partenaire avant d’octroyer les récompenses.
  • Validez éventuellement event.origin par rapport à votre hôte Games I Know.
8. Sécurité

Résultats de jeu vérifiés API

Utilisez GAME_COMPLETED sur la page principale pour indiquer le gagnant. Pour les récompenses, vérifiez les résultats signés depuis votre serveur avec une clé de serveur partenaire ; n’appelez jamais la fonction de vérification API depuis le navigateur JavaScript.

Vérifier un résultat signé

Côté serveur uniquement. Utilisez resultId et signedToken de GAME_COMPLETED avec l'autorisation : 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.
Réponse de vérification réussie
json
{
  "ok": true,
  "resultId": "res_abc123xyz",
  "partnerId": "partner_your_tenant",
  "gameSlug": "tic-tac-toe",
  "outcome": "player_1",
  "score": 100,
  "durationSeconds": 24
}
Exemple de gestionnaire de récompenses côté serveur

Votre serveur reçoit des jetons de la page parente, les vérifie avec Games I Know, puis octroie la récompense.

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. Analyse

Événements analytiques côté serveur

Games I Know enregistre automatiquement ces événements lorsque votre iframe se charge et que les joueurs interagissent. Ils apparaissent sur votre tableau de bord partenaire. Pour importer ces mêmes données dans votre propre base de données, créez une clé de serveur partenaire sur la page d'installation et appelez la requête GET /partners/analytics depuis votre serveur backend uniquement.

  • embed_chargé - Chaque jeu embeddable lorsque la configuration est validée ou que le iframe est autorisé à s'exécuter.
  • partie_démarrée - Chaque jeu embeddable au début du jeu (enregistré automatiquement par le iframe).
  • jeu terminé - Chaque jeu embeddable lorsque POST /embed/results réussit.
  • match_ai_démarré - Quota AI consommé via POST /embed/ai-matches/start.
  • embed_bloqué - Accès au domaine, au partenaire ou au jeu refusé.
Exportez les données analytiques vers votre système backend (clé du serveur partenaire requise).

Générez une clé de serveur partenaire dans le tableau de bord partenaire → Installer. Stockez-la comme secret de serveur. Utilisez les paramètres de requête ci-dessous pour filtrer l'exportation.

http
GET https://api.gamesiknow.com/partners/analytics

Autorisation : Bearer gik_psk_votre_clé_secrète

Paramètres de requête optionnels :

domaine : Nom d'hôte du site web enregistré (exemple : example.com)

campaignId : Valeur de votre paramètre iframe campaignId

gameSlug : tic-tac-toe | four-in-a-row | bingo | i-know

from : Date de début en UTC (AAAA-MM-JJ)

to : Date de fin en UTC (AAAA-MM-JJ)

Exemple :

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

Appelez uniquement depuis votre serveur backend. Ne divulguez jamais votre clé de serveur partenaire dans le navigateur (JavaScript).
10. Catalogue

matrice des capacités de jeu

Chaque jeu embeddable envoie les mêmes événements principaux. Comparez le timing et les événements supplémentaires de chaque titre ci-dessous.

JeuDÉBUT DU JEUSignal d'achèvementSignéForcé AIHeightCommandes parentes
Tic Tac ToePremier mouvement ou AI débutJEU TERMINÉOuiOui640pxréinitialiser, obtenir_état
Four in a RowPremier mouvement ou AI débutJEU TERMINÉOuiOui640pxréinitialiser, obtenir_état
BingoDébut du match (AI ou PvP)JEU TERMINÉOuiOui640pxAucun pour l'instant
I KnowDébut du match (AI ou PvP)JEU TERMINÉOuiOui640pxAucun pour l'instant
11. Guides

Guides de configuration de la plateforme et des cas d'utilisation

Cette page constitue la référence technique. Consultez ces guides lorsque vous avez besoin d'instructions d'installation spécifiques à une plateforme ou de conseils sur le positionnement vertical. Tous les guides utilisent le même modèle iframe et le même modèle d'événements que ceux décrits ci-dessus.

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.

Vous recherchez des pages de présentation générale telles que les jeux iframe, les widgets HTML5 ou les jeux embeddable gratuits ? Parcourez tout embed guides sur le hub.

12. Soutien

Foire aux questions

Réponses concernant les détails d'intégration, la prise en charge actuelle des jeux, les commandes, les résultats signés et la compatibilité future avec les jeux.

Puis-je intégrer des jeux embed Games I Know dans WordPress, Webflow, Wix, Squarespace ou un site web personnalisé ?

Oui. Les éléments Games I Know embed utilisent du HTML standard iframe, ils fonctionnent donc dans les blocs HTML personnalisés WordPress, les éléments embed de Webflow, les zones de code personnalisées Wix et Squarespace, le HTML statique, React, Next.js et autres sites personnalisés. Enregistrez d'abord le nom de domaine du site web dans votre tableau de bord partenaire, puis collez l'extrait de code généré dans la page où le jeu doit apparaître.

Quelle est la différence entre /embed/{gameSlug}/ et /embed/{gameSlug}/frame/?

/embed/{gameSlug}/ est la page d'accueil publique du jeu embed. /embed/{gameSlug}/frame/ est le code d'exécution iframe à intégrer à votre site web. Utilisez toujours l'URL /frame/ dans le code iframe car elle charge le jeu, valide votre locataire et votre domaine, et envoie des événements à la page parente.

Les jeux Games I Know iframe fonctionnent-ils sur mobile et sur ordinateur ?

Oui. Les jeux Games I Know et iframe sont conçus pour les navigateurs mobiles, tablettes, ordinateurs portables et de bureau. Utilisez une largeur de 100 % et une hauteur recommandée d'environ 640 px pour la plupart des embed. Vous pouvez également écouter l'événement « ready » et utiliser payload.embedHeight si vous souhaitez que la page parente redimensionne automatiquement le iframe.

Combien coûte le jeu embed Games I Know ?

Les Games I Know, iframe et embed sont gratuits pendant la phase bêta embed. Aucune carte de crédit n'est requise pour commencer, et les embed bêta actuels ne contiennent aucune publicité. Créez un compte partenaire gratuit, enregistrez votre domaine et générez l'extrait iframe depuis le tableau de bord.

Ai-je besoin d'un compte partenaire ou d'une clé embed ?

Oui. Un compte partenaire vous attribue un ID de locataire et un extrait de code iframe restreint au domaine. Ce dernier transmet l'ID de locataire avec l'URL du cadre afin que Games I Know puisse valider le partenaire, le domaine autorisé, l'accès au jeu, le quota AI, la campagne d'analyse et le flux de vérification des résultats.

Quelqu'un pourrait-il copier mon code iframe et l'utiliser sur un autre site web ?

Le paramètre embed est soumis à des restrictions de domaine. Si quelqu'un copie votre extrait de code iframe sur un site web non autorisé, Games I Know vérifie l'origine de la requête par rapport aux domaines configurés pour votre compte partenaire et bloque toute utilisation non autorisée. Utilisez des identifiants de campagne distincts pour obtenir des analyses plus précises par site web ou campagne.

Quels jeux Games I Know peuvent être embeddés ?

Les plateformes Tic Tac Toe, Four in a Row, Bingo et I Know prennent en charge les plateformes iframe et embed dès aujourd'hui. Chaque jeu envoie le contrat d'événement standard embed pour l'état de préparation, le démarrage du jeu, le déroulement, la fin de la partie, les données du gagnant, les analyses et la vérification des résultats. Les nouveaux jeux compatibles avec embed devraient suivre le même modèle d'événement, ce qui évite aux partenaires de devoir reconstruire leur intégration.

Quels événements postMessage Games I Know envoie-t-il à la page parente ?

Chaque jeu embeddable utilise deux formats de message postMessage. Les événements de cycle de vie utilisent une structure plate avec la source : gamesiknow et des valeurs d'événement telles que ready, GAME_STARTED, GAME_COMPLETED et EMBED_FULLSCREEN_CHANGE. Les événements de gameplay utilisent la version 1 avec des noms d'événements imbriqués tels que ready, mode_change, move, reset, undo et state. Filtrez toujours sur data.source === "gamesiknow".

Puis-je suivre les débuts, les achèvements, les gagnants et les résultats des joueurs d'un jeu embedded ?

Oui. Surveillez l'événement GAME_STARTED au début d'une partie, utilisez les événements de jeu tels que les déplacements et les changements de mode pendant la partie, et l'événement GAME_COMPLETED à la fin d'une partie. GAME_COMPLETED inclut le résultat, le vainqueur, les joueurs, le score, la durée et les identifiants de résultat lorsque la signature est disponible. Les analyses côté serveur enregistrent également les chargements, les démarrages, les parties terminées, les tentatives bloquées et les clics sur les appels à l'action.

Quel événement de fin de partie dois-je utiliser pour tous les jeux ?

Utilisez GAME_COMPLETED à la fin d'une partie. Chaque partie embeddable envoie cet événement de cycle de vie avec le résultat, le gagnant, son nom et les joueurs. Si GAME_COMPLETED inclut resultId et signedToken, transmettez-les à votre serveur et effectuez une requête POST /embed/results/verify avec la clé de votre serveur partenaire avant d'attribuer les récompenses ou les crédits.

Comment puis-je écouter les événements embed à partir d'un iframe sur mon site web ?

Ajoutez `window.addEventListener("message", handler)` sur la page hébergeant l'événement `iframe`. Dans le gestionnaire, ignorez les messages sauf si `event.data.source === "gamesiknow"`. Utilisez `event.data.event` pour les événements de cycle de vie, ou `event.data.event + event.data.version === 1` pour les événements de gameplay. Vous pouvez également vérifier l'origine de l'événement par rapport à l'origine autorisée `Games I Know`.

Comment puis-je vérifier les résultats du jeu avant d'attribuer des crédits, des prix ou des déblocages ?

Utilisez GAME_COMPLETED sur la page principale pour afficher immédiatement le gagnant (résultat, gagnant, nom du joueur gagnant, joueurs). Pour les récompenses, envoyez resultId et signedToken depuis GAME_COMPLETED à votre serveur, puis effectuez une requête POST /embed/results/verify avec l'autorisation Bearer gik_psk_… en utilisant une clé de serveur partenaire disponible sur votre tableau de bord. Le point de terminaison de vérification est réservé au serveur ; ne l'appelez jamais depuis un navigateur (JavaScript). Les récompenses ne seront versées qu'après vérification.

Quels paramètres d'URL iframe Games I Know prend-il en charge ?

Obligatoire : tenantId (l’identifiant de votre locataire partenaire). Facultatif : mode=ai pour forcer le mode AI lorsque le quota le permet, et campaignId pour segmenter les analyses. Les URL des cadres suivent le format /embed/{gameSlug}/frame/?tenantId=VOTRE_ID_DE_LOCATAIRE.

Puis-je forcer un jeu embed à démarrer en mode AI ?

Oui. Ajoutez `mode=ai` à l'URL `iframe` pour demander d'abord le mode `AI`. Les quotas côté serveur et les règles de domaine restent applicables ; ainsi, `embed` peut basculer vers le choix du joueur ou le mode joueur contre joueur si le mode `AI` est indisponible ou si le quota est épuisé.

Puis-je envoyer des commandes à Games I Know iframe ?

Les programmes Tic Tac Toe et Four in a Row acceptent les messages parents lorsque le paramètre « game » correspond à l'identifiant du jeu et l'action à « reset » ou « get_state ». Le programme iframe répond par un événement de gameplay d'état. Les autres programmes embed n'exposent pas encore de commandes parentes.

Liste de contrôle de production

Veuillez vérifier que le domaine du site web est actif avant de générer un jeton.

Utilisez un jeton ou un identifiant de campagne distinct pour chaque site web ou groupe de campagnes.

Surveillez les signaux GAME_STARTED et GAME_COMPLETED sur la page parente.

Gardez la marque Games I Know visible à l'intérieur de embed.

Vérifiez les résultats signés sur votre système avant d'attribuer des prix ou des crédits.

Testez le mode forcé AI et le repli PvP lorsque le quota AI est épuisé.

Besoin d'aide pour l'intégration d'un partenaire ?

Veuillez nous indiquer le site web, le CMS et l'emplacement souhaité pour le jeu. Nous pourrons examiner avec vous le câblage de votre événement embed.

Contactez l'assistance