Games I Know logoGames I Know
Embed खेलप्रलेखन

Embed API दस्तावेज़

embed को बजाकर सीखें, फिर इवेंट्स को कनेक्ट करें।

लाइव डेमो से शुरुआत करें, पैरेंट पेज के इवेंट्स देखें, फिर iframe और लिसनर पैटर्न को अपनी साइट में कॉपी करें। यही प्रक्रिया सभी Games I Know iframe गेम के लिए काम करती है।

embed कुंजी प्राप्त करें
1. पहले सीखें

लाइव डेमो: इवेंट्स चलाएं और उनका निरीक्षण करें

Tic Tac Toe iframe में एक गतिविधि करें। इवेंट लॉग में GAME_STARTED, गेमप्ले इवेंट और पूर्णता पेलोड ठीक उसी तरह दिखाई देते हैं जैसे किसी पैरेंट पेज को प्राप्त होते हैं।

प्लेटफ़ॉर्म-व्यापी इवेंट अनुबंध

Games I Know प्लेटफ़ॉर्म पर मौजूद हर गेम के लिए embed इवेंट भेजता है: आज के Tic Tac Toe, Four in a Row, Bingo और I Know के लिए, और भविष्य में जोड़े जाने वाले हर नए embed योग्य गेम के लिए। आपको हर गेम के लिए अलग से इंटीग्रेशन की ज़रूरत नहीं है। स्टैंडर्ड कॉन्ट्रैक्ट (रेडी, GAME_STARTED, गेमप्ले इवेंट, विजेता डेटा के साथ पूरा होना, और हस्ताक्षरित परिणाम) के लिए एक पैरेंट-पेज लिसनर बनाएं और इसे सभी मौजूदा और आने वाले embed गेम्स में इस्तेमाल करें।

2. त्वरित शुरुआत

शून्य से कार्यशील embed

इस तरीके का इस्तेमाल तब करें जब आपको पहले से पता हो कि गेम आपकी वेबसाइट पर कहां दिखना चाहिए।

  1. 1

    पार्टनर खाता बनाएं

    उस वेबसाइट डोमेन को जोड़ें जो iframe को होस्ट करेगा।

    अगले चरण पर जाएं
  2. 2

    फ्रेम रूट स्थापित करें

    अपने tenantId के साथ /embed/{gameSlug}/frame/ का उपयोग करें। SEO लैंडिंग पेज को iframe न करें।

    अगले चरण पर जाएं
  3. 3

    अभिभावकों के संदेशों को ध्यान से सुनें।

    data.source === "gamesiknow" पर फ़िल्टर करें, फिर GAME_STARTED, GAME_COMPLETED और version 1 गेमप्ले इवेंट्स को हैंडल करें।

    अगले चरण पर जाएं
  4. 4

    पूर्ण परिणामों का सत्यापन करें

    क्रेडिट, पुरस्कार या अनलॉक प्रदान करने से पहले resultId और signedToken को अपने बैकएंड पर भेजें।

    अगले चरण पर जाएं
स्टार्टर iframe

पार्टनर डैशबोर्ड से अपना वास्तविक टेनेंट आईडी इस्तेमाल करें।

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. वास्तुकला

embed कैसे काम करता है

Games I Know embed आपके डोमेन पर एक सैंडबॉक्स iframe है। यह API के विरुद्ध आपके टेनेंट और डोमेन को मान्य करता है, फिर window.postMessage के माध्यम से आपके पैरेंट पेज से संचार करता है।

चरण 1

पैरेंट पेज लोड हो रहा है iframe

आपकी साइट /embed/{gameSlug}/frame/ की ओर इंगित करने वाला iframe प्रस्तुत करती है, जिसमें tenantId और वैकल्पिक mode या campaignId क्वेरी पैरामीटर होते हैं।

चरण 2

Embed किरायेदार और डोमेन को मान्य करता है

