Games I Know logoGames I Know
Embed oyunlarıDokümantasyon

Embed API dokümanlar

embed'ı oynatarak öğrenin, ardından olayları bağlayın.

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.
1. Önce öğrenin.

Canlı demo: etkinlikleri oynayın ve inceleyin

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.

2. Hızlı Başlangıç

Sıfırdan çalışmaya embed

Oyunun web sitenizde nerede görünmesi gerektiğini zaten biliyorsanız bu yolu kullanın.

  1. 1

    İş ortağı hesabı oluşturun

    iframe'ı barındıracak web sitesi alan adını ekleyin.

    Bir sonraki adıma geçin
  2. 2

    Çerçeve rotasını kurun.

    TenantId'nizle birlikte /embed/{gameSlug}/frame/ kullanın. SEO açılış sayfasını iframe ile işaretlemeyin.

    Bir sonraki adıma geçin
  3. 3

    Ebeveynlerden gelen mesajları dinleyin.

    data.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çin
  4. 4

    Tamamlanan sonuçları doğrulayın.

    Kredi, ö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
Başlangıç iframe

İş ortağı kontrol panelinden gerçek tenantId'nizi kullanın.

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

embed nasıl çalışır?

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

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

Adım 2

Embed kiracıyı ve etki alanını doğrular

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

Embed hazır hale geliyor

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

Oyuncu maça başlıyor

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

Oyun içi etkinlikler akışı

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

Maç, kazananın bilgileriyle tamamlandı.

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

4. Kurulum

İş ortağı kurulumu ve iframe kod parçacıkları

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

Her web sitesini kaydedin.

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.

Bir etki alanı belirteci oluşturun

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'ı yükleyin

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.

Olayları dinleyin ve sonuçları doğrulayı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.

Önerilen iframe ayarları

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.

Normal iframe

Oyuncu, AI kotası mevcut olduğunda oyun içinde maç türünü seçer.

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>
Zorunlu AI iframe

Önce AI'ı talep eder. Kota dolduğunda sessizce PvP'e geri döner.

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. Yapılandırma

iframe URL parametreleri

Çerçeve URL'leri /embed/{gameSlug}/frame/ kullanır. Oynanış içermeyen SEO açılış sayfaları /embed/{gameSlug}/ adresinde yayınlanıyor.

ParametreGerekliTanım
kiracı kimliğiEvetGames I Know iş ortağı kontrol panelinden iş ortağı kiracı kimliğiniz. Eski entegrasyonlar için partnerId olarak da kabul edilir.
modHAYIRZorunlu 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ğiHAYIRİ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.
6. Etkinlikler

postMessage olay referansı

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.

Yaşam döngüsü olayları

EtkinlikAteş ettiğindeBiçimAnahtar alanlar
hazırEmbed 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ŞLADIHer 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 TAMAMLANDIHer 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ÖMMEOyuncu, embed tam ekran modunda geçiş yapar.Düz yaşam döngüsüyük.aktif boolean

Oyun içi olaylar

Şekil: { source, game, version: 1, event, payload }

  • hazır - Sürüm 1 zarfıyla yaşam döngüsü hazırlığıyla aynı.
  • mod_değişimi - Oyuncu PvP, AI seçeneklerinden birini seçer veya mod seçimine geri döner.
  • taşınmak - Bir hamle veya eylem gerçekleşti (oyun tahtası hücresi, disk düşürme, bingo çağrısı, bilgi yarışması sorusuna cevap verme).
  • sıfırlamak - Tahta veya tur sıfırlama.
  • geri al - Son hamle geri alındı (yalnızca Tic Tac Toe).
  • durum - Üst öğenin get_state komutuna verilen yanıt (Tic Tac Toe, Four in a Row).

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.

OYUN_BAŞLADI örneği
json
{
  "source": "gamesiknow",
  "event": "GAME_STARTED",
  "game": "tic-tac-toe",
  "partnerId": "partner_your_tenant",
  "campaignId": "homepage-widget",
  "mode": "ai"
}
OYUN TAMAMLANDI örneği
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..."
}

Sonuç değerleri

oyuncu_1

İlk insan oyuncu kazandı.

oyuncu_2

İkinci insan oyuncu kazandı.

yapay zeka botu

AI rakibi kazandı.

çizmek

Kazanan yok.

Parent-toiframe komutları

Yalnızca Tic Tac Toe ve Four in a Row'de desteklenir. Oyun slug'ı ve eylemiyle iframe içerik penceresini hedefleyin.

Sıfırla veya istek durumu
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. Uygulama

Örnek entegrasyon dinleyicisi

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.

Birleşik üst sayfa dinleyicisi

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.

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

