Adım 1
Üst sayfa iframe'ı yüklüyor.
Siteniz, tenantId ve isteğe bağlı mode veya campaignId sorgu parametreleriyle /embed/{gameSlug}/frame/ adresine işaret eden bir iframe oluşturur.
Embed API dokümanlar
Canlı demo ile başlayın, üst sayfadaki olayları izleyin, ardından iframe ve dinleyici kalıplarını sitenize kopyalayın. Aynı akış her Games I Know iframe oyunu için geçerlidir.
Bir embed anahtarı alın.Tic Tac Toe ve iframe zaman dilimlerinde bir hamle yapın. Olay günlüğü, GAME_STARTED, oyun içi olaylar ve tamamlama bildirimlerini, üst sayfanın bunları aldığı şekilde gösterir.
Platform genelinde etkinlik sözleşmesi
Games I Know, platformdaki her oyun için embed olaylarını gönderir: bugün Tic Tac Toe, Four in a Row, Bingo ve I Know ve gelecekte ekleyeceğimiz her yeni embed oynanabilir oyun için. Her oyun için ayrı bir entegrasyona ihtiyacınız yok. Standart sözleşmeye (hazır, OYUN BAŞLADI, oyun içi olaylar, kazanan verileriyle tamamlanma ve imzalı sonuçlar) karşı tek bir üst sayfa dinleyicisi oluşturun ve bunu mevcut ve gelecek tüm embed oyunlarında yeniden kullanın.
Oyunun web sitenizde nerede görünmesi gerektiğini zaten biliyorsanız bu yolu kullanın.
iframe'ı barındıracak web sitesi alan adını ekleyin.
Bir sonraki adıma geçinTenantId'nizle birlikte /embed/{gameSlug}/frame/ kullanın. SEO açılış sayfasını iframe ile işaretlemeyin.
Bir sonraki adıma geçindata.source === "gamesiknow" filtresini uygulayın, ardından GAME_STARTED, GAME_COMPLETED ve sürüm 1 oyun olaylarını işleyin.
Bir sonraki adıma geçinKredi, ödül veya kilit açma işlemlerini gerçekleştirmeden önce resultId ve signedToken'ı arka uç sunucunuza gönderin.
Bir sonraki adıma geçinİş ortağı kontrol panelinden gerçek tenantId'nizi kullanın.
<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>Bir Games I Know embed, alan adınızda korumalı bir iframe'dir. Kiracınızı ve alan adınızı API'e göre doğrular, ardından window.postMessage aracılığıyla üst sayfanızla iletişim kurar.
Adım 1
Siteniz, tenantId ve isteğe bağlı mode veya campaignId sorgu parametreleriyle /embed/{gameSlug}/frame/ adresine işaret eden bir iframe oluşturur.
Adım 2
iframe, GET /embed/config (veya /api/embed/config) isteğini çağırır. Games I Know, iş ortağı hesabınızı, izin verilen etki alanını, oyun erişimini ve AI kotasını kontrol eder. Sunucu tarafında embed_ yüklenen bir analiz olayı kaydedilir.
Adım 3
iframe, yükleme durumunu göstermenizi veya embedHeight yükünü kullanarak çerçeveyi yeniden boyutlandırmanızı sağlamak için üst sayfaya bir hazır olayı gönderir.
Adım 4
Oyun başladığında, etkinleştirilebilen her oyun, ana sayfaya GAME_STARTED mesajını gönderir ve sunucu tarafında otomatik olarak game_started kaydını tutar. Web sitenizden herhangi bir analitik fonksiyonu çağırmazsınız.
Adım 5
Maç sırasında, hareket ve mod değiştirme gibi sürüm 1 oyun olayları kullanıcı arayüzünüzü veya dahili analizlerinizi günceller.
Adım 6
Tamamlandığında, her embed ile işaretlenebilen oyun, sonucu, kazananı ve oyuncuları içeren GAME_COMPLETED mesajını üst sunucuya gönderir, böylece sayfanız sonuçları hemen gösterebilir. iframe ayrıca sonucu POST /embed/results aracılığıyla imzalar ve imzalama başarılı olduğunda resultId ve signedToken'ı GAME_COMPLETED mesajına ekler. Arka uç sunucunuz, ödülleri vermeden önce bu token'ları bir iş ortağı sunucu anahtarıyla doğrulayabilir.
İki farklı postMessage formatı
Yaşam döngüsü olayları düz bir nesne kullanın event: "GAME_STARTED" or event: "GAME_COMPLETED". Oyun içi olaylar verileri sarmala version: 1 iç içe geçmiş ile payload. Her zaman filtrele data.source === "gamesiknow".
Çoğu entegrasyon dört aşamadan oluşur: etki alanını kaydetmek, bir belirteç oluşturmak, iframe'ı yüklemek ve ardından başlatma ve tamamlama olaylarını dinlemek.
Games I Know ve embed barındıracak her alan adını ekleyin. Alan adları normalize edildiği için example.com ve www.example.com tutarlı bir şekilde ele alınır.
Her web sitesi için ayrı bir embed belirteci oluşturun. Bu, analizlerin temiz kalmasını sağlar ve hesabı gelecekteki alan adı tabanlı fiyatlandırmaya hazırlar.
iframe veya duyarlı sarmalayıcıyı CMS özel HTML bloğunuza, web sitesi oluşturucu embed alanına veya özel ön uç şablonunuza kopyalayın.
Ana sayfanızda GAME_STARTED ve GAME_COMPLETED postMessage olaylarını işleyerek maç durumunu ve kazanan bilgilerini gösterin. Ödülleri vermeden önce arka uçtan gelen imzalı sonuçları bir iş ortağı sunucu anahtarıyla doğrulayın.
Genişlik
embed'ın kullanılabilir içerik sütununu doldurması için %100 kullanın.
Yükseklik
Çoğu oyun için 640 piksel. Tic Tac Toe ayrıca 600 pikselde de çalışır. Otomatik yeniden boyutlandırma için hazır olaylardan payload.embedHeight değerini kullanın.
Oyunlar
/embed/tic-tac-toe/frame/, /embed/four-in-a-row/frame/, /embed/bingo/frame/ veya /embed/i-know/frame/ kullanın.
Mod
Oyuncu seçimi için modu atlayın veya embed'ın önce AI'i istemesini istiyorsanız mode=ai parametresini geçirin.
Oyuncu, AI kotası mevcut olduğunda oyun içinde maç türünü seçer.
<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>Önce AI'ı talep eder. Kota dolduğunda sessizce PvP'e geri döner.
<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>Çerçeve URL'leri /embed/{gameSlug}/frame/ kullanır. Oynanış içermeyen SEO açılış sayfaları /embed/{gameSlug}/ adresinde yayınlanıyor.
| Parametre | Gerekli | Tanım |
|---|---|---|
| kiracı kimliği | Evet | Games I Know iş ortağı kontrol panelinden iş ortağı kiracı kimliğiniz. Eski entegrasyonlar için partnerId olarak da kabul edilir. |
| mod | HAYIR | Zorunlu AI modunu istemek için yapay zekaya ayarlandı. Sunucu tarafındaki kota ve etki alanı kuralları geçerliliğini koruyor. AI kullanılamadığında oyuncuya karşı oyuncu moduna geri dönülüyor. |
| kampanyaKimliği | HAYIR | İsteğe bağlı kampanya etiketi, mesaj sonrası olaylarda tekrarlanır ve A/B testleri veya sayfa düzeyinde segmentasyon için iş ortağı analizlerinde saklanır. |
Aynı sözleşme Tic Tac Toe, Four in a Row, Bingo, I Know ve gelecek embed sürümleri için geçerlidir.
Kural 1
Filtre kaynağı
data.source değeri gamesiknow olmadığı sürece mesajları dikkate almayın.
Kural 2
Yaşam döngüsünü yönetin
Maç durumu, kazananın adı ve sonucu için GAME_STARTED ve GAME_COMPLETED ifadelerini kullanın.
Kural 3
Ödüller için doğrulama yapın
Ödülleri vermeden önce resultId ve signedToken'ı arka uç sunucunuza iletin.
| Etkinlik | Ateş ettiğinde | Biçim | Anahtar alanlar |
|---|---|---|---|
| hazır | Embed başlatıldı ve yapılandırma yüklendi. | Tüm oyunlar için oyun oynanışı (sürüm 1) veya bazı yaşam döngüsü sarmalayıcıları için düz yapı. | matchId, mod, embedHeight |
| OYUN BAŞLADI | Her embed oynanabilir oyun (mevcut ve gelecekteki). Bir maç başladığında tetiklenir (örneğin, ilk hamle veya AI tur başlangıcı). | Düz yaşam döngüsü | oyun, partnerId, CampaignId, mode, matchId (oyun akışı aracılığıyla örtülü) |
| OYUN TAMAMLANDI | Her embeddable oyunu, maç bittiğinde. Sonuç, kazanan, kazanan oyuncunun adı ve oyuncuları içerir, böylece üst sayfa sonuçları hemen gösterebilir. Ayrıca, sunucu tarafında imzalama başarılı olduğunda resultId ve signedToken'ı da içerir. | Düz yaşam döngüsü | sonuç, kazanan, kazananOyuncuAdı, kazananOyuncuKimliği, oyuncular, skor, süreSaniye, sonuçKimliği, imzalıToken |
| TAM EKRAN DEĞİŞİKLİĞİNİ GÖMME | Oyuncu, embed tam ekran modunda geçiş yapar. | Düz yaşam döngüsü | yük.aktif boolean |
Şekil: { source, game, version: 1, event, payload }
Her embeddable oyun gönderisi GAME_COMPLETED ebeveyne ile outcome, winner, Ve players Maç bittiğinde. İmzalama başarılı olduğunda, GAME_COMPLETED ayrıca şunları içerir resultId Ve signedToken Arka uç doğrulaması için.
{
"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..."
}oyuncu_1
İlk insan oyuncu kazandı.
oyuncu_2
İkinci insan oyuncu kazandı.
yapay zeka botu
AI rakibi kazandı.
çizmek
Kazanan yok.
Yalnızca Tic Tac Toe ve Four in a Row'de desteklenir. Oyun slug'ı ve eylemiyle iframe içerik penceresini hedefleyin.
// 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"
);Bu dinleyiciyi iframe'ı barındıran sayfaya kopyalayın. Hazır olma durumu, oyun başlangıcı, oyun içi olaylar, imzalı tamamlama ve tam ekran değişikliklerini yönetir.
Kaynağa göre filtrele, maç sırasında kazanan arayüzü ve oyun içi olaylar için GAME_STARTED ve GAME_COMPLETED olaylarını işle.
/**
* 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`;
}Entegrasyon kontrol listesi
Ana sayfada kimin kazandığını göstermek için GAME_COMPLETED ifadesini kullanın. Ödüller için, arka uç sunucunuzdan imzalı sonuçları bir iş ortağı sunucu anahtarıyla doğrulayın - asla tarayıcıdan JavaScript fonksiyonundan API doğrulama işlemini çağırmayın.
Yalnızca sunucu tarafında. Authorization: Bearer gik_psk_… ile GAME_COMPLETED'dan resultId ve signedToken'ı kullanın.
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
}Arka uç sunucunuz üst sayfadan token'ları alır, Games I Know ile doğrular ve ardından ödülü verir.
// 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 yüklendiğinde ve oyuncular etkileşime girdiğinde bu olayları otomatik olarak kaydeder. Bunlar iş ortağı kontrol panelinizde görünür. Aynı verileri kendi veritabanınıza çekmek için, Kurulum sayfasında bir iş ortağı sunucu anahtarı oluşturun ve yalnızca arka uç sunucunuzdan GET /partners/analytics isteğini çağırın.
İş Ortağı Kontrol Paneli → Yükle bölümünden bir iş ortağı sunucu anahtarı oluşturun. Bunu sunucu gizli anahtarı olarak saklayın. Dışa aktarmayı filtrelemek için aşağıdaki sorgu parametrelerini kullanın.
GET https://api.gamesiknow.com/partners/analytics
Yetkilendirme: Bearer gik_psk_your_secret_key
İsteğe bağlı sorgu parametreleri:
domain Kayıtlı web sitesi ana bilgisayar adı (example.com)
campaignId iframe campaignId parametrenizden gelen değer
gameSlug tic-tac-toe | four-in-a-row | bingo | i-know
from Başlangıç tarihi UTC (YYYY-MM-DD)
to Bitiş tarihi UTC (YYYY-MM-DD)
Örnek:
/partners/analytics?domain=www.example.com&gameSlug=tic-tac-toe&from=2026-05-01&to=2026-05-31
Yalnızca arka uç sunucunuzdan çağırın. İş ortağı sunucu anahtarınızı asla tarayıcıda JavaScript ifşa etmeyin.Her embeddable oyunu aynı temel olayları gönderir. Aşağıda her oyun için zamanlama ve ek özellikleri karşılaştırın.
| Oyun | OYUN BAŞLADI | Tamamlama sinyali | İmzalı | Zorunlu AI | Height | Üst komutlar |
|---|---|---|---|---|---|---|
| Tic Tac Toe | İlk hamle veya AI başlangıcı | OYUN TAMAMLANDI | Evet | Evet | 640px | sıfırla, durumu al |
| Four in a Row | İlk hamle veya AI başlangıcı | OYUN TAMAMLANDI | Evet | Evet | 640px | sıfırla, durumu al |
| Bingo | Maç başlıyor (AI veya PvP) | OYUN TAMAMLANDI | Evet | Evet | 640px | Henüz yok |
| I Know | Maç başlıyor (AI veya PvP) | OYUN TAMAMLANDI | Evet | Evet | 640px | Henüz yok |
Bu sayfa teknik referans sayfasıdır. Platforma özgü kurulum adımlarına veya dikey yerleştirme tavsiyelerine ihtiyaç duyduğunuzda bu kılavuzları kullanın. Tüm kılavuzlar yukarıda belgelenen aynı iframe ve olay modelini kullanır.
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.
Oyunlar, HTML5 widget'ları veya ücretsiz oynanabilir oyunlar gibi genel bakış sayfaları mı arıyorsunuz? Tümünü inceleyin. Hub'daki embed kılavuzları.
Entegrasyon detayları, mevcut oyun desteği, komutlar, imzalı sonuçlar ve gelecekteki oyun uyumluluğu hakkında yanıtlar.
Evet. Games I Know embed'ler standart iframe HTML kullanır, bu nedenle WordPress özel HTML bloklarında, Webflow embed öğelerinde, Wix ve Squarespace özel kod alanlarında, statik HTML'de, React'te, Next.js ve diğer özel sitelerde çalışırlar. Öncelikle iş ortağı kontrol panelinizde web sitesi alan adınızı kaydedin, ardından oluşturulan çerçeve kodunu oyunun görünmesi gereken sayfaya yapıştırın.
/embed/{gameSlug}/, embed adlı oyunun herkese açık açılış sayfasıdır. /embed/{gameSlug}/frame/, web sitenize yapıştırılması gereken iframe çalışma zamanıdır. iframe kodunda her zaman /frame/ URL'sini kullanın çünkü bu, oynanabilir oyunu yükler, kiracınızı ve alan adınızı doğrular ve üst sayfa olaylarını gönderir.
Evet. Games I Know iframe oyunları mobil, tablet, dizüstü bilgisayar ve masaüstü tarayıcılar için tasarlanmıştır. Çoğu embed için genişlik="100%" ve yaklaşık 640 piksel yükseklik önerilir. Ayrıca, ana sayfanızın iframe'yi otomatik olarak yeniden boyutlandırmasını istiyorsanız, hazır olayını dinleyebilir ve payload.embedHeight kullanabilirsiniz.
Games I Know, iframe ve embed beta sürümleri embed beta sürümü süresince ücretsizdir. Başlamak için kredi kartı gerekmez ve mevcut beta embed sürümleri reklam içermez. Ücretsiz bir iş ortağı hesabı oluşturun, alan adınızı kaydedin ve kontrol panelinden iframe kod parçasını oluşturun.
Evet. Bir iş ortağı hesabı size bir kiracı kimliği ve etki alanı kısıtlamalı iframe kod parçası verir. iframe, kiracı kimliğini çerçeve URL'siyle birlikte gönderir, böylece Games I Know iş ortağını, izin verilen etki alanını, oyun erişimini, AI kotasını, analiz kampanyasını ve sonuç doğrulama akışını doğrulayabilir.
embed alan adı kısıtlamalıdır. Birisi iframe kod parçacığınızı yetkisiz bir web sitesine kopyalarsa, Games I Know isteğin kaynağını iş ortağı hesabınız için yapılandırılmış alan adlarıyla karşılaştırır ve onaylanmamış kullanımı engeller. Web sitesi veya kampanya başına daha temiz analizler istediğinizde ayrı kampanya kimlikleri kullanın.
Tic Tac Toe, Four in a Row, Bingo ve I Know bugün iframe ve embed'ü desteklemektedir. Her oyun, hazır olma durumu, oyun başlangıcı, oynanış, tamamlanma, kazanan verileri, analizler ve sonuç doğrulama için standart embed olay sözleşmesini gönderir. Yeni embed oynanabilir oyunların aynı olay modelini izlemesi bekleniyor, bu nedenle ortakların entegrasyonlarını yeniden oluşturmalarına gerek yok.
Her embeddable oyunu iki postMessage formatı kullanır. Yaşam döngüsü olayları, kaynak: gamesiknow ve ready, GAME_STARTED, GAME_COMPLETED ve EMBED_FULLSCREEN_CHANGE gibi olay değerleriyle düz bir şekil kullanır. Oynanış olayları, ready, mode_change, move, reset, undo ve state gibi iç içe olay adlarıyla version: 1 kullanır. Her zaman data.source === "gamesiknow" filtresini kullanın.
Evet. Maç başladığında GAME_STARTED sinyalini dinleyin, oyun sırasında hareket ve mod değişikliği gibi oyun içi olayları kullanın ve maç bittiğinde GAME_COMPLETED sinyalini kullanın. GAME_COMPLETED sinyali, sonuç, kazanan, oyuncular, skor, süre ve imzalama özelliğinin bulunduğu durumlarda sonuç tanımlayıcılarını içerir. Sunucu tarafı analizleri ayrıca yüklemeleri, başlangıçları, tamamlamaları, engellenen girişimleri ve CTA tıklamalarını da kaydeder.
Bir maç bittiğinde GAME_COMPLETED olayını kullanın. Her embeddable oyunu, sonuç, kazanan, kazanan oyuncu adı ve oyuncularla birlikte bu yaşam döngüsü olayını gönderir. GAME_COMPLETED olayı resultId ve signedToken içeriyorsa, bunları arka uç sunucunuza iletin ve ödül veya kredi vermeden önce iş ortağı sunucu anahtarınızla POST /embed/results/verify isteğini gönderin.
iframe'i barındıran sayfaya window.addEventListener("message", handler) ekleyin. Handler'da, event.data.source === "gamesiknow" olmadığı sürece mesajları yok sayın. Yaşam döngüsü olayları için event.data.event'e, oyun içi olaylar için ise event.data.event artı event.data.version === 1'e göre dallanma yapın. İsteğe bağlı olarak, event.origin'i izin verilen Games I Know kaynağınıza göre doğrulayın.
Ana sayfada GAME_COMPLETED'ı kullanarak kimin kazandığını hemen gösterin (sonuç, kazanan, kazananOyuncuAdı, oyuncular). Ödüller için, GAME_COMPLETED'dan resultId ve signedToken'ı arka uç sunucunuza gönderin, ardından kontrol panelinizden bir iş ortağı sunucu anahtarı kullanarak Authorization: Bearer gik_psk_… ile POST /embed/results/verify isteğini çağırın. Doğrulama uç noktası yalnızca sunucu tarafındadır - asla tarayıcıdan çağırmayın JavaScript. Ödülleri yalnızca doğrulama başarılı olduktan sonra verin.
Gerekli: tenantId (iş ortağınızın kiracı kimliği). İsteğe bağlı: kota izin verdiğinde zorunlu AI modunu istemek için mode=ai ve analitik segmentasyonu için campaignId. Çerçeve URL'leri /embed/{gameSlug}/frame/?tenantId=YOUR_TENANT_ID şeklindedir.
Evet. Önce AI modunu istemek için iframe URL'sine mode=ai ekleyin. Sunucu tarafındaki kota ve alan adı kuralları hala geçerlidir, bu nedenle AI modu kullanılamadığında veya kota tükendiğinde embed oyuncu seçimine veya oyuncu vs oyuncu moduna geri dönebilir.
Tic Tac Toe ve Four in a Row, oyun adı oyun slug'ına ve eylem sıfırlama veya durum alma olarak ayarlanmış üst mesajları kabul eder. iframe, oyun içi durum olayına yanıt verir. Diğer embed oyunları henüz üst komutları kullanıma sunmamaktadır.
Token oluşturmadan önce web sitesi alan adının etkin olduğundan emin olun.
Her web sitesi veya kampanya grubu için ayrı bir belirteç veya kampanya kimliği kullanın.
Ana sayfada GAME_STARTED ve GAME_COMPLETED ifadelerini dinleyin.
embed içinde Games I Know markasının görünür kalmasını sağlayın.
Ödül veya kredi vermeden önce, imzalanmış sonuçları arka uç sisteminizde doğrulayın.
Test, AI kotası tükendiğinde PvP moduna geri dönülmesini ve AI modunun zorunlu olarak kullanılmasını sağlar.
Web sitesini, içerik yönetim sistemini (CMS) ve istediğiniz oyun yerleşimini paylaşın. embed olay bağlantılarınızı sizinle birlikte inceleyebiliriz.