---
metadata:
  - name: generator
    content: Diplodoc Platform v5.54.4
alternate:
  - https://yandex.com.tr/dev/games/doc/en/sdk/sdk-leaderboard.md
  - https://yandex.com.tr/dev/games/doc/hi/sdk/sdk-leaderboard.md
  - https://yandex.com.tr/dev/games/doc/ko/sdk/sdk-leaderboard.md
  - https://yandex.com.tr/dev/games/doc/ru/sdk/sdk-leaderboard.md
  - https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-leaderboard.md
  - https://yandex.com.tr/dev/games/doc/vi/sdk/sdk-leaderboard.md
  - https://yandex.com.tr/dev/games/doc/zh/sdk/sdk-leaderboard.md
  - href: tr/sdk/sdk-leaderboard.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.tr/dev/games/doc/tr/llms.txt

# Lider tahtaları

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

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

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

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

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

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

Oyun sayfasında kişiselleştirilmiş lider tahtalarını (lider tabloları) en iyi oyuncuların sonuçlarıyla ve giriş yapmış kullanıcının sıralamadaki konumuyla gösterebilirsiniz.

Lider tahtalarına yapılan isteklerin çalışması için şu koşulları yerine getirin:

- Oyun kodunda SDK'yı [bağlayın ve yapılandırın](https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-about.md#use), böylece nesnesi `ysdk` değişkeni aracılığıyla erişilebilir olsun;
- Geliştirici Konsolunda lider tahtasını [oluşturun](https://yandex.com.tr/dev/games/doc/tr/concepts/leaderboards.md).

{% note alert %}

[Konsol'da](https://games.yandex.com/console){.external} **Technical leaderboard name** alanında ilgili ada sahip bir lider tahtası yoksa, istekler 404 hatası verecektir.

{% endnote %}



## Başlatma {#init}

Lider tahtası metodlarını çağırmak için doğrudan `ysdk.leaderboards`'a başvurun.

{% note alert %}

`ysdk.getLeaderboards()` metoduyla `lb` nesnesinin başlatılması artık kullanımdan kaldırılmıştır.

{% cut "Eski metodlar" %}

```javascript showLineNumbers
const ysdk = await YaGames.init();

const lb = await ysdk.getLeaderboards();

// Lider tahtası metodlarının eski ve yeni yöntemlerle çağrılmasının karşılığı:
// lb.getLeaderboardDescription() → ysdk.leaderboards.getDescription()
// lb.setLeaderboardScore() → ysdk.leaderboards.setScore()
// lb.getLeaderboardPlayerEntry() → ysdk.leaderboards.getPlayerEntry()
// lb.getLeaderboardEntries() → ysdk.leaderboards.getEntries()
```

{% endcut %}

{% endnote %}



## Lider tahtası açıklaması {#description}

Lider tahtasının açıklamasını adına göre almak için `ysdk.leaderboards.getDescription()` metodunu kullanın.

**Metodun imzası**

```typescript showLineNumbers
interface ILeaderboardDescription {
    [appID](*key_appID): string;
    [default](*key_default): boolean;
    description: {
        [invert_sort_order](*key_invert_sort_order): boolean;
        score_format: {
            options: {
                [decimal_offset](*key_decimal_offset): number;
            };
            [type](*key_type): 'numeric' | 'time';
        };
        [sort_order](*key_sort_order): string;
    };
    [name](*key_name): string;
    [title](*key_title): Record<Locale, string>;
}

function getDescription(
    [leaderboardName](*key_name): string
): Promise<ILeaderboardDescription> {}
```

Tek parametre olarak lider tahtasının teknik adını `leaderboardName` alır. Aşağıdaki alanları içeren lider tahtası açıklamasıyla bir nesne döndürür:

<div class="table-25 table-2c25">

#|
|| **Parametre** | **Tür** | **Açıklama** ||
|| `appID` | `string` | Uygulama kimliği. ||
|| `default` | `boolean` | `true` ise, lider tablosu ana lider tablosudur. ||
|| `invert_sort_order` | `boolean` | Sıralama yönü:
- `false` — azalan sırada (en yüksek puana sahip kullanıcılar ilk sıralarda yer alır).
- `true` — artan sırada (en düşük puana sahip kullanıcılar ilk sıralarda yer alır). ||
|| `sort_order` | `string` | Dize formatında sıralama yönü:
- `'DESC'` — azalan sırada.
- `'ASC'` — artan sırada. ||
|| `decimal_offset` | `number` | Puanın ondalık kısmının boyutu. Örneğin, `decimal_offset: 2` ile 1234 sayısı 12.34 olarak görüntülenir. ||
|| `type` | `'numeric'` \| `'time'` | Lider tablosu sonuç türü. Mevcut değerler: `numeric` (sayı), `time` (milisaniye). ||
|| `name` | `string` | Konsolda **Technical leaderboard name** alanında belirtilen lider tablosu adı. ||
|| `title` | `Record<Locale, string>` | Yerelleştirilmiş başlıkların listesi. Olası dil kodları [Diller ve alan adları](https://yandex.com.tr/dev/games/doc/tr/concepts/languages-and-domains.md) sayfasında listelenmiştir. ||
|#

</div>


#### Örnek {#description-example}

```javascript showLineNumbers
const ysdk = await YaGames.init();

const lb = await ysdk.leaderboards.getDescription('leaderboard2021');

console.log(lb);
```



## Yeni sonuç {#set-score}

{% note alert %}

İstek yalnızca giriş yapmış kullanıcılar için kullanılabilir. Giriş durumunu nasıl kontrol edeceğinizi ve giriş diyalogunu nasıl çağıracağınızı [Kullanıcı yetkilendirmesi](https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-player.md#auth) bölümünde bulabilirsiniz.

İsteği göndermeden önce `ysdk.isAvailableMethod('leaderboards.setScore')` ile metodun kullanılabilirliğini kontrol edin. Metod `Promise<Boolean>` döndürür.

Sonuçların girişten bağımsız olarak tüm kullanıcılar için kaydedilmesini sağlamak için, uygulama kodunda özel bir lider tahtasını kendiniz yazmanızı öneririz. Teknoloji seçimi sınırlı değildir.

{% endnote %}

Oyuncuya yeni bir sonuç ayarlamak için `ysdk.leaderboards.setScore()` metodunu kullanın.

**Metodun imzası**

```typescript showLineNumbers
function setScore(
    [leaderboardName](*key_name): string,
    [score](*key_score): number,
    [extraData](*key_extraData)?: string
): Promise<void> {}
```

Parametre alır:

<div class="table-25 table-2c25">

#|
|| **Parametre** | **Tür** | **Açıklama** ||
|| `leaderboardName` | `string` | Konsolda **Technical leaderboard name** alanında belirtilen lider tablosu adı. ||
|| `score` | `number` | Sonuç değeri. Negatif olamaz, maksimum değer yalnızca JavaScript mantığıyla sınırlıdır. [Lider tablosu türü](*key_type) `time` ise, değer milisaniye cinsinden iletilmelidir. ||
|| `extraData` | `string` | Kullanıcı açıklaması. İsteğe bağlı parametre. ||
|#

</div>

{% note info %}

İstek 1 saniyede en fazla 1 kez gönderilebilir, aksi takdirde hatayla reddedilecektir.

{% endnote %}


#### Örnek {#set-score-example}

```javascript showLineNumbers
const ysdk = await YaGames.init();

await ysdk.leaderboards.setScore('leaderboard2021', 120);

await ysdk.leaderboards.setScore('leaderboard2021', 120, 'My favourite player!');
```



## Sıralama alınması {#get-entry}

{% note alert %}

İstek yalnızca giriş yapmış kullanıcılar için kullanılabilir. Giriş durumunu nasıl kontrol edeceğinizi ve giriş diyalogunu nasıl çağıracağınızı [Kullanıcı yetkilendirmesi](https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-player.md#auth) bölümünde bulabilirsiniz..

İsteği göndermeden önce `ysdk.isAvailableMethod('leaderboards.getPlayerEntry')` ile metodun kullanılabilirliğini kontrol edin. Metod `Promise<Boolean>` döndürür.

Sonuçların girişten bağımsız olarak tüm kullanıcılar için kaydedilmesini sağlamak için, uygulama kodunda özel bir lider tahtasını kendiniz yazmanızı öneririz. Teknoloji seçimi sınırlı değildir.



{% endnote %}

Kullanıcının sıralamasını almak için `ysdk.leaderboards.getPlayerEntry()` metodunu kullanın.

**Metodun imzası**

```typescript showLineNumbers
interface ILeaderboardEntry {
    [extraData](*key_extraData): string;
    [rank](*key_userRank): number;
    [score](*key_score): number;
    player: {
        [publicName](*key_publicName): string;
        [uniqueID](*key_uniqueID): string;
        [getAvatarSrc](*key_getAvatarSrc): (size?: 'small' | 'medium' | 'large') => string;
        [getAvatarSrcSet](*key_getAvatarSrcSet): (size?: 'small' | 'medium' | 'large') => string;
    }
}

function getPlayerEntry(
    [leaderboardName](*key_name): string
): Promise<ILeaderboardEntry> {}
```

Tek parametre olarak lider tahtasının teknik adını `leaderboardName` alır. Aşağıdaki alanları içeren kullanıcı sıralamasıyla bir nesne döndürür:

<div class="table-25 table-2c25">

#|
|| **Parametre** | **Tür** | **Açıklama** ||
|| `score` | `number` | Sonuç değeri. ||
|| `rank` | `number` | Kullanıcının lider tablosundaki konumu. ||
|| `extraData` | `string` | Kullanıcı açıklaması. ||
|| `publicName` | `string` | Kullanıcı adı. ||
|| `uniqueID` | `string` | Kullanıcının benzersiz kimliği. ||
|| `getAvatarSrc` | `(size?: TSize) => string` | Belirtilen boyutta kullanıcı avatarının URL'sini döndürür. Olası `size` değerleri: `small`, `medium`, `large`. ||
|| `getAvatarSrcSet` | `(size?: TSize) => string` | Retina ekranlar için uygun kullanıcı avatarının srcset'ini döndürür. Olası `size` değerleri: `small`, `medium`, `large`. ||
|#

</div>

{% note info %}

İstek 5 dakikada en fazla 60 kez gönderilebilir, aksi takdirde hatayla reddedilecektir.

{% endnote %}


#### Örnek {#get-entry-example}

```javascript showLineNumbers
const ysdk = await YaGames.init();

try {
    const res = await ysdk.leaderboards.getPlayerEntry('leaderboard2021');

    console.log(res);
} catch (err) {
    if (err.code === 'LEADERBOARD_PLAYER_NOT_PRESENT') {
        // Oyuncunun lider tahtasında kaydı yoksa tetiklenir.
    }
}
```



## Lider tahtası kayıtları {#get-entries}

Kullanıcı sıralamasını görüntülemek için `ysdk.leaderboards.getEntries()` metodunu kullanın.

**Metodun imzası**

```typescript showLineNumbers
interface ILeaderboardEntries {
    [leaderboard](*key_leaderboard): ILeaderboardDescription;
    [ranges](*key_ranges): {
        [start](*key_start): number;
        [size](*key_size): number;
    }[];
    [userRank](*key_userRank): number;
    [entries](*key_entries): ILeaderboardEntry[];
}

function getEntries(
    [leaderboardName](*key_name): string,
    options: {
        [includeUser](*key_includeUser)?: boolean;
        [quantityAround](*key_quantityAround)?: number;
        [quantityTop](*key_quantityTop)?: number;
    }
): Promise<ILeaderboardEntries> {}
```

Lider tahtasının teknik adını `leaderboardName` ve isteğe bağlı `options` parametrelerini alır:

<div class="table-25 table-2c25">

#|
|| **Seçenek** | **Tür** | **Açıklama** ||
|| `includeUser` | `boolean` | Yetkilendirilmiş kullanıcının yanıta dahil edilip edilmeyeceğini belirler:
- `true` — yanıta dahil edilir.
- `false` (varsayılan) — dahil edilmez. ||
|| `quantityAround` | `number` | Lider tablosunda kullanıcının altında ve üstünde döndürülecek kayıt sayısı. Minimum değer 1, maksimum değer 10. Varsayılan olarak 5 döndürülür. ||
|| `quantityTop` | `number` | Lider tablosu zirvesinden kayıt sayısı. Minimum değer 1, maksimum değer 20. Varsayılan olarak 5 döndürülür. ||
|#

</div>

Aşağıdaki alanları içeren kullanıcı sıralamasıyla `Promise<ILeaderboardEntries>` nesnesi döndürür:

<div class="table-25 table-2c25">

#|
|| **Parametre** | **Tür** | **Açıklama** ||
|| `leaderboard` | `ILeaderboardDescription` | [Lider tahtası açıklaması](#description) ||
|| `ranges` | `object[]` | Yanıttaki konum aralıkları. ||
|| `start` | `number` | Sıralamadaki konum. Sayım sıfırdan başlar, bu nedenle 1. konum sıfırıncı öğe olarak kabul edilir. ||
|| `size` | `number` | İstenen kayıt sayısı. Yeterli veri yoksa, yanıtla eşleşmeyebilir. ||
|| `userRank` | `number` | Kullanıcının sıralamadaki konumu. Yoksa veya kullanıcı dahil edilmeden zirve isteği yapılmışsa 0'a eşittir. ||
|| `entries` | `ILeaderboardEntry[]` | Sıralama kayıtları dizisi. Kayıt, [Sıralama alınması](#get-entry) metodundan döndürülen değerle aynıdır. ||
|#

</div>

{% note info %}

İstek 5 dakikada en fazla 20 kez gönderilebilir, aksi takdirde hatayla reddedilecektir.

{% endnote %}


#### Örnek {#get-entries-example}

```javascript showLineNumbers
const ysdk = await YaGames.init();

// En iyi 10 oyuncuyu ve kullanıcının yakınındaki 3 kaydı alma.
const entries = await ysdk.leaderboards.getEntries('leaderboard2021', {
    quantityTop: 10,
    includeUser: true,
    quantityAround: 3
});

console.log(entries);
```



## Metod kısıtlamaları {#limits}

<div class="table-25">

#|
|| **Metod** | **Açıklama** | **Limit** | **Kullanıcı yetkilendirmesi** ||
|| `ysdk.leaderboards.setScore()` | [Oyuncunun yeni sonucunu ayarla](#set-score) | 1 saniyede 1 istek | Zorunlu ||
|| `ysdk.leaderboards.getPlayerEntry()` | [Tek bir kullanıcının sıralamasını görüntüle](#get-entry) | 5 dakikada 60 istek | Zorunlu ||
|| `ysdk.leaderboards.getEntries()` | [Birden fazla kullanıcının sıralamasını al](#get-entries) | 5 dakikada 20 istek | İsteğe bağlı ||
|#

</div>

Diğer istekler için limit: 5 dakikada 20 istek.



## Sorun çözme {#faq}

{% note tip %}

`ysdk.isAvailableMethod()` ve `ysdk.leaderboards.setScore()` metodlarının kombinasyonunu kullanırken, giriş yapmamış kullanıcılar lider tahtasına dahil olmaz ve ilerlemelerini göremezler. Sonuçların tüm oyuncular için kaydedilmesini sağlamak için, uygulama kodunda özel bir lider tahtası oluşturmanızı öneririz. Teknoloji seçimi sınırlı değildir.

{% endnote %}

### Object already exists {#object-already-exists}

Hata, eski bir adla yeni bir lider tahtası oluşturulmaya çalışıldığında ortaya çıkar. Daha önce kullanılmamış bir ad girin.

### Kullanıcı gizli {#player-hidden}

"Kullanıcı gizli" yazısı, oyuncu avatarını ve adını kullanma izni vermediğinde görüntülenir. Kullanıcı verilerine erişim, [profilindeki](https://yandex.com.tr/games/user){.external} ayarlara bağlıdır. Daha fazla bilgi için [Başlatma](https://yandex.com.tr/dev/games/doc/tr/sdk/sdk-player.md#getplayer) bölümüne bakın.

### Hata 404 {#leaderboard-404}

Lider tahtası için SDK metodlarını çağırırken 404 hatası oluşuyorsa, [Geliştirici Konsolu'nda](https://games.yandex.com/console){.external} **Technical leaderboard name** alanında ilgili ada sahip bir lider tahtasının oluşturulduğunu kontrol edin.



---

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

Destek ekibi, hazır oyunu Yandex Oyun platformuna yerleştirmenize yardımcı olur. Geliştirme ve test etme konularındaki uygulamalı sorulara ise diğer geliştiriciler [Discord Topluluğu](https://discord.com/invite/wU4p3whr4T){.external} yanıt verir.

{% endnote %}

Yandex Games SDK kullanırken sorunla karşılaşırsanız veya sorunuz varsa, lütfen destek ekibiyle iletişime geçin:

<!-- source: tr/_includes/button-chat.md -->
<a href="https://yandex.com/chat/#/user/a4fa5c06-75db-9b38-6eea-b1673785f7d5">
  <span class="button">Sohbete yaz</span>
</a>
<!-- endsource: tr/_includes/button-chat.md -->
<!-- endsource: tr/_includes/sdk-support.md -->

[*key_name]: Konsol'da **Technical leaderboard name** alanında belirtilen lider tablosu adı.

[*key_appID]: Uygulama kimliği.

[*key_default]: `true` ise, lider tablosu ana tablodur.

[*key_invert_sort_order]: Sıralama yönü:
- `false` — azalan sırada (en yüksek puana sahip kullanıcılar ilk sıralarda yer alır).
- `true` — artan sırada (en düşük puana sahip kullanıcılar ilk sıralarda yer alır).

[*key_sort_order]: Dize formatında sıralama yönü:
- `'DESC'` – azalan sırada (en yüksek puana sahip kullanıcılar ilk sıralarda yer alır).
- `'ASC'` — artan sırada (en düşük puana sahip kullanıcılar ilk sıralarda yer alır).

[*key_decimal_offset]: Puanın ondalık kısmının boyutu. Örneğin, `decimal_offset: 2` ile 1234 sayısı 12.34 olarak görüntülenir.

[*key_type]: Lider tablosu sonuç türü. Mevcut değerler: `numeric` (sayı), `time` (milisaniye).

[*key_title]: Yerelleştirilmiş adların listesi. Olası dil kodları [{#T}](https://yandex.com.tr/dev/games/doc/tr/concepts/languages-and-domains.md) sayfasında listelenmiştir.

[*key_score]: Sonuç değeri. Negatif olamaz, maksimum değer yalnızca JavaScript mantığıyla sınırlıdır.

[*key_extraData]: Kullanıcı açıklaması.

[*key_userRank]: Kullanıcının lider tablosundaki konumu.

[*key_publicName]: Kullanıcı adı.

[*key_uniqueID]: Kullanıcının benzersiz kimliği.

[*key_getAvatarSrc]: Kullanıcının profil resminin URL'sini döndürür. Olası `size` değerleri: `small`, `medium`, `large`.

[*key_getAvatarSrcSet]: Retina ekranlar için uygun olan kullanıcının profil resminin srcset'ini döndürür. Olası `size` değerleri: `small`, `medium`, `large`.

[*key_includeUser]: Yetkilendirilmiş kullanıcının yanıta dahil edilip edilmeyeceğini belirler:
- `true` - yanıta dahil edilir.
- `false` (varsayılan) - dahil edilmez.

[*key_quantityAround]: Lider tablosunda kullanıcının altında ve üstünde döndürülmesi gereken kayıt sayısı. Minimum değer — 1, maksimum – 10. Varsayılan olarak 5 döndürülür.

[*key_quantityTop]: Lider tablosunun zirvesinden kayıt sayısı. Minimum değer — 1, maksimum — 20. Varsayılan olarak 5 döndürülür.

[*key_leaderboard]: [{#T}](#description).

[*key_ranges]: Yanıttaki konum aralıkları.

[*key_start]: Sıralamadaki konum. Sayım sıfırdan başlar, bu nedenle 1. konum sıfırıncı öğe olarak kabul edilir.

[*key_size]: İstenen kayıt sayısı. Yeterli veri yoksa, yanıtla eşleşmeyebilir.

[*key_entries]: Sıralama kayıtları dizisi. Kayıt, [{#T}](#get-entry) metodundan döndürülen değerle aynıdır.