iframe GET /embed/config (या /api/embed/config) को कॉल करता है। Games I Know आपके पार्टनर खाते, अनुमत डोमेन, गेम एक्सेस और AI कोटा की जाँच करता है। सर्वर-साइड embed लोडेड एनालिटिक्स इवेंट रिकॉर्ड किया जाता है।

चरण 3

Embed तैयार हो गया है

iframe पैरेंट पेज पर रेडी इवेंट पोस्ट करता है ताकि आप लोडिंग स्थिति दिखा सकें या पेलोड.embedहाइट का उपयोग करके फ्रेम का आकार बदल सकें।

चरण 4

खिलाड़ी मैच शुरू करता है

गेमप्ले शुरू होने पर, प्रत्येक embed योग्य गेम पैरेंट पेज पर GAME_STARTED पोस्ट करता है और सर्वर-साइड पर स्वचालित रूप से game_started रिकॉर्ड करता है। आप अपनी वेबसाइट से कोई भी एनालिटिक्स API कॉल नहीं करते हैं।

चरण 5

गेमप्ले इवेंट्स स्ट्रीम

मैच के दौरान, वर्जन 1 के गेमप्ले इवेंट जैसे कि मूव और मोड_चेंज आपके यूआई या आंतरिक एनालिटिक्स को अपडेट करते हैं।

चरण 6

विजेता के आंकड़ों के साथ मैच समाप्त हुआ

गेम पूरा होने पर, प्रत्येक embed योग्य गेम परिणाम, विजेता और खिलाड़ियों की जानकारी के साथ GAME_COMPLETED फ़ाइल पैरेंट सर्वर को भेजता है, ताकि आपका पेज तुरंत परिणाम दिखा सके। iframe सफल होने पर POST /embed/results के माध्यम से परिणाम को साइन भी करता है और GAME_COMPLETED में resultId और signedToken शामिल करता है। आपका बैकएंड पुरस्कार देने से पहले पार्टनर सर्वर कुंजी के साथ इन टोकन को सत्यापित कर सकता है।

दो पोस्टमैसेज प्रारूप

जीवनचक्र घटनाएँ एक सपाट वस्तु का उपयोग करें event: "GAME_STARTED" or event: "GAME_COMPLETED". गेमप्ले इवेंट्स डेटा को इसमें लपेटें version: 1 नेस्टेड के साथ payload. हमेशा फ़िल्टर चालू रखें data.source === "gamesiknow".

4. स्थापित करें

पार्टनर सेटअप और iframe स्निपेट्स

अधिकांश एकीकरण में चार निर्णय शामिल होते हैं: डोमेन को पंजीकृत करना, एक टोकन उत्पन्न करना, iframe को स्थापित करना, और फिर प्रारंभ और पूर्णता घटनाओं के लिए सुनना।

प्रत्येक वेबसाइट को पंजीकृत करें

उन सभी डोमेन को जोड़ें जो Games I Know और embed को होस्ट करेंगे। डोमेन को मानकीकृत किया गया है ताकि example.com और www.example.com को एक समान तरीके से संभाला जा सके।

डोमेन टोकन जनरेट करें

प्रत्येक वेबसाइट के लिए एक अलग embed टोकन बनाएं। इससे एनालिटिक्स साफ-सुथरा रहता है और भविष्य में डोमेन-आधारित मूल्य निर्धारण के लिए खाता तैयार हो जाता है।

iframe इंस्टॉल करें

iframe या रिस्पॉन्सिव रैपर को अपने CMS कस्टम HTML ब्लॉक, वेबसाइट बिल्डर embed एरिया या कस्टम फ्रंटएंड टेम्प्लेट में कॉपी करें।

घटनाओं पर ध्यान दें और परिणामों की पुष्टि करें।

