---
metadata:
  - name: generator
    content: Diplodoc Platform v5.55.2
alternate:
  - https://yandex.com/dev/games/doc/en/sdk/sdk-events.md
  - https://yandex.com/dev/games/doc/hi/sdk/sdk-events.md
  - https://yandex.com/dev/games/doc/ko/sdk/sdk-events.md
  - https://yandex.com/dev/games/doc/ru/sdk/sdk-events.md
  - https://yandex.com/dev/games/doc/tr/sdk/sdk-events.md
  - https://yandex.com/dev/games/doc/vi/sdk/sdk-events.md
  - https://yandex.com/dev/games/doc/zh/sdk/sdk-events.md
  - href: hi/sdk/sdk-events.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/games/doc/hi/llms.txt

# घटनाएँ

## पौज़ और गेम फिर से शुरू की घटनाएं {#pause-resume}

`game_api_pause` और `game_api_resume` इवेंट्स के माध्यम से, प्लेटफॉर्म गेम को सूचित करता है कि गेमिंग प्रक्रिया को पौज़ पर सेट करना है या फिर से शुरू करना है। ये इवेंट्स हमारे प्लेटफ़ॉर्म के साथ इंटीग्रेशन की प्रक्रिया को सरल बनाते हैं और मॉडरेशन की आवश्यकताओं (खंड [1.3](https://yandex.com/dev/games/doc/hi/concepts/requirements.md#1-3) और [4.7](https://yandex.com/dev/games/doc/hi/concepts/requirements.md#4-7)) का पालन करने में मदद करते हैं।

जो गेम्स पौज़ और गेम फिर से शुरू की घटनाओं का समर्थन करते हैं, वे बाहरी प्लेटफार्मों पर अतिरिक्त वितरित किए जा सकते हैं।


### game_api_pause और game_api_resume इवेंट्स {#pause-resume-events}

ये इवेंट्स आपको निम्नलिखित को ट्रैक करने में मदद करेंगे:

- पूर्ण स्क्रीन या rewarded-विज्ञापनों का प्रदर्शन और बंद करना;
- खरीद विंडो को खोलना और बंद करना;
- ब्राउज़र टैब्स को स्विच करना;
- ब्राउज़र विंडो को मिनिमाइज़ और मैक्सिमाइज़ करना।

ये [गेमप्ले मार्किंग मेथड्स](https://yandex.com/dev/games/doc/hi/sdk/sdk-game-events.md#gameplay) के साथ सामंजस्य रखते हैं। `game_api_pause` इवेंट के ट्रिगर होने पर, `GameplayAPI.stop()` मेथड कॉल किया जाता है, और `game_api_resume` इवेंट के ट्रिगर होने पर, `GameplayAPI.start()` मेथड कॉल किया जाता है।

यदि गेम पहले `GameplayAPI.stop()` मेथड (उदाहरण के लिए, जब खिलाड़ी ने मेनू खोला हो) का उपयोग करके रोका गया था, और फिर `game_api_pause` इवेंट होती है, तो बाद में `game_api_resume` इवेंट होने पर `GameplayAPI.start()` मेथड कॉल नहीं किया जाएगा। यह गेमप्ले मार्किंग लॉजिक को बिना नुकसान के वर्तमान स्थिति को संरक्षित करने की अनुमति देता है।

यांडेक्स गेम्स SDK के `on()` और `off()` मेथड्स का उपयोग करके संबंधित रूप से घटनाओं की सदस्यता लेने और उनसे च्युत करने के लिए करें।

#### उदाहरण {#pause-resume-example}

{% list tabs %}

- game_api_pause

    ```javascript
    const pauseCallback = () => {
        pauseGame(); // आपका फ़ंक्शन जो गेम लूप और संगीत को रोकता है।
        console.log('GAME PAUSED');
    };

    ysdk.on('game_api_pause', pauseCallback); // 'game_api_pause' इवेंट्स की सदस्यता लेना।
    ysdk.off('game_api_pause', pauseCallback); // 'game_api_pause' इवेंट्स से च्युती।
    ```

- game_api_resume

    ```javascript
    const resumeCallback = () => {
        resumeGame(); // आपका फ़ंक्शन जो गेम लूप और संगीत को पुनः आरंभ करता है।
        console.log('GAME RESUMED');
    };

    ysdk.on('game_api_resume', resumeCallback ); // 'game_api_resume' इवेंट्स की सदस्यता लेना।
    ysdk.off('game_api_resume', resumeCallback ); // 'game_api_resume' इवेंट्स से च्युती।
    ```

{% endlist %}

&nbsp; {.empty}


### गेम शुरू होने पर पूर्ण स्क्रीन विज्ञापन {#startup-fullscreen-ad}

{% note warning "चेतावनी" %}

प्लेटफ़ॉर्म स्वचालित रूप से सभी गेम्स के शुरू होने पर पूर्ण स्क्रीन विज्ञापन दिखाता है।

{% endnote %}

विज्ञापन ब्लॉक्स के विपरीत, जिन्हें गेम्स [ysdk.adv.showFullscreenAdv()](https://yandex.com/dev/games/doc/hi/sdk/sdk-adv.md#full-screen-block) के माध्यम से कॉल करते हैं, स्टार्टअप विज्ञापन में कोई सीधी कॉलबैक फंक्शन नहीं होती। इसे सही तरीके से हैंडल करने के लिए, `game_api_pause` और `game_api_resume` इवेंट्स को ट्रैक करें:

1. `game_api_pause` मिलने पर गेम का साउंड बंद करें और गेमप्ले को पॉज़ करें।
2. `game_api_resume` इवेंट का इंतज़ार करें और गेम को रिज्यूम करें।

यह उन गेम्स के लिए विशेष रूप से महत्वपूर्ण है जहां साउंड और गेमप्ले तुरंत शुरू होते हैं।

#### स्टार्टअप विज्ञापन को हैंडल करने का उदाहरण {#startup-ad-example}

```javascript
let gameStarted = false;
let isPaused = false;

// गेम इनिशियलाइज़ करने की फंक्शन।
function initGame() {
    // पॉज़ और रिज्यूम इवेंट्स के लिए सब्सक्राइब करें।
    ysdk.on('game_api_pause', handlePause);
    ysdk.on('game_api_resume', handleResume);

    // चेक करें कि क्या हम पॉज़ स्टेट में नहीं हैं।
    // यदि नहीं, तो गेम शुरू करने से पहले रिज्यूम का इंतज़ार करें।
    if (!isPaused) {
        startGame();
    }
}

function handlePause() {
    isPaused = true;
    // साउंड और गेमप्ले को रोकें।
    console.log('GAME PAUSED - waiting for resume');
}

function handleResume() {
    isPaused = false;

    // यदि गेम अभी तक शुरू नहीं हुआ है, तो इसे शुरू करें।
    if (!gameStarted) {
        startGame();
    } else {
        // साउंड और गेमप्ले को रिज्यूम करें।
    }

    console.log('GAME RESUMED');
}

function startGame() {
    gameStarted = true;

    // साउंड इनिशियलाइज़ेशन।
    // गेम लूप शुरू करें।
    console.log('GAME STARTED');
}

// गेम इनिशियलाइज़ेशन शुरू करें।
initGame();
```



## अन्य इवेंट्स {#other-events}

आप उपयोगकर्ता के एप्लिकेशन के साथ इंटरैक्ट करने पर होने वाले अन्य इवेंट्स को भी ट्रैक कर सकते हैं।

```typescript
enum ESdkEventName {
    EXIT = 'EXIT',
    HISTORY_BACK = 'HISTORY_BACK',
    ACCOUNT_SELECTION_DIALOG_OPENED = 'ACCOUNT_SELECTION_DIALOG_OPENED',
    ACCOUNT_SELECTION_DIALOG_CLOSED = 'ACCOUNT_SELECTION_DIALOG_CLOSED',
}

ysdk = {
    EVENTS: {
        EXIT: ESdkEventName.EXIT,
        HISTORY_BACK: ESdkEventName.HISTORY_BACK,
        ACCOUNT_SELECTION_DIALOG_OPENED: ESdkEventName.ACCOUNT_SELECTION_DIALOG_OPENED,
        ACCOUNT_SELECTION_DIALOG_CLOSED: ESdkEventName.ACCOUNT_SELECTION_DIALOG_CLOSED,
    },

    dispatchEvent(eventName: ESdkEventName, detail?: object): Promise<unknown> {},

    on(eventName: ESdkEventName, listener: Function): () => void {}
};
```


### HISTORY_BACK ईवेंट {#history-back}

{% note alert "चेतावनी" %}

यह घटना केवल तब उपलब्ध है जब खेल टेलीविजन पर चलाया जा रहा हो।

{% endnote %}

**वापस जाएँ** बटन पर क्लिक को ट्रैक करने के लिए, निम्नलिखित विधि का उपयोग करें:

```javascript
ysdk.on(ysdk.EVENTS.HISTORY_BACK, () => {
    // उपयोगकर्ता को विकल्पों के साथ कस्टम गेम डायलॉग दिखाना
    // गेम से बाहर जाने की पुष्टि करने के लिए, आंतरिक सेटिंग, स्टोर, और इत्यादि में जाना
});
```


### ईवेंट से बाहर जाएँ {#exit}

यदि उपयोगकर्ता उस कस्टम डायलॉग में गेम से बाहर जाने की पुष्टि करता है जो **वापस जाएँ** पर क्लिक करने के बाद खुलता है, तो गेम द्वारा एक एक्ज़िट ईवेंट भेजा जाना चाहिए। इसे करने के लिए, निम्नलिखित विधि का उपयोग करें:

```javascript
ysdk.dispatchEvent(ysdk.EVENTS.EXIT);
```


### गेम अकाउंट चयन डायलॉग {#account-selection-dialog}

प्लेटफ़ॉर्म ऑथेंटिकेटेड और नॉन-ऑथेंटिकेटेड दोनों प्रकार के प्लेयर्स के गेम प्रोग्रेस को सेव करता है। उपयोगकर्ता पहले बिना लॉगिन के खेल सकता है, और बाद में अकाउंट में लॉगिन कर सकता है। इस स्थिति में उसके पास दो अलग-अलग प्रोग्रेस होंगे: एक लॉगिन वाला, दूसरा बिना लॉगिन वाला। प्लेटफ़ॉर्म एक डायलॉग बॉक्स दिखाएगा जहां उपयोगकर्ता गेम की अवधि, आखिरी लॉगिन की तारीख और अन्य पैरामीटर्स के आधार पर सेव डेटा की तुलना कर सकता है और चुन सकता है कि कौन सा प्रोग्रेस इस्तेमाल करना है।

यदि आप प्लेयर डेटा को बार-बार सिंक करते हैं या गेम प्रोग्रेस को अपने सर्वर पर स्टोर करते हैं, तो डायलॉग बॉक्स में अकाउंट चयन के बाद प्रोग्रेस में बदलाव को ट्रैक करें।

इसके लिए SDK में दो इवेंट्स हैं:

- `ACCOUNT_SELECTION_DIALOG_OPENED` — डायलॉग का खुलना।
- `ACCOUNT_SELECTION_DIALOG_CLOSED` — डायलॉग का बंद होना।

डायलॉग खुलने पर आप प्लेयर डेटा की नियमित सिंक्रनाइज़ेशन को रोक सकते हैं। डायलॉग बंद होने पर — मेनू में वापस जा सकते हैं या गेम को रीस्टार्ट कर सकते हैं और प्लेयर ऑब्जेक्ट को फिर से रिक्वेस्ट कर सकते हैं।

#### उदाहरण {#account-selection-dialog-example}

```javascript
// अकाउंट चयन डायलॉग के खुलने के इवेंट के लिए सब्सक्राइब करें।
ysdk.on(ysdk.EVENTS.ACCOUNT_SELECTION_DIALOG_OPENED, () => {
    // प्लेयर डेटा की सिंक्रनाइज़ेशन को रोकें।
});

// अकाउंट चयन डायलॉग के बंद होने के इवेंट के लिए सब्सक्राइब करें।
ysdk.on(ysdk.EVENTS.ACCOUNT_SELECTION_DIALOG_CLOSED, async () => {
    // गेम के मेनू में वापस जाएं या पेज को रीलोड करें।
    // ...

    // प्लेयर डेटा को फिर से रिक्वेस्ट करें।
    const player = await ysdk.getPlayer();
    const data = await player.getData();
});
```



---

<!-- source: hi/_includes/concepts/troubleshooting/id-troubleshooting/support.md -->
{% note info "नोट" %}

टीम सपोर्ट के कर्मचारी यंडेक्स गेम्स प्लेटफॉर्म पर तैयार खेल को डालने में मदद करते हैं। डेवलपमेंट और परीक्षण के संबंध में आवेदनिक प्रश्नों का उत्तर अन्य डेवलपर्स देंगे [Discord चैनल](https://discord.com/invite/wU4p3whr4T)।

{% endnote %}
<!-- endsource: hi/_includes/concepts/troubleshooting/id-troubleshooting/support.md -->

<!-- source: hi/_includes/button-fos.md -->
यदि आप किसी समस्या का सामना कर रहे हैं या Yandex Games SDK के इस्तेमाल के बारे में आपका कोई प्रश्न है, तो कृपया समर्थन से संपर्क करें:


<a href="https://yandex.com/chat/#/user/a4fa5c06-75db-9b38-6eea-b1673785f7d5">
  <span class="button">चैट करने के लिए लिखें</span>
</a>
<!-- endsource: hi/_includes/button-fos.md -->
