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

# 环境变量

<!-- source: zh/_includes/script-common.md -->
<!-- source: zh/_includes/script/index-js.md -->

<!-- endsource: zh/_includes/script/index-js.md -->

<!-- source: zh/_includes/script/requirements-js.md -->

<!-- endsource: zh/_includes/script/requirements-js.md -->

<!-- source: zh/_includes/script/image-modal-js.md -->

<!-- endsource: zh/_includes/script/image-modal-js.md -->
<!-- endsource: zh/_includes/script-common.md -->

您可以获取游戏运行环境的信息。为此，请使用对象 `ysdk.environment`。

```javascript showLineNumbers
{
    [app](*key_app): {
        [id](*key_id): string;
    };
    [i18n](*key_i18n): {
        [lang](*key_lang2): string;
    };
    [payload?](*key_payload): string;
    [referrer?](*key_referrer): {
        [type](*key_type): 'promo';
        [promoId](*key_promo_id): string;
        [intent?](*key_intent): string;
        [inappId?](*key_inapp_id): string;
    };
}
```

## environment 对象 {#environment-object}

包含游戏环境变量。

#|
|| **参数** | **类型** | **描述** ||
|| `app` | `object` | 游戏数据。 ||
|| `i18n` | `object` | 服务国际化。 ||
|| `payload` | `string` | 游戏地址中 `payload` 参数的值。 可选参数。 例如，对于游戏 `https://yandex.ru/games/app/123?payload=test`，可以通过以下方式获取 `test` 的值：`ysdk.environment.payload`。
 ||
|#

### app 结构 {#structure-app}

#|
|| **参数** | **类型** | **描述** ||
|| `id` | `string` | 游戏 ID。 ||
|#

### i18n 结构 {#structure-i18n}