मैच की स्थिति और विजेता का विवरण दिखाने के लिए अपने मुख्य पृष्ठ पर GAME_STARTED और GAME_COMPLETED पोस्टमैसेज इवेंट्स को हैंडल करें। पुरस्कार देने से पहले अपने बैकएंड से पार्टनर सर्वर कुंजी का उपयोग करके हस्ताक्षरित परिणामों को सत्यापित करें।

अनुशंसित iframe सेटिंग्स

चौड़ाई

100% का उपयोग करें ताकि embed उपलब्ध सामग्री कॉलम को भर दे।

ऊंचाई

अधिकांश गेमों के लिए 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 पास करें।

सामान्य iframe

जब AI कोटा उपलब्ध होता है, तो खिलाड़ी खेल के अंदर मैच का प्रकार चुनता है।

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

यह पहले AI के लिए अनुरोध करता है। कोटा समाप्त होने पर यह चुपचाप PvP पर वापस आ जाता है।

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

iframe URL पैरामीटर

फ़्रेम URL /embed/{gameSlug}/frame/ का उपयोग करते हैं। गेमप्ले के बिना SEO लैंडिंग पृष्ठ /embed/{gameSlug}/ पर लाइव होते हैं।

पैरामीटरआवश्यकविवरण
किरायेदार आईडीहाँGames I Know पार्टनर डैशबोर्ड से आपकी पार्टनर टेनेंट आईडी। पुरानी एकीकरण प्रणालियों के लिए इसे पार्टनर आईडी के रूप में भी स्वीकार किया जाता है।
तरीकानहींअनुरोध को अनिवार्य रूप से AI मोड पर सेट करने के लिए ai को सेट करें। सर्वर-साइड कोटा और डोमेन नियम अभी भी लागू होते हैं। AI अनुपलब्ध होने पर प्लेयर बनाम प्लेयर मोड पर वापस आ जाता है।
अभियान आईडीनहींवैकल्पिक कैंपेन लेबल पोस्टमैसेज इवेंट्स में प्रतिध्वनित होता है और ए/बी परीक्षण या पेज-स्तरीय विभाजन के लिए पार्टनर एनालिटिक्स में संग्रहीत होता है।
6. घटनाएँ

postMessage इवेंट संदर्भ

यही अनुबंध 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), या कुछ लाइफसाइकिल रैपरों के लिए फ्लैट।मैचआईडी, मोड, embedऊंचाई
खेल शुरू हो गयाप्रत्येक embed योग्य खेल (वर्तमान और भविष्य)। यह तब सक्रिय होता है जब कोई मैच शुरू होता है (उदाहरण के लिए, पहली चाल या AI दौर की शुरुआत)।सपाट जीवनचक्रगेम, पार्टनरआईडी, कैंपेनआईडी, मोड, मैचआईडी (गेमप्ले स्ट्रीम के माध्यम से निहित)
खेल पूरा हुआप्रत्येक embeddable गेम के समाप्त होने पर, मैच का परिणाम, विजेता, विजेता खिलाड़ी का नाम और खिलाड़ी शामिल होते हैं ताकि मुख्य पृष्ठ तुरंत परिणाम दिखा सके। सर्वर-साइड हस्ताक्षर सफल होने पर परिणाम आईडी और हस्ताक्षरित टोकन भी शामिल होते हैं।सपाट जीवनचक्रपरिणाम, विजेता, विजेता खिलाड़ी का नाम, विजेता खिलाड़ी आईडी, खिलाड़ी, स्कोर, अवधि सेकंड, परिणाम आईडी, हस्ताक्षरित टोकन
एम्बेड_फुलस्क्रीन_परिवर्तनप्लेयर embed में फुलस्क्रीन में टॉगल करता है।सपाट जीवनचक्रपेलोड.सक्रिय बूलियन

गेमप्ले इवेंट्स