Entegrasyon kontrol listesi

  • GAME_STARTED olayında devam eden oyunu gösteren bir banner görüntüle.
  • GAME_COMPLETED.winner veya GAME_COMPLETED.winnerPlayerName'den kazananın adını göster.
  • resultId ve signedToken'ı arka uç sunucunuza iletin; ödülleri vermeden önce bir iş ortağı sunucu anahtarıyla doğrulayın.
  • İsteğe bağlı olarak, event.origin'i Games I Know sunucunuzla karşılaştırarak doğrulayın.
8. Güvenlik

Doğrulanmış oyun sonuçları API

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.

İmzalı sonucu doğrulayın

Yalnızca sunucu tarafında. Authorization: Bearer gik_psk_… ile GAME_COMPLETED'dan resultId ve signedToken'ı kullanın.

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.
Yanıt doğrulama işlemi başarıyla tamamlandı.
json
{
  "ok": true,
  "resultId": "res_abc123xyz",
  "partnerId": "partner_your_tenant",
  "gameSlug": "tic-tac-toe",
  "outcome": "player_1",
  "score": 100,
  "durationSeconds": 24
}
Örnek arka uç ödül işleyici

Arka uç sunucunuz üst sayfadan token'ları alır, Games I Know ile doğrular ve ardından ödülü verir.

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

Sunucu tarafı analiz olayları

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.

  • embed_yüklendi - Yapılandırma doğrulandığında veya iframe çalıştırılmasına izin verildiğinde her embed oyunu oynanabilir.
  • oyun_başladı - Oyun başladığında her embed oynanabilir oyun ( iframe tarafından otomatik olarak kaydedilir).
  • oyun tamamlandı - POST /embed/results başarılı olduğunda her embed oynanabilir oyun.
  • yapay zeka eşleşmesi başladı - AI kotası POST /embed/ai-matches/start aracılığıyla tüketildi.
  • embed_engellendi - Alan adına, iş ortağına veya oyuna erişim engellendi.
Analiz verilerini arka uç sisteminize aktarın (iş ortağı sunucu anahtarı gereklidir)

İş 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.

http
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.
10. Katalog

Oyun yetenek matrisi

Her embeddable oyunu aynı temel olayları gönderir. Aşağıda her oyun için zamanlama ve ek özellikleri karşılaştırın.

OyunOYUN BAŞLADITamamlama sinyaliİmzalıZorunlu AIHeightÜst komutlar
Tic Tac Toeİlk hamle veya AI başlangıcıOYUN TAMAMLANDIEvetEvet640pxsıfırla, durumu al
Four in a Rowİlk hamle veya AI başlangıcıOYUN TAMAMLANDIEvetEvet640pxsıfırla, durumu al
BingoMaç başlıyor (AI veya PvP)OYUN TAMAMLANDIEvetEvet640pxHenüz yok
I KnowMaç başlıyor (AI veya PvP)OYUN TAMAMLANDIEvetEvet640pxHenüz yok
11. Kılavuzlar

Platform ve kullanım senaryosu kurulum kılavuzları

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.

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.

Oyunlar, HTML5 widget'ları veya ücretsiz oynanabilir oyunlar gibi genel bakış sayfaları mı arıyorsunuz? Tümünü inceleyin. Hub'daki embed kılavuzları.

12. Destek

Sıkça sorulan sorular

Entegrasyon detayları, mevcut oyun desteği, komutlar, imzalı sonuçlar ve gelecekteki oyun uyumluluğu hakkında yanıtlar.

WordPress, Webflow, Wix, Squarespace veya özel bir web sitesinde oyun yayınlayabilir miyim?

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}/ ile /embed/{gameSlug}/frame/ arasındaki fark nedir?

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

Games I Know iframe oyunları mobilde ve masaüstünde çalışıyor mu?

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.

embed Games I Know oyunlarının maliyeti ne kadar?

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.

İş ortağı hesabına veya embed anahtarına ihtiyacım var mı?

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.

Birisi iframe kodumu kopyalayıp başka bir web sitesinde kullanabilir mi?

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.

Hangi Games I Know oyunları embed edilebilir?

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.

Games I Know üst sayfaya hangi postMessage olaylarını gönderir?

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.

embedded bir oyunda başlangıçları, tamamlamaları, kazananları ve oyuncu sonuçlarını takip edebilir miyim?

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.

Tüm oyunlar için hangi tamamlama etkinliğini kullanmalıyım?

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.

Web sitemde iframe olayından embed olaylarını nasıl dinleyebilirim?

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.

Kredi, ödül veya kilit açma işlemlerini gerçekleştirmeden önce oyun sonuçlarını nasıl doğrulayabilirim?

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.

Games I Know hangi iframe URL parametrelerini destekler?

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.

embed ile başlatılan bir oyunu AI modunda başlatmaya zorlayabilir miyim?

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.

Games I Know ve iframe'e komut gönderebilir miyim?

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.

Üretim kontrol listesi

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.

İş ortağı entegrasyonu konusunda yardıma mı ihtiyacınız var?

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.

Destek ile iletişime geçin.