#|
|| **参数** | **类型** | **描述** ||
|| `lang` | `string` | [Yandex Games 界面语言](https://yandex.com/dev/games/doc/zh/concepts/languages-and-domains.md)，格式为 ISO 639-1。 例如，`"tr"` 表示游戏当前在 Yandex Games 的土耳其语界面中运行。 此参数应用于自动检测游戏中的用户语言（[游戏要求项 2.14](https://yandex.com/dev/games/doc/zh/concepts/requirements.md#2-14)）。
 ||
|#

#### 示例 {#i18n-example}

```javascript showLineNumbers
const ysdk = await YaGames.init();
const lang = ysdk.environment.i18n.lang; // 'en', 'ru', ...
```

### referrer 结构 {#structure-referrer}

使用 `ysdk.environment.referrer` 处理玩家从目录中促销横幅跳转的情况。优点：

- **对于玩家**：点击活动链接后，玩家会直接进入目标页面——看到的就是他点击的那个活动内容。这能提高转化率，并减少初始阶段的用户流失。
- **对于您**：您可以追踪每个活动的效果——有多少玩家点击进入，有多少人完成了购买。如需收集统计数据，请额外启用 [Yandex Metrica](https://yandex.com/dev/games/doc/zh/concepts/yandex-metrica.md)。

#### 配置 {#referrer-setup}

1. 在[开发人员控制台](https://yandex.com/dev/games/doc/zh/console/promo-and-discounts.md)中添加[促销活动](https://yandex.com/dev/games/doc/zh/console/promo-and-discounts.md)。平台会自动为目录中的活动横幅生成深度链接（deeplink）。

    带有促销参数的链接示例：

    ```text
    https://yandex.ru/games/app/{id}?lang=ru&referrer=promo&promo_id={PROMO_ID}&promo_intent={INTENT}&inapp_id={INAPP_ID}
    ```

    #|
    || **参数** | **说明** | **是否必填** | **来源** ||
    || `referrer` | 告知平台该跳转来自促销活动。 |::{align="center"}
    ![SVG](../_images/icons/yes-button.svg) | 始终为 `promo` ||
    || `promo_id` | 用于路由和分析的促销活动 ID。 |::{align="center"}
    ![SVG](../_images/icons/yes-button.svg) | **ID** ||
    || `promo_intent` | 用于游戏内路由和分析的自定义提示。 | | **Intent** ||
    || `inapp_id` | 与游戏中该促销活动关联的应用内购买 ID。 | | **In-app ID** ||
    |#

1. 在游戏中添加[跳转处理](#referrer-example)：SDK 会将深层链接的参数传入 `ysdk.environment.referrer` 对象——使用这些参数向玩家显示目标页面。

    #|
    || **参数** | **类型** | **说明** | **来源** ||
    || `type` | `"promo"` | 显示跳转来源。跟踪 `type: "promo"` 可收集促销活动的分析数据。 | `referrer=promo` ||
    || `promoId` | `string` | [开发人员控制台](https://yandex.com/dev/games/doc/zh/console/promo-and-discounts.md)中 **Promos** 标签页上的活动 ID。使用它来为特定活动配置操作，并收集该活动的分析数据。 | `promo_id` ||
    || `intent` | `string` | 任意字符串，例如 `open_starter_pack`。用于配置点击促销活动后的标准操作并收集相关分析数据。可选参数。 | `promo_intent` ||
    || `inappId` | `string` | [开发人员控制台](https://yandex.com/dev/games/doc/zh/console/promo-and-discounts.md) **Inaps** 标签页中的[应用内购买 ID](https://yandex.com/dev/games/doc/zh/console/purchases.md#add-purchases)。用于打开平台购买对话框。可选参数（仅适用于折扣促销活动）。 | `inapp_id` ||
    |#

1. 检查跳转：在 **Promos** 选项卡的 **Check transition** 字段中，点击 **In the published version** 或 **In the draft**。如果一切配置正确，您将看到活动页面：优惠、商店或具体的应用内购买。

#### 示例 {#referrer-example}

```javascript showLineNumbers
// 1. 初始化 SDK。
const ysdk = await YaGames.init();

// 2. 获取 referrer。
const { referrer } = ysdk.environment;

// 3. 处理来自促销活动的跳转。
if (referrer?.type === 'promo') {
    if (referrer.inappId) {
        showPurchaseScreen(referrer.inappId);
    } else if (referrer.intent) {
        openScreen(referrer.intent);
    }
}
```

#### 典型场景 {#referrer-scenarios}

#|
|| **场景** | **目标受众** | **目的** | **示例** ||
|| 商品折扣 | 未付费玩家 | 首次付款 | `promo_id=SPRING_DISCOUNT`<br>`promo_intent=open_starter_pack`<br>`inapp_id=starter_pack_001`

→ `showPurchaseScreen()` ||
|| VIP 优惠或开启商店 | 付费玩家 | 提升客单价 | `promo_id=VIP_PROMO`<br>`promo_intent=open_shop`

→ `openShop()` ||
|| 季节性活动 | 所有活跃玩家 | 留存 | `promo_id=SALE_SPRING_2026`

→ 基础流程、横幅 ||
|#

---

<!-- source: zh/_includes/sdk/sdk-support.md -->
{% note info %}

支持服务员工帮助将成品游戏发布到 Yandex Games 平台。 关于开发和测试的具体问题，其他开发者会在[Discord 社区](https://discord.com/invite/wU4p3whr4T){.external}中给出针对性解答。

{% endnote %}

如果在使用 Yandex Games SDK 时遇到问题或有疑问，请联系技术支持：

<!-- source: zh/_includes/button-chat.md -->
<a href="https://yandex.com/chat/#/user/a4fa5c06-75db-9b38-6eea-b1673785f7d5">
  <span class="button">写入聊天信息</span>
</a>
<!-- endsource: zh/_includes/button-chat.md -->
<!-- endsource: zh/_includes/sdk/sdk-support.md -->

[*key_app]: 游戏数据。

[*key_id]: 游戏 ID。

[*key_i18n]: 服务国际化。

[*key_lang2]: [Yandex Games 界面语言](https://yandex.com/dev/games/doc/zh/concepts/languages-and-domains.md#languages)，格式为 ISO 639-1。例如，`"tr"` 表示游戏当前在 Yandex Games 的土耳其语界面中运行。建议使用此参数来确定游戏中的用户语言。

[*key_payload]: 游戏地址中 `payload` 参数的值。
可选参数。
例如，对于游戏 `https://yandex.ru/games/app/123?payload=test`，可以通过以下方式获取 `test` 的值：`ysdk.environment.payload`。

[*key_referrer]: 来自促销活动的跳转数据。如果游戏是通过活动横幅的深度链接打开的，则存在此数据。否则为 `undefined`。

[*key_type]: 跳转来源。始终为 `"promo"`。

[*key_promo_id]: 控制台中 **Promos** 标签页上的活动 ID。

[*key_intent]: 任意字符串，例如 `open_starter_pack`。用于配置点击促销活动后的标准操作并收集相关分析数据。可选参数。

[*key_inapp_id]: [开发人员控制台](https://yandex.com/dev/games/doc/zh/console/promo-and-discounts.md) **Inaps** 标签页中的[应用内购买 ID](https://yandex.com/dev/games/doc/zh/console/purchases.md#add-purchases)。用于打开平台购买对话框。可选参数（仅适用于折扣促销活动）。