आकार: { source, game, version: 1, event, payload }

  • तैयार - वर्जन 1 एनवेलप के साथ लाइफसाइकिल रेडी के समान।
  • मोड_परिवर्तन - खिलाड़ी PvP, AI चुनता है, या मोड चयन पर वापस लौटता है।
  • कदम - कोई चाल या कार्रवाई घटी (बोर्ड सेल, डिस्क ड्रॉप, बिंगो कॉल, सामान्य ज्ञान प्रश्न का उत्तर)।
  • रीसेट - बोर्ड या राउंड रीसेट।
  • पूर्ववत - अंतिम चाल पूर्ववत कर दी गई (केवल Tic Tac Toe के लिए)।
  • राज्य - पैरेंट गेट_स्टेट कमांड (Tic Tac Toe, Four in a Row) का जवाब।

हर embeddable गेम पोस्ट GAME_COMPLETED माता-पिता को outcome, winner, और players जब मैच समाप्त होता है। जब हस्ताक्षर सफल हो जाते हैं। GAME_COMPLETED इसमें शामिल भी है resultId और signedToken बैकएंड सत्यापन के लिए।

गेम शुरू होने का उदाहरण
json
{
  "source": "gamesiknow",
  "event": "GAME_STARTED",
  "game": "tic-tac-toe",
  "partnerId": "partner_your_tenant",
  "campaignId": "homepage-widget",
  "mode": "ai"
}
गेम_पूर्ण उदाहरण
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..."
}

परिणाम मान

खिलाड़ी_1

पहले मानव खिलाड़ी ने जीत हासिल की।

खिलाड़ी_2

दूसरे मानव खिलाड़ी ने जीत हासिल की।

एआई_बॉट

AI प्रतिद्वंद्वी जीत गया।

खींचना

कोई विजेता नहीं।

Parent-to-iframe कमांड

यह सुविधा केवल Tic Tac Toe और Four in a Row पर ही समर्थित है। गेम स्लग और एक्शन के साथ iframe कंटेंट विंडो को लक्षित करें।

स्थिति रीसेट करें या अनुरोध करें
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. कार्यान्वयन

नमूना एकीकरण श्रोता

इस लिसनर को उस पेज पर कॉपी करें जहाँ आपका iframe मौजूद है। यह रेडी स्टेट, गेम स्टार्ट, गेमप्ले इवेंट्स, साइन्ड कंप्लीशन और फुलस्क्रीन बदलावों को हैंडल करता है।

एकीकृत पैरेंट पेज श्रोता

मैच के दौरान विजेता यूआई और गेमप्ले इवेंट्स के लिए स्रोत के आधार पर फ़िल्टर करें, GAME_STARTED और GAME_COMPLETED को हैंडल करें।

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

एकीकरण चेकलिस्ट

  • GAME_STARTED पर गेम प्रगति पर होने का बैनर दिखाएं।
  • GAME_COMPLETED.winner या GAME_COMPLETED.winnerPlayerName में से विजेता का नाम दिखाएँ।
  • resultId और signedToken को अपने बैकएंड पर भेजें; पुरस्कार देने से पहले पार्टनर सर्वर कुंजी के साथ सत्यापित करें।
  • वैकल्पिक रूप से, event.origin को अपने Games I Know होस्ट के विरुद्ध मान्य करें।
8. सुरक्षा

सत्यापित खेल परिणाम API

मुख्य पृष्ठ पर विजेता का नाम दिखाने के लिए GAME_COMPLETED का उपयोग करें। पुरस्कार प्राप्त करने के लिए, अपने बैकएंड से पार्टनर सर्वर कुंजी का उपयोग करके हस्ताक्षरित परिणामों को सत्यापित करें - ब्राउज़र JavaScript से कभी भी verify API को कॉल न करें।

हस्ताक्षरित परिणाम सत्यापित करें

केवल सर्वर-साइड। GAME_COMPLETED से resultId और signedToken का उपयोग करें, प्राधिकरण: 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.
सत्यापन प्रतिक्रिया सफल रही
json
{
  "ok": true,
  "resultId": "res_abc123xyz",
  "partnerId": "partner_your_tenant",
  "gameSlug": "tic-tac-toe",
  "outcome": "player_1",
  "score": 100,
  "durationSeconds": 24
}
उदाहरण बैकएंड रिवार्ड हैंडलर

