Перейти к основному содержимому
🎉 GP CONF 2026: Конференция о рынке WEB-игр 👾 23 сентября | Подробнее

Площадка

Используйте PlatformFetchGamePlatform как основной запрос конфигурации при запуске витрины. Кэшируйте результат на клиенте и обновляйте его при перезагрузке страницы или после сброса серверного кэша настроек.

Контекст выполнения: браузер витрины или сервер площадки. Браузер передаёт Content-Type, X-Game-Platform-ID, совпадающий Origin и cookie игрока с credentials: 'include'. Сервер дополнительно передаёт X-Game-Platform-Api-Key. Никогда не раскрывайте API-ключ браузеру.

Получение полной конфигурации витрины

fragment PlatformSeoTemplate on SeoTemplates {
headerTemplate(lang: $lang)
h1Template(lang: $lang)
descriptionTemplate(lang: $lang)
ogTitleTemplate(lang: $lang)
ogDescriptionTemplate(lang: $lang)
}

fragment PlatformTypography on GamePlatformTypography {
fontFamily
fontSize
lineHeight
fontWeight
letterSpacing
}

fragment PlatformBannerConfig on BannerConfig {
enableWrapper
wrapperCountdown
frequency
refreshInterval
position
biddersConfig {
codeType
sizes
}
bidders {
key
adServer
params {
key
value
}
}
}

query PlatformConfiguration($lang: Lang) {
result: PlatformFetchGamePlatform {
__typename
... on Problem {
message
}
... on GamePlatform {
id
domain
apiUrl
platformUrl
mainPageId
showPrivacyConsentCheckbox
clickableTitlesForCollections
showBreadcrumbs
showPromoBlock
name(lang: $lang)
title(lang: $lang)
description(lang: $lang)
icon
fullIcon
favicon
supportedLanguages
openGameInSameTab
legalInfo {
privacyPolicyPageId
personalDataConsentPageId
privacyPolicyPageSlug(lang: $lang)
personalDataConsentPageSlug(lang: $lang)
companyLegalName(lang: $lang)
}
socialNetworks {
vk
facebook
twitter
telegram
discord
youtube
}
seoSettings {
ogTitle(lang: $lang)
ogDescription(lang: $lang)
ogImage(lang: $lang)
footerText(lang: $lang)
}
categories(lang: $lang) {
key
name
url
}
tags(lang: $lang) {
key
name
url
}
categoriesSeoTemplates {
...PlatformSeoTemplate
}
tagsSeoTemplates {
...PlatformSeoTemplate
}
collectionsSeoTemplates {
...PlatformSeoTemplate
}
gamesSeoTemplates {
...PlatformSeoTemplate
}
ymCounterId
ymCounterIds
gtagCounterId
mailRuCounterIds
liveInternetCounterIds
styles {
layout
header {
fullWidth
rounded
logoHeight
burgerIcon
}
footer {
isNeedToShowCustomFooter
}
aside {
style
isMonoColor
}
radius {
gameTiles
}
colors {
primary
contentBackground
accent
contentAccent
asideBackground
}
text {
fontSources {
family
weight
src
}
typography {
title1 {
...PlatformTypography
}
title2 {
...PlatformTypography
}
title3 {
...PlatformTypography
}
title4 {
...PlatformTypography
}
title5 {
...PlatformTypography
}
body {
...PlatformTypography
}
body2 {
...PlatformTypography
}
}
}
}
menus {
type
items {
type
entityId
name(lang: $lang)
url(lang: $lang)
icon(lang: $lang)
}
}
adsConfig {
id
adFoxOwnerId
advertonicUserId
adsenseClientId
configs {
web {
implementation
bidders {
id
key
adServer
adServerBidderId
cpmAdjustment
params {
key
type
}
}
banners {
type
enabled
enabledDesktop
bannerId
desktopBannerId
adServer
adServerDesktop
mobileConfig {
...PlatformBannerConfig
}
desktopConfig {
...PlatformBannerConfig
}
}
}
}
}
paymentsConfig {
id
configs {
web {
implementation
activeService
}
}
}
currency {
name(lang: $lang)
pluralisation(lang: $lang)
icon
code
precision
currencySpendUrl
separateCurrencySpendUrlEnabled
}
productsList {
count
items {
id
icon
tag
type
name(lang: $lang)
description(lang: $lang)
price(platform: PARTNER)
currency
currencySymbol
realCurrencyPrice(lang: $lang)
realCurrencyCode(lang: $lang)
realCurrencySymbol(lang: $lang)
benefits {
disableGameAds
disablePlatformAds
currencyAccrual
bonusCurrency
}
}
}
}
}
}

Переменные:

{
"lang": "RU"
}

Успешный результат начинается со следующей структуры; остальные выбранные ветки содержат меню и настройки монетизации:

{
"data": {
"result": {
"__typename": "GamePlatform",
"id": 42,
"domain": "games.example.com",
"apiUrl": "https://api.gamepush.com/gs/api/graphql",
"platformUrl": "https://games.example.com",
"mainPageId": "home",
"name": "Пример игровой площадки",
"supportedLanguages": ["EN", "RU"],
"styles": {
"layout": "PREMIUM",
"colors": {
"primary": "#7c3aed",
"contentBackground": "#ffffff",
"accent": "#f59e0b",
"contentAccent": "#111827",
"asideBackground": "#f3f4f6"
}
}
}
}
}

Применение ответа

  • Используйте styles, изображения и локализованные тексты для визуальной темы.
  • Используйте apiUrl для следующих запросов витрины, если он отличается от стандартного адреса.
  • Соберите шапку, сайдбар и футер из menus: элементы сущностей маршрутизируйте по type и entityId, прямые ссылки — по url.
  • Используйте categories и tags для названий и ссылок на страницах категорий, тегов и игр.
  • Заполните базовые метатеги из seoSettings. На маршрутах категорий, тегов, подборок и игр применяйте шаблоны соответствующих сущностей.
  • Инициализируйте только те счётчики аналитики, для которых вернулись настроенные значения, и учитывайте настроенный сценарий согласия. Общие требования к персональным данным описаны в разделе «Аналитика».
  • Показывайте только включённые рекламные места и используйте реализацию из adsConfig. При инициализации AdFox, Advertonic или AdSense передавайте публичные идентификаторы провайдеров из ответа.
  • Используйте paymentsConfig, currency и productsList для интерфейса покупок. Секреты платёжных систем в этом ответе не возвращаются.
  • Показывайте промоблок только при showPromoBlock: true, а его содержимое получайте через API продвижения.
  • Получите mainPageId, ID и slug юридических страниц через API страниц.

Общие принципы этих возможностей описаны в разделах «Реклама» и «Покупки». Эти разделы объясняют продуктовые возможности, а запрос выше остаётся источником специфичной для витрины конфигурации.