Platform
Use PlatformFetchGamePlatform as the main configuration request during site startup. Cache the result on the client and refresh it when the page reloads or your server invalidates its platform-settings cache.
Execution context: browser or platform server. A browser sends Content-Type, X-Game-Platform-ID, its matching Origin, and player cookies with credentials: 'include'. A server additionally sends X-Game-Platform-Api-Key. Never expose the API key to the browser.
Load the complete platform site configuration
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
}
}
}
}
}
}
Variables:
{
"lang": "EN"
}
A successful result starts with this shape; the remaining selected branches contain menus and monetization settings:
{
"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": "Example Games",
"supportedLanguages": ["EN", "RU"],
"styles": {
"layout": "PREMIUM",
"colors": {
"primary": "#7c3aed",
"contentBackground": "#ffffff",
"accent": "#f59e0b",
"contentAccent": "#111827",
"asideBackground": "#f3f4f6"
}
}
}
}
}
Apply the response
- Use
styles, icons, and localized text to build the visual theme. - Use
apiUrlfor subsequent White-label API requests when it differs from the standard endpoint. - Build the header, sidebar, and footer from
menus; route entity items bytypeandentityId, and direct links byurl. - Use
categoriesandtagsfor labels and links on category, tag, and game pages. - Fill default meta tags from
seoSettings. Apply entity templates on category, tag, collection, and game routes. - Initialize only the analytics counters that contain configured values, and respect the configured consent flow. See Analytics for the shared privacy requirements.
- Render only enabled ad placements. The advertising implementation must follow the returned
adsConfig; use its public provider identifiers when initializing AdFox, Advertonic, or AdSense. - Use
paymentsConfig,currency, andproductsListto render purchase UI. Never expect payment-service secrets in this response. - Show the promotion area only when
showPromoBlockis true, then load its content through the Promotions API. - Resolve
mainPageIdthrough the Pages API and legal page IDs or slugs through the same page router.
For the common advertising and payment concepts, see Advertising and Purchases. Those sections describe the product features; the query above remains the source of configuration specific to the platform site.