आपका बैकएंड पैरेंट पेज से टोकन प्राप्त करता है, Games I Know के साथ सत्यापित करता है, और फिर इनाम प्रदान करता है।

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. विश्लेषण

सर्वर-साइड एनालिटिक्स इवेंट्स

Games I Know इन घटनाओं को स्वचालित रूप से रिकॉर्ड करता है जब आपका iframe लोड होता है और खिलाड़ी आपस में बातचीत करते हैं। ये आपके पार्टनर डैशबोर्ड में दिखाई देते हैं। इसी डेटा को अपने डेटाबेस में लाने के लिए, इंस्टॉल पेज पर एक पार्टनर सर्वर कुंजी बनाएं और केवल अपने बैकएंड सर्वर से GET /partners/analytics कमांड चलाएं।

  • embed_ लोड किया गया - कॉन्फ़िगरेशन मान्य होने पर या iframe को चलाने की अनुमति मिलने पर प्रत्येक embed योग्य गेम।
  • खेल शुरू हो गया - गेमप्ले शुरू होने पर प्रत्येक embeddable गेम (iframe द्वारा स्वचालित रूप से रिकॉर्ड किया गया)।
  • खेल पूरा हुआ - प्रत्येक embeddable गेम जब POST /embed/results सफल होता है।
  • एआई_मैच_शुरू_हो गया - POST /embed/ai-matches/start के माध्यम से AI कोटा का उपभोग किया गया।
  • embed_ अवरुद्ध - डोमेन, पार्टनर या गेम तक पहुंच अस्वीकृत।
अपने बैकएंड में एनालिटिक्स निर्यात करें (पार्टनर सर्वर कुंजी आवश्यक है)

पार्टनर डैशबोर्ड → इंस्टॉल में जाकर पार्टनर सर्वर कुंजी जनरेट करें। इसे सर्वर सीक्रेट के रूप में सुरक्षित रखें। निर्यात को फ़िल्टर करने के लिए नीचे दिए गए क्वेरी पैरामीटर का उपयोग करें।

http
GET https://api.gamesiknow.com/partners/analytics
Authorization: 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 को कभी भी ब्राउज़र में प्रदर्शित न करें।
10. सूची

खेल क्षमता मैट्रिक्स

प्रत्येक embeddable गेम समान कोर इवेंट भेजता है। नीचे प्रत्येक गेम के लिए समय और अतिरिक्त जानकारी की तुलना करें।

खेलखेल शुरू हो गयापूर्णता संकेतपर हस्ताक्षर किएजबरन AIHeightमूल आदेश
Tic Tac Toeपहली चाल या AI प्रारंभखेल पूरा हुआहाँहाँ640pxरीसेट, गेट_स्टेट
Four in a Rowपहली चाल या AI प्रारंभखेल पूरा हुआहाँहाँ640pxरीसेट, गेट_स्टेट
Bingoमैच शुरू होता है (AI या PvP)खेल पूरा हुआहाँहाँ640pxअभी तक कोई नहीं
I Knowमैच शुरू होता है (AI या PvP)खेल पूरा हुआहाँहाँ640pxअभी तक कोई नहीं
11. गाइड

प्लेटफ़ॉर्म और उपयोग-मामले सेटअप गाइड

यह पृष्ठ तकनीकी संदर्भ पृष्ठ है। प्लेटफ़ॉर्म-विशिष्ट इंस्टॉलेशन चरणों या ऊर्ध्वाधर प्लेसमेंट संबंधी सलाह के लिए इन गाइडों का उपयोग करें। सभी गाइड ऊपर वर्णित समान iframe और इवेंट मॉडल का उपयोग करते हैं।

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.

