단계 1
상위 페이지가 iframe을 로드합니다.
귀하의 사이트는 tenantId와 선택적 mode 또는 campaignId 쿼리 매개변수를 사용하여 /embed/{gameSlug}/frame/을 가리키는 iframe을 렌더링합니다.
Embed API 문서
먼저 라이브 데모를 시청하고 상위 페이지 이벤트를 확인한 다음, iframe 및 리스너 패턴을 복사하여 사이트에 붙여넣으세요. 모든 Games I Know 및 iframe 게임에 동일한 절차가 적용됩니다.
embed 키를 가져오세요Tic Tac Toe 또는 iframe에서 움직임을 취하세요. 이벤트 로그에는 GAME_STARTED, 게임 플레이 이벤트 및 완료 페이로드가 상위 페이지에서 수신하는 그대로 표시됩니다.
플랫폼 전반의 이벤트 계약
Games I Know은 플랫폼의 모든 게임(현재는 Tic Tac Toe, Four in a Row, Bingo, I Know 포함)과 향후 추가될 모든 새로운 embed 관련 게임에 대해 embed 이벤트를 전송합니다. 게임 타이틀별로 별도의 통합이 필요하지 않습니다. 표준 계약(ready, GAME_STARTED, 게임 플레이 이벤트, 승자 데이터가 포함된 완료, 서명된 결과)에 대한 하나의 상위 페이지 리스너를 구축하고 현재 및 향후 추가될 모든 embed 게임에서 재사용하세요.
웹사이트에서 게임이 표시될 위치를 이미 알고 있는 경우 이 경로를 사용하세요.
data.source === "gamesiknow"로 필터링한 다음 GAME_STARTED, GAME_COMPLETED 및 버전 1 게임플레이 이벤트를 처리합니다.
다음 단계로 이동파트너 대시보드에서 실제 테넌트 ID를 사용하세요.
<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>Games I Know embed은 도메인의 샌드박스 환경인 iframe입니다. API을 기준으로 테넌트와 도메인의 유효성을 검사한 후, window.postMessage를 통해 상위 페이지와 통신합니다.
단계 1
귀하의 사이트는 tenantId와 선택적 mode 또는 campaignId 쿼리 매개변수를 사용하여 /embed/{gameSlug}/frame/을 가리키는 iframe을 렌더링합니다.
단계 2
iframe는 GET /embed/config (또는 /api/embed/config)를 호출합니다. Games I Know는 파트너 계정, 허용된 도메인, 게임 액세스 권한 및 AI 할당량을 확인합니다. 서버 측에서 embed_ 로드된 분석 이벤트가 기록됩니다.
단계 3
iframe은 부모 페이지에 준비 이벤트를 게시하므로 페이로드.embedHeight를 사용하여 로딩 상태를 표시하거나 프레임 크기를 조정할 수 있습니다.
단계 4
게임 플레이가 시작되면 모든 embeddable 게임은 상위 페이지에 GAME_STARTED를 게시하고 서버 측에 game_started를 자동으로 기록합니다. 웹사이트에서 분석 도구 API을 호출하지 마십시오.
단계 5
경기 중에는 이동 및 모드 변경과 같은 버전 1 게임플레이 이벤트가 UI 또는 내부 분석 정보를 업데이트합니다.
단계 6
모든 embed 게임은 완료되면 결과, 승자, 플레이어 정보를 GAME_COMPLETED에 담아 상위 서버로 전송하므로 웹페이지에서 결과를 즉시 표시할 수 있습니다. iframe 게임은 POST /embed/results를 통해 결과에 서명을 전송하고, 서명이 성공하면 resultId와 signedToken을 GAME_COMPLETED에 포함합니다. 백엔드에서는 파트너 서버 키를 사용하여 해당 토큰을 검증한 후 보상을 지급할 수 있습니다.
두 가지 postMessage 형식
라이프사이클 이벤트 평평한 물체를 사용하여 event: "GAME_STARTED" or event: "GAME_COMPLETED". 게임플레이 이벤트 데이터를 래핑합니다 version: 1 중첩된 payload. 항상 필터 기능을 켜세요 data.source === "gamesiknow".
대부분의 통합은 네 가지 결정으로 이루어집니다. 도메인 등록, 토큰 생성, iframe 설치, 그리고 시작 및 완료 이벤트 수신입니다.
Games I Know 및 embed을 호스팅할 모든 도메인을 추가하세요. 도메인은 정규화되어 example.com과 www.example.com이 일관되게 처리됩니다.
각 웹사이트마다 별도의 embed 토큰을 생성하세요. 이렇게 하면 분석 데이터가 깔끔하게 유지되고 향후 도메인 기반 가격 책정을 위한 계정 준비가 완료됩니다.
iframe 또는 반응형 래퍼를 CMS 사용자 지정 HTML 블록, 웹사이트 빌더 embed 영역 또는 사용자 지정 프런트엔드 템플릿에 복사하세요.
상위 페이지에서 GAME_STARTED 및 GAME_COMPLETED postMessage 이벤트를 처리하여 경기 상태와 승자 정보를 표시하세요. 보상을 지급하기 전에 백엔드에서 서명된 결과를 파트너 서버 키로 확인하세요.
너비
embed이 사용 가능한 콘텐츠 열을 채우도록 100%를 사용하십시오.
키
대부분의 게임에서는 640px가 적합합니다. Tic Tac Toe도 600px에서 작동합니다. 자동 크기 조정을 위해 준비 이벤트의 payload.embedHeight를 사용하세요.
계략
/embed/tic-tac-toe/frame/, /embed/four-in-a-row/frame/, /embed/bingo/frame/, 또는 /embed/i-know/frame/을 사용하세요.
방법
플레이어 선택 모드를 생략하거나, embed이 먼저 AI을 요청하도록 하려면 mode=ai를 전달하세요.
플레이어는 AI 할당량이 있을 경우 게임 내에서 경기 유형을 선택합니다.
<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>먼저 AI을 요청합니다. 할당량이 소진되면 PvP으로 조용히 전환됩니다.
<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>프레임 URL은 /embed/{gameSlug}/frame/을 사용합니다. 게임플레이가 없는 SEO 랜딩 페이지는 /embed/{gameSlug}/에 게시되어 있습니다.
| 매개변수 | 필수의 | 설명 |
|---|---|---|
| 세입자 ID | 예 | Games I Know 파트너 대시보드에서 가져온 파트너 테넌트 ID입니다. 기존 통합의 경우 partnerId로도 사용할 수 있습니다. |
| 방법 | 아니요 | AI로 설정하여 강제로 AI 모드를 요청합니다. 서버 측 할당량 및 도메인 규칙은 여전히 적용됩니다. AI을 사용할 수 없는 경우 플레이어 대 플레이어 모드로 전환됩니다. |
| 캠페인ID | 아니요 | 선택 사항인 캠페인 라벨은 postMessage 이벤트에 반영되고 A/B 테스트 또는 페이지 수준 세분화를 위해 파트너 분석에 저장됩니다. |
동일한 계약이 Tic Tac Toe, Four in a Row, Bingo, I Know 및 향후 embed 릴리스에 적용됩니다.
규칙 1
필터 소스
data.source가 gamesiknow가 아닌 경우 메시지를 무시하세요.
규칙 2
핸들 라이프사이클
경기 상태, 승자 이름 및 결과는 GAME_STARTED 및 GAME_COMPLETED를 사용하십시오.
규칙 3
보상을 받으려면 인증하세요.
보상을 지급하기 전에 resultId와 signedToken을 백엔드로 전달하세요.
| 이벤트 | 발사될 때 | 체재 | 주요 필드 |
|---|---|---|---|
| 준비가 된 | Embed이 초기화되고 구성이 로드되었습니다. | 모든 게임에 대해 게임플레이(버전 1)를 제공하거나, 일부 라이프사이클 래퍼의 경우 평면 버전을 제공합니다. | matchId, 모드, embed높이 |
| 게임 시작됨 | 모든 embeddable 게임(현재 및 향후). 경기가 시작될 때(예: 첫 번째 수 또는 AI 라운드 시작 시) 실행됩니다. | 평면 수명주기 | game, PartnerId, CampaignId, mode, matchId(게임플레이 스트림을 통해 암시적) |
| 게임 완료 | 경기 종료 시 모든 embeddable 게임 정보를 포함합니다. 결과, 승자, 승자 플레이어 이름, 플레이어 수를 포함하여 상위 페이지에서 결과를 즉시 표시할 수 있도록 합니다. 서버 측 서명이 성공한 경우 resultId와 signedToken도 포함합니다. | 평면 수명주기 | 결과, 우승자, 우승자 선수 이름, 우승자 선수 ID, 참가 선수 수, 점수, 소요 시간(초), 결과 ID, 서명된 토큰 |
| 전체 화면 삽입 변경 | 플레이어는 전체 화면 모드를 전환합니다. | 평면 수명주기 | 페이로드.활성 부울 |
모양: { source, game, version: 1, event, payload }
모든 embeddable 게임 게시물 GAME_COMPLETED 부모에게 outcome, winner, 그리고 players 경기가 종료되었을 때. 계약이 성공적으로 체결되었을 때. GAME_COMPLETED 또한 다음을 포함합니다 resultId 그리고 signedToken 백엔드 검증을 위해.
{
"source": "gamesiknow",
"event": "GAME_STARTED",
"game": "tic-tac-toe",
"partnerId": "partner_your_tenant",
"campaignId": "homepage-widget",
"mode": "ai"
}{
"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..."
}플레이어_1
첫 번째 인간 플레이어가 승리했습니다.
플레이어_2
두 번째 인간 플레이어가 승리했습니다.
ai_bot
AI 상대방이 승리했습니다.
그리다
승자 없음.
Tic Tac Toe 및 Four in a Row에서만 지원됩니다. 게임 슬러그와 액션을 사용하여 iframe 콘텐츠 창을 대상으로 지정하십시오.
// 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"
);이 리스너를 iframe이 호스팅되는 페이지에 복사하세요. 이 리스너는 준비 상태, 게임 시작, 게임 플레이 이벤트, 서명된 완료 및 전체 화면 변경을 처리합니다.
출처별로 필터링하고, 경기 중 승자 UI 및 게임플레이 이벤트에 대해 GAME_STARTED 및 GAME_COMPLETED를 처리합니다.
/**
* 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`;
}통합 체크리스트
승자를 표시하려면 상위 페이지에 GAME_COMPLETED를 사용하세요. 보상 지급을 위해서는 백엔드에서 파트너 서버 키를 사용하여 서명된 결과를 확인하세요. 브라우저에서 verify JavaScript을 호출하지 마세요.
서버 측 전용입니다. GAME_COMPLETED에서 resultId와 signedToken을 사용하여 Authorization: Bearer gik_psk_… 형식으로 인증하세요.
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.{
"ok": true,
"resultId": "res_abc123xyz",
"partnerId": "partner_your_tenant",
"gameSlug": "tic-tac-toe",
"outcome": "player_1",
"score": 100,
"durationSeconds": 24
}백엔드는 상위 페이지에서 토큰을 수신하고, Games I Know으로 검증한 후 보상을 지급합니다.
// 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 });
});Games I Know은 iframe이 로드되고 플레이어가 상호 작용할 때 이러한 이벤트를 자동으로 기록합니다. 이러한 이벤트는 파트너 대시보드에 표시됩니다. 동일한 데이터를 자체 데이터베이스로 가져오려면 설치 페이지에서 파트너 서버 키를 생성하고 백엔드 서버에서만 GET /partners/analytics를 호출하십시오.
파트너 대시보드 → 설치에서 파트너 서버 키를 생성하세요. 생성된 키를 서버 비밀로 저장합니다. 아래 쿼리 매개변수를 사용하여 내보내기를 필터링하세요.
GET https://api.gamesiknow.com/partners/analytics
인증: Bearer gik_psk_your_secret_key
선택적 쿼리 매개변수:
domain 등록된 웹사이트 호스트 이름(예: example.com)
campaignId iframe의 campaignId 매개변수 값
gameSlug tic-tac-toe | four-in-a-row | bingo | i-know
from 시작 날짜(UTC, YYYY-MM-DD)
to 종료 날짜(UTC, YYYY-MM-DD)
예시:
/partners/analytics?domain=www.example.com&gameSlug=tic-tac-toe&from=2026-05-01&to=2026-05-31
백엔드 서버에서만 호출하십시오. 파트너 서버 키를 브라우저에 JavaScript 노출하지 마십시오.모든 embeddable 게임은 동일한 핵심 이벤트를 전송합니다. 아래에서 각 게임별 타이밍 및 추가 기능을 비교하세요.
| 게임 | 게임 시작됨 | 완료 신호 | 서명함 | 강제 AI | Height | 부모 명령 |
|---|---|---|---|---|---|---|
| Tic Tac Toe | 첫 번째 움직임 또는 AI 시작 | 게임 완료 | 예 | 예 | 640px | 리셋, 상태 가져오기 |
| Four in a Row | 첫 번째 움직임 또는 AI 시작 | 게임 완료 | 예 | 예 | 640px | 리셋, 상태 가져오기 |
| Bingo | 경기 시작(AI 또는 PvP) | 게임 완료 | 예 | 예 | 640px | 아직 없음 |
| I Know | 경기 시작(AI 또는 PvP) | 게임 완료 | 예 | 예 | 640px | 아직 없음 |
이 페이지는 기술 참조 자료입니다. 플랫폼별 설치 단계 또는 수직 배치 관련 조언이 필요할 때 이 가이드를 활용하세요. 모든 가이드는 위에 설명된 것과 동일한 iframe 및 이벤트 모델을 사용합니다.
Framework-specific iframe placement, event listeners, and production notes.
Copy-paste embed guides for no-code and low-code site builders.
Placement and UX recommendations for common website types.
iframe 게임, HTML5 위젯 또는 무료 embeddable 게임과 같은 일반 개요 페이지를 찾고 계신가요? 모두 살펴보세요. embed 허브의 가이드.
통합 세부 정보, 현재 게임 지원, 명령어, 서명된 결과 및 향후 게임 호환성에 대한 답변입니다.
네. Games I Know 및 embed은 표준 iframe HTML을 사용하므로 WordPress 사용자 지정 HTML 블록, Webflow embed 요소, Wix 및 Squarespace 사용자 지정 코드 영역, 정적 HTML, React, Next.js 및 기타 사용자 지정 사이트에서 작동합니다. 먼저 파트너 대시보드에서 웹사이트 도메인을 등록한 다음 생성된 프레임 스니펫을 게임이 표시될 페이지에 붙여넣으세요.
/embed/{gameSlug}/는 게임 embed의 공개 랜딩 페이지입니다. /embed/{gameSlug}/frame/은 웹사이트에 붙여넣어야 할 iframe 런타임입니다. iframe 코드에서는 항상 /frame/ URL을 사용해야 합니다. 이 URL은 플레이 가능한 게임을 로드하고, 테넌트와 도메인의 유효성을 검사하며, 상위 페이지 이벤트를 전송합니다.
네. Games I Know 및 iframe 게임은 모바일, 태블릿, 노트북 및 데스크톱 브라우저에 최적화되어 있습니다. 대부분의 embed에는 width="100%"를 사용하고 높이는 약 640px로 설정하는 것이 좋습니다. 또한, 부모 페이지에서 iframe의 크기를 자동으로 조정하도록 하려면 ready 이벤트를 수신하고 payload.embedHeight를 사용할 수 있습니다.
Games I Know, iframe, embed은 embed 베타 기간 동안 무료로 제공됩니다. 시작하는 데 신용 카드 정보가 필요하지 않으며, 현재 베타 버전 embed에는 광고가 포함되어 있지 않습니다. 무료 파트너 계정을 만들고 도메인을 등록한 후 대시보드에서 iframe 스니펫을 생성하세요.
예. 파트너 계정은 테넌트 ID와 도메인 제한이 있는 iframe 스니펫을 제공합니다. iframe은 프레임 URL과 함께 테넌트 ID를 전송하여 Games I Know이 파트너, 허용된 도메인, 게임 액세스, AI 할당량, 분석 캠페인 및 결과 검증 흐름을 확인할 수 있도록 합니다.
embed은 도메인 제한이 있습니다. 누군가 iframe 스니펫을 무단 웹사이트에 복사하면 Games I Know이 요청 출처를 파트너 계정에 구성된 도메인과 비교하여 승인되지 않은 사용을 차단합니다. 웹사이트 또는 캠페인별로 더 깔끔한 분석을 원할 경우 별도의 캠페인 ID를 사용하세요.
현재 Tic Tac Toe, Four in a Row, Bingo, I Know은 iframe 및 embed를 지원합니다. 각 게임은 준비 상태, 게임 시작, 게임 플레이, 완료, 승자 데이터, 분석 및 결과 검증을 위한 표준 embed 이벤트 계약을 전송합니다. 새로운 embed 지원 게임도 동일한 이벤트 패턴을 따를 것으로 예상되므로 파트너는 통합을 다시 구축할 필요가 없습니다.
모든 embeddable 게임은 두 가지 postMessage 형식을 사용합니다. 라이프사이클 이벤트는 source: gamesiknow와 ready, GAME_STARTED, GAME_COMPLETED, EMBED_FULLSCREEN_CHANGE와 같은 이벤트 값을 가진 평면 형태를 사용합니다. 게임플레이 이벤트는 버전 1을 사용하며 ready, mode_change, move, reset, undo, state와 같은 중첩된 이벤트 이름을 가집니다. 항상 data.source === "gamesiknow"로 필터링하십시오.
네. 경기가 시작되면 GAME_STARTED 이벤트를 수신하고, 경기 중에는 이동 및 모드 변경과 같은 게임플레이 이벤트를 활용하며, 경기가 종료되면 GAME_COMPLETED 이벤트를 수신합니다. GAME_COMPLETED 이벤트에는 결과, 승자, 참가 선수, 점수, 경기 시간, 그리고 서명이 가능한 경우 결과 식별자가 포함됩니다. 서버 측 분석 기능은 또한 로드, 시작, 완료, 차단된 시도 및 CTA 클릭 횟수를 기록합니다.
경기가 종료되면 GAME_COMPLETED 이벤트를 사용하세요. 모든 embeddable 게임은 결과, 승자, 승자 플레이어 이름, 플레이어 수를 포함하는 이 라이프사이클 이벤트를 전송합니다. GAME_COMPLETED 이벤트에 resultId와 signedToken이 포함된 경우, 해당 정보를 백엔드로 전달하고 파트너 서버 키를 사용하여 POST /embed/results/verify를 호출한 후 보상이나 크레딧을 지급하세요.
iframe을 호스팅하는 페이지에 `window.addEventListener("message", handler)`를 추가합니다. 핸들러에서는 `event.data.source === "gamesiknow"`인 경우를 제외하고는 메시지를 무시합니다. 라이프사이클 이벤트의 경우 `event.data.event`를 기준으로 분기하고, 게임플레이 이벤트의 경우 `event.data.event`와 `event.data.version`이 모두 1인 경우를 기준으로 분기합니다. 선택적으로 `event.origin`을 허용된 `Games I Know` 출처와 비교하여 유효성을 검사할 수 있습니다.
상위 페이지에서 GAME_COMPLETED를 사용하여 승자를 즉시 표시하세요(결과, 승자, 승자 플레이어 이름, 플레이어). 보상을 지급하려면 GAME_COMPLETED에서 resultId와 signedToken을 백엔드로 전송한 다음, 대시보드에서 파트너 서버 키를 사용하여 Authorization: Bearer gik_psk_… 형식으로 POST /embed/results/verify를 호출하세요. verify 엔드포인트는 서버 측에서만 작동하며, 브라우저에서 JavaScript로 호출해서는 안 됩니다. 검증이 완료된 후에만 보상을 지급하세요.
필수: tenantId(파트너 테넌트 ID). 선택 사항: mode=ai는 할당량에 따라 AI 모드를 강제로 요청하는 데 사용되며, campaignId는 분석을 세분화하는 데 사용됩니다. 프레임 URL은 /embed/{gameSlug}/frame/?tenantId=YOUR_TENANT_ID 형식을 따릅니다.
네. iframe URL에 mode=ai를 추가하면 AI 모드를 먼저 요청하게 됩니다. 서버 측 할당량 및 도메인 규칙은 여전히 적용되므로, AI 모드를 사용할 수 없거나 할당량이 소진된 경우 embed은 플레이어 선택 또는 플레이어 대 플레이어 모드로 전환됩니다.
Tic Tac Toe 및 Four in a Row은 게임 슬러그로 게임을 설정하고 액션을 reset 또는 get_state로 설정한 부모 메시지를 수락합니다. iframe은 게임 플레이 상태 이벤트로 응답합니다. 다른 embed 게임들은 아직 부모 명령을 노출하지 않습니다.
토큰을 생성하기 전에 웹사이트 도메인이 활성화되어 있는지 확인하십시오.
웹사이트 또는 캠페인 그룹마다 별도의 토큰이나 캠페인 ID를 사용하십시오.
상위 페이지에서 GAME_STARTED 및 GAME_COMPLETED 이벤트를 수신합니다.
embed 내부에 Games I Know 브랜딩이 보이도록 유지하십시오.
상금이나 크레딧을 지급하기 전에 백엔드에서 서명된 결과를 확인하십시오.
테스트는 AI 모드를 강제로 사용하고, AI 할당량이 소진되면 PvP 모드로 대체합니다.
웹사이트 주소, CMS, 그리고 원하는 게임 배치 위치를 알려주세요. 이벤트 배선 설정을 함께 검토해 드리겠습니다.