क्या आप iframe गेम, HTML5 विजेट या मुफ़्त embed गेम जैसे सामान्य अवलोकन पृष्ठ खोज रहे हैं? सभी ब्राउज़ करें embed हब पर मार्गदर्शन करता है.

12. समर्थन

अक्सर पूछे जाने वाले प्रश्नों

एकीकरण संबंधी विवरण, वर्तमान गेम समर्थन, कमांड, हस्ताक्षरित परिणाम और भविष्य में गेम की अनुकूलता के बारे में उत्तर।

क्या मैं वर्डप्रेस, वेबफ्लो, विक्स, स्क्वेयरस्पेस या किसी कस्टम वेबसाइट में गेम बना सकता हूँ?

जी हां। Games I Know embed मानक iframe HTML का उपयोग करते हैं, इसलिए वे WordPress के कस्टम HTML ब्लॉक, Webflow के embed एलिमेंट, Wix और Squarespace के कस्टम कोड एरिया, स्टैटिक HTML, React, Next.js और अन्य कस्टम साइटों में काम करते हैं। सबसे पहले अपने पार्टनर डैशबोर्ड में वेबसाइट डोमेन रजिस्टर करें, फिर जेनरेट किए गए फ्रेम स्निपेट को उस पेज पर पेस्ट करें जहां गेम दिखना चाहिए।

/embed/{gameSlug}/ और /embed/{gameSlug}/frame/ के बीच क्या अंतर है?

/embed/{gameSlug}/ गेम embed का सार्वजनिक लैंडिंग पेज है। /embed/{gameSlug}/frame/ iframe का रनटाइम है जिसे आपकी वेबसाइट में पेस्ट किया जाना चाहिए। iframe कोड में हमेशा /frame/ URL का उपयोग करें क्योंकि यह खेलने योग्य गेम को लोड करता है, आपके टेनेंट और डोमेन को मान्य करता है, और पैरेंट-पेज इवेंट भेजता है।

क्या Games I Know iframe गेम मोबाइल और डेस्कटॉप पर काम करते हैं?

जी हां। Games I Know और iframe गेम मोबाइल, टैबलेट, लैपटॉप और डेस्कटॉप ब्राउज़र के लिए डिज़ाइन किए गए हैं। अधिकांश embed के लिए width="100%" और लगभग 640px की अनुशंसित ऊंचाई का उपयोग करें। यदि आप चाहते हैं कि आपका पैरेंट पेज iframe का आकार स्वचालित रूप से बदल दे, तो आप रेडी इवेंट को सुन सकते हैं और payload.embedHeight का उपयोग कर सकते हैं।

embed Games I Know गेम खेलने में कितना खर्च आता है?

Games I Know, iframe और embed बीटा संस्करण के दौरान निःशुल्क उपलब्ध हैं। इन्हें शुरू करने के लिए क्रेडिट कार्ड की आवश्यकता नहीं है, और वर्तमान बीटा संस्करण में विज्ञापन शामिल नहीं हैं। एक निःशुल्क पार्टनर खाता बनाएँ, अपना डोमेन पंजीकृत करें और डैशबोर्ड से iframe स्निपेट जनरेट करें।

क्या मुझे पार्टनर अकाउंट या embed कुंजी की आवश्यकता है?

जी हां। पार्टनर अकाउंट आपको एक टेनेंट आईडी और डोमेन-प्रतिबंधित iframe स्निपेट प्रदान करता है। iframe फ्रेम URL के साथ टेनेंट आईडी भेजता है ताकि Games I Know पार्टनर, अनुमत डोमेन, गेम एक्सेस, AI कोटा, एनालिटिक्स कैंपेन और परिणाम सत्यापन प्रवाह को मान्य कर सके।

क्या कोई मेरे iframe कोड को कॉपी करके किसी दूसरी वेबसाइट पर इस्तेमाल कर सकता है?

embed डोमेन प्रतिबंधित है। यदि कोई आपके iframe स्निपेट को किसी अनधिकृत वेबसाइट पर कॉपी करता है, तो Games I Know आपके पार्टनर खाते के लिए कॉन्फ़िगर किए गए डोमेन के विरुद्ध अनुरोध के स्रोत की जाँच करता है और अनधिकृत उपयोग को ब्लॉक कर देता है। जब आप प्रत्येक वेबसाइट या अभियान के लिए बेहतर विश्लेषण चाहते हैं, तो अलग-अलग अभियान आईडी का उपयोग करें।

कौन से Games I Know गेम embed किए जा सकते हैं?

Tic Tac Toe, Four in a Row, Bingo और I Know आज iframe और embed का समर्थन करते हैं। प्रत्येक गेम रेडी स्टेट, गेम स्टार्ट, गेमप्ले, कंप्लीशन, विनर डेटा, एनालिटिक्स और रिजल्ट वेरिफिकेशन के लिए मानक embed इवेंट कॉन्ट्रैक्ट भेजता है। नए embed सपोर्ट करने योग्य गेम्स से भी इसी इवेंट पैटर्न का पालन करने की उम्मीद है, इसलिए पार्टनर्स को अपने इंटीग्रेशन को दोबारा बनाने की आवश्यकता नहीं होगी।

Games I Know पैरेंट पेज को कौन से postMessage इवेंट भेजता है?

प्रत्येक embeddable गेम दो postMessage प्रारूपों का उपयोग करता है। लाइफसाइकिल इवेंट एक फ्लैट आकार का उपयोग करते हैं जिसमें स्रोत: gamesiknow होता है और इवेंट मान ready, GAME_STARTED, GAME_COMPLETED और EMBED_FULLSCREEN_CHANGE होते हैं। गेमप्ले इवेंट version: 1 का उपयोग करते हैं जिसमें नेस्टेड इवेंट नाम ready, mode_change, move, reset, undo और state होते हैं। हमेशा data.source === "gamesiknow" पर फ़िल्टर करें।

क्या मैं embedded गेम से शुरुआत, समापन, विजेताओं और खिलाड़ियों के परिणामों को ट्रैक कर सकता हूँ?

जी हां। मैच शुरू होने पर GAME_STARTED सिग्नल सुनें, खेल के दौरान मूव और मोड चेंज जैसे गेमप्ले इवेंट्स का उपयोग करें, और मैच समाप्त होने पर GAME_COMPLETED सिग्नल का उपयोग करें। GAME_COMPLETED में परिणाम, विजेता, खिलाड़ी, स्कोर, अवधि और परिणाम पहचानकर्ता शामिल होते हैं, जहां साइनिंग उपलब्ध है। सर्वर-साइड एनालिटिक्स लोड, स्टार्ट, कंप्लीशन, ब्लॉक किए गए प्रयास और CTA क्लिक्स को भी रिकॉर्ड करता है।

मुझे सभी गेमों के लिए कौन सा समापन इवेंट इस्तेमाल करना चाहिए?

मैच समाप्त होने पर GAME_COMPLETED का उपयोग करें। प्रत्येक embed योग्य गेम परिणाम, विजेता, विजेता खिलाड़ी का नाम और खिलाड़ियों की जानकारी के साथ यह लाइफसाइकिल इवेंट भेजता है। जब GAME_COMPLETED में resultId और signedToken शामिल हों, तो उन्हें अपने बैकएंड पर भेजें और पुरस्कार या क्रेडिट देने से पहले अपने पार्टनर सर्वर कुंजी के साथ POST /embed/results/verify को कॉल करें।

मैं अपनी वेबसाइट पर मौजूद iframe से embed इवेंट्स को कैसे सुनूं?

iframe को होस्ट करने वाले पेज पर window.addEventListener("message", handler) जोड़ें। हैंडलर में, उन संदेशों को अनदेखा करें जब तक कि event.data.source === "gamesiknow" न हो। लाइफसाइकल इवेंट्स के लिए event.data.event पर, या गेमप्ले इवेंट्स के लिए event.data.event और event.data.version === 1 पर ब्रांच करें। वैकल्पिक रूप से, अपने स्वीकृत Games I Know ओरिजिन के विरुद्ध event.origin को मान्य करें।

क्रेडिट, पुरस्कार या अनलॉक देने से पहले मैं गेम के परिणामों को कैसे सत्यापित करूँ?

मुख्य पृष्ठ पर GAME_COMPLETED का उपयोग करके तुरंत विजेता का विवरण (परिणाम, विजेता, विजेता खिलाड़ी का नाम, खिलाड़ी) देखें। पुरस्कार के लिए, GAME_COMPLETED से resultId और signedToken अपने बैकएंड पर भेजें, फिर अपने डैशबोर्ड से पार्टनर सर्वर कुंजी का उपयोग करके Authorization: Bearer gik_psk_… के साथ POST /embed/results/verify कमांड चलाएँ। सत्यापन एंडपॉइंट केवल सर्वर-साइड है - इसे कभी भी ब्राउज़र JavaScript से न चलाएँ। सत्यापन सफल होने के बाद ही पुरस्कार दें।

Games I Know किन-किन URL पैरामीटर को सपोर्ट करता है?

आवश्यक: tenantId (आपका पार्टनर टेनेंट आईडी)। वैकल्पिक: कोटा अनुमति देने पर जबरन AI मोड का अनुरोध करने के लिए mode=ai और एनालिटिक्स को सेगमेंट करने के लिए campaignId। फ्रेम URL /embed/{gameSlug}/frame/?tenantId=YOUR_TENANT_ID का अनुसरण करते हैं।

क्या मैं किसी embed डेड गेम को AI मोड में शुरू करने के लिए बाध्य कर सकता हूँ?

हाँ। iframe URL में mode=ai जोड़ें ताकि पहले AI मोड का अनुरोध किया जा सके। सर्वर-साइड कोटा और डोमेन नियम अभी भी लागू होते हैं, इसलिए AI मोड अनुपलब्ध होने या कोटा समाप्त होने पर embed प्लेयर चॉइस या प्लेयर बनाम प्लेयर मोड पर वापस आ सकता है।

क्या मैं Games I Know और iframe में कमांड भेज सकता हूँ?

Tic Tac Toe और Four in a Row पैरेंट मैसेज स्वीकार करते हैं जिनमें गेम को गेम स्लग पर सेट किया जाता है और एक्शन को रीसेट या गेट_स्टेट पर सेट किया जाता है। iframe स्टेट गेमप्ले इवेंट के साथ प्रतिक्रिया करता है। अन्य embed गेम अभी तक पैरेंट कमांड प्रदर्शित नहीं करते हैं।

उत्पादन चेकलिस्ट

टोकन जनरेट करने से पहले यह सुनिश्चित कर लें कि वेबसाइट डोमेन सक्रिय है।

प्रत्येक वेबसाइट या कैंपेन समूह के लिए एक अलग टोकन या कैंपेन आईडी का उपयोग करें।

पैरेंट पेज पर GAME_STARTED और GAME_COMPLETED के संकेतों को सुनें।

embed के अंदर Games I Know ब्रांडिंग को दृश्यमान रखें।

पुरस्कार या क्रेडिट देने से पहले अपने बैकएंड पर हस्ताक्षरित परिणामों को सत्यापित करें।

AI कोटा समाप्त होने पर AI मोड को लागू करने और AI कोटा समाप्त होने पर PvP फॉलबैक का परीक्षण करें।

पार्टनर इंटीग्रेशन में मदद चाहिए?

वेबसाइट, सीएमएस और इच्छित गेम प्लेसमेंट साझा करें। हम आपके embed इवेंट वायरिंग की समीक्षा आपके साथ कर सकते हैं।

समर्थन से संपर्क करें