Ad Slots Configuration
Chunk #0
# **Introduction**
Ad Slots improve ad monetisation by supporting a new Bidding system that works with both MAX and Google ads. This update helps track ad performance more accurately by storing recent ad impressions and calculating revenue more precisely.
You will also learn to configure Ad Slot Banks in this user guide.
* * *
# **Key Differences Between Ad Slots and Ad Units**
- Ad Slots are designed to support complex bidding setups by grouping all relevant settings in one place. Unlike Ad Units, which are tightly coupled to a single mediation platform, Ad Slots can accommodate rules for MAX, Meta, and Google networks.
- CPM values for Ad Slots are calculated using a dedicated storage system that tracks the latest impression events:
- Impressions from Google’s and Max’s post-bid mediation are used in Ad Slot CPM calculations.
- In summary, Ad Units are platform-specific identifiers used to serve ads whereas Ad Slots are configuration containers that manage bidding logic, CPM tracking, and data storage for one or more Ad Units.
# **Configuring Ad Slots**
Access the Ad slots as shown in the below image:

## **Settings for Each Ad Slot**
- **Name:** Specify a unique name.
- **Labels:** Select a label from the dropdown.
- **Type:** Select the type of Ad slot. Options: Interstitials or Rewarded Videos
- **Ad Ranking Multiplier:** This setting defines the relative importance of a specific ad network within the client-side ad ranking system. It accepts a floating-point value (minimum: 0.1, up to 2 decimal places).
**Behaviour:**
- Higher values increase a network’s ranking priority.
- Lower values reduce its priority.
- Actual CPM remains unchanged; this only affects which ad is shown first.
**Example:**
Assume 3 cached ads with the same CPM ($10), but different Ad Ranking Multipliers:
| Ad Slot | Multiplier | CPM | Ranking Revenue (CPM × Multiplier) |
| --- | --- | --- | --- |
| Google 1 | 2.0 | 10 | 20 |
| MAX 2 | 1.8 | 10 | 18 |
| MAX 1 | 1.5 | 10 | 15 |
**Resulting display order:**
1. **Google 1**
2. **MAX 2**
3. **MAX 1**
Even though the ranking order changes, each ad unit still has the same CPM (e.g., $10). What we manage here is the order in which networks are prioritised for ad delivery based on their adjusted CPM values.
- **Ad Unit Mediation:** Select between **MAX,** **Google or Meta**.
## **Adding Ad Units**
- Multiple Ad Units can be added per Ad Slot.

Refer to the [Settings for Each Ad Unit](/wiki/spaces/KB/pages/4304109569/Setting+up+Ad+Units#Settings-for-Each-Ad-Unit), [CPM Floor Settings](/wiki/spaces/KB/pages/4304109569/Setting+up+Ad+Units#Setting-the-CPM-Floor), and [Ad Slots Ad Units fields](/wiki/spaces/KB/pages/4304109569/Setting+up+Ad+Units#Ad-Slots-Ad-Unit-Fields) sections for more details.
## Configuring Ad Slot Banks
The Ad Slot Bank feature lets you organise and structure your ad delivery setup by grouping multiple Ad Slots under a shared configuration. You can define complex slot hierarchies and reuse them across monetisation workflows.
### **Accessing Ad Slot Bank Configurations**
To access Ad Slot Banks:
- Navigate to the **Ads** menu in the sidebar.
- Click **Ad Slot Bank** to view all existing configurations.

* * *
### **List View and Filters**
The list displays all configured Ad Slot Banks. Use it to search, filter, or modify configurations.
#### **Key Columns**
- ID
- Name
- Labels
- Availability
- In Use
- Updated At
- Actions: Edit, duplicate, or delete a configuration.
#### **Filters**
You can filter the list by:
- ID
- Name
- Labels
- Availability state
- Created after / updated after
- Created by you
* * *
### **Creating Ad Slot Bank**
- Click **[+New]** to open a configuration view.
**Configuration Fields:**
- **Name** : Enter a name for the bank.
- **Label** : Add tags to help organise or filter configs.
- **Type:** Select Interstitial or Rewarded Videos type for the Ad slot bank.

#### **Adding and Structuring Ad Slots**
Each Ad Slot Bank can contain one or more Ad Slots, with flexible nesting.
- Click **[+ Add Ad Slot]** to add an ad slot.
- From the **Ad Slot Bank 1** dropdown select the pertinent Ad slot.
- Click **[+ Add Child Section]** to add a child section to the Ad slot.
You can add up to three levels of nesting.
- Click **[+ Add Ad Slot]** to add additional ad slots.
| **Field Name** | **Description** | **Comments** |
| **Override refresh period** | If setting is ON, user can configure Refresh period which will be applied for selected Ad Slot. Ad Slots for which refresh period if OFF, will use setting “Request refresh period“ from tab “Waterfall“ While Configuring Ads from the Ads Config section, you can specify the request refresh period from the Waterfall tab.  The Request Refresh period is how long the game waits before attempting to request another ad after a failed attempt. | Type:Boolean - Default: False |
| **Ad Request refresh period** | Period the the game waits before attempting to request another ad after a failed attempt | - Type = Float - Empty by default - Mandatory - Min: 1.0 - Available if **Override refresh period** = true |
| **Enable increment** | Check to enable increments | Type:Boolean - Default: False - Available if **Override refresh period** = true |
| **Increment refresh period with every unsuccessful attempt X** | Specify the refresh rate to multiply in every consecutive attempt (resets on successful request) | - Type = Float - Min: 1.0 - Default: Empty - Available and sent via API if **Override refresh period** = true - Mandatory |
| **Until a max value** | The maximum value that the ad request refresh period can reach. It is equal to basic ad request refresh period if not set in Admin tool | - Type = Integer - Min: 1.0 - Default: Empty - Available and sent via API if **Override refresh period** = true - Mandatory |

#### **Rules and Guidelines**
- At least one Ad Slot is required.
- Slots are not added by default.
- Each Ad Slot must be configured manually if added (defaults are empty).
- You can nest up to 3 levels deep (4 total including root).
- Nesting can be applied to any Ad Slot, and multiple slots can exist on the same level.
- Slot names automatically reflect hierarchy (e.g., 1.1, 1.1.1, 1.1.1.1 etc.).
- Each nested slot can be deleted individually.
- A specific Ad Slot ID can only appear once per configuration.
* * *
Ad Units IDs Configuration
Chunk #0
**Introduction**
The Ad Unit ID configuration system allows you to centrally manage all MAX Ad Unit IDs across your app by assigning them readable names and linking them to specific ad types and platforms. This ensures easier identification and more efficient setup of ads in your monetisation configuration.
* * *
## **New Ad Unit ID Configuration Section**
Access this section via the **Ads → Ad Unit IDs** menu.

### **List View and Available Filters**

### **Standard Fields for New/Edit View**
- Name
- Availability (Edit view only, inherited from Ads Config)
- Labels
- Notes
#### **Fields Descriptions**
| **Location** | **Name** | **Type** | **Validations** | **Hint** |
| --- | --- | --- | --- | --- |
| Ads → Ad Unit ID | Type | Dropdown (Banner, Interstitial, Rewarded Videos) | Default: Interstitial | Select type to configure ID for a specific area |
| Ads → Ad Unit ID | Platform | Dropdown (iOS, Android) | Default: iOS | - |
| Ads → Ad Unit ID | Mediation | Dropdown (MAX, Google, Meta) | Default: MAX | - |
| Ads → Ad Unit ID | Ad Unit ID | String | Mandatory, Unique | Specify ID to be used |
| Ads → Ad Unit ID | Max Analytics bucket | Integer | Mandatory for Interstitial or Rewarded video. Optional for Banners Type. | Defines which bucket should be used for CPM calculation. Default: None |
* * *
## Using Ad Unit IDs and Ad Slots in Ads Config
Once defined, Ad Unit IDs and Ad slots can be selected in ads configuration.
### **Banner ID Settings**
Configure MAX Banner IDs per platform:
- You must select an Ad Unit ID from the predefined list.

| **Location** | **Name** | **Type** | **Validations** | **Hint** |
| Ads → Ads Config → Tab Banners | MAX iOS Banner ID | Dropdown (Filtered Ad Unit IDs) | Mandatory if enabled | Specify Banner ID for iOS |
| Ads → Ads Config → Tab Banners | MAX Android Banner ID | Dropdown (Filtered Ad Unit IDs) | Mandatory if enabled | Specify Banner ID for Android |
### **Rewarded Video Ad Unit Settings**

| **Location** | **Name** | **Type** | **Validations** |
| Ads → Ads Config → Tab Rewarded Videos | MAX iOS Rewarded Videos ID | Dropdown (Filtered Ad Unit IDs) | Mandatory, Default: None |
| Ads → Ads Config → Tab Rewarded Videos | MAX Android Rewarded Videos ID | Dropdown (Filtered Ad Unit IDs) | Mandatory, Default: None |
### **Interstitial Ad Unit Settings**

| **Location** | **Name** | **Type** | **Validations** |
| Ads → Ads Config → Tab Interstitials | MAX iOS Interstitial ID | Dropdown (Filtered Ad Unit IDs) | Optional, Default: None |
| Ads → Ads Config → Tab Interstitials | MAX Android Interstitial ID | Dropdown (Filtered Ad Unit IDs) | Optional, Default: None |
Archived Settings Configuration
Chunk #0
Settings that have been moved to the **“Archived”** tab are retained for compatibility purposes and are intended **only for configuring older client versions**. These settings are no longer actively used by current versions of the application but remain accessible to ensure legacy clients continue to function correctly.
T **able of Contents**
* * *
# Max Interstitials Ad Units
This setting allows you to manage and optimise interstitial ad units for the MAX ad platform. By configuring these units, you can control the delivery and behaviour of interstitial ads.
This setting is described in [detail here](/wiki/spaces/KB/pages/4304109569/Setting+up+Ad+Units#MAX-Interstitial-Ad-Units).
* * *
# Postbid CPM Floor Multiplier
This setting allows you to define how the CPM floor is managed for postbid ads. There are three options available for configuring the **Postbid CPM Floor Multiplier** :
- **Static** – A single, fixed multiplier is applied.
- **Range** – A flexible range of multipliers is applied with incremental steps.
- **Waterfall** – Multiple multipliers are applied in sequence, cascading through different values.
1. Enable the **Postbid CPM Floor Multiplier** field by clicking on the  **[green + sign]**.
2. From the **Postbid CPM Floor Multiplier Type** dropdown, select the relevant option.
3. Fill in the fields following the information listed in the table below.
Based on the selected type of **Postbid CPM Floor Multiplier** , the fields displayed will differ.
**Fields for Static Type:**

**Fields for Range Type:**

**Fields for Waterfall Type:**

| **Field Name** | **Description** | **Comments** |
| **Postbid CPM Floor Multiplier Type** | Select the type of CPM floor multiplier strategy. | Type: Dropdown with the following options: - **Static** : A single, fixed multiplier. - **Range** : A range of multipliers with steps. - **Waterfall** : Multiple multipliers applied in sequence. |
| **Min Postbid CPM Floor Multiplier** | Provide Minimum Postbid CPM floor Multiplier below which it can’t go down | Type: Float - Min: 0 - Max: 2 - Default: empty - Available and Mandatory only if **Postbid CPM floor Multiplier type** = Range or Static - **Max Postbid CPM Floor Multiplier** is available from tripledot-platform-ads 2.4.0 if If **Postbid CPM floor Multiplier type** = Range. |
| **CPM Multiplier Step in range** | Specify the step value between each multiplier in the range, incrementing from the minimum to the maximum. | Type: Float - Min: 0 - Max: 2 - Default: empty - Available and Mandatory only if **Postbid CPM floor Multiplier type** = Range |
| **Max Postbid CPM Floor Multiplier** | Define the upper limit of the CPM floor multiplier when the "Range" option is selected. | Type: Float - Min: 0 - Max: 2 - Default: empty - Available and Mandatory only if **Postbid CPM floor Multiplier type** = Range |
| **Initial value** | Set up initial CPM from which range will start working. | Type: Float - Optional - Default: empty - If the field is empty, Min Postbid CPM Floor Multiplier is used. - **Initial value** is available from tripledot-platform-ads 2.5 |
| **Levels. Type** | Select the type of levels for waterfall multiplier type. | Type: Dropdown with the list of following options: - Fixed - Multiplier - Default: Fixed |
| **Levels. Postbid CPM Floor** | Specify the Postbid CPM Floor Value based on the selected level type. | - Type = Float - Empty by default - Mandatory if Level is added - Min: 0.0 |
* * *
# Google Postbid IDs
The **Google Postbid IDs** setting allows you to optimise post-bidding ad requests.
The Postbid IDs for Android and iOS identify your app within Google's post bidding system.
| **Field Name** | **Description** | **Comments** |
| **Google Postbid Android ID** | Enter the **Postbid ID** specific to **Google Ads** for the Android platform. This ID helps configure and identify the Android app in Google's post bidding process. | Post bidding typically refers to bidding for an ad placement after an initial bid request. |
| **Google Postbid iOS ID** | Enter the **Postbid ID** specific to **Google Ads** for the iOS platform. Like the Android ID, this iOS ID configures and identifies the iOS app in Google's post-bidding process. | |
1. Enable the **Google Postbid IDs** field by clicking on the  **[green + sign].**
2. Fill in the fields following the information listed in the table above.

* * *
# **Google Postbid Requests Limit counter**
The **Google Postbid Requests Limit Counter** sets a configurable maximum number of requests before an ad is shown.
| **Field Name** | **Description** | **Comments** |
| **Google Postbid Requests Limit Counter** | The **Google Postbid Requests Limit Counter** field sets the maximum number of requests that can be sent to Google Postbid before an ad is shown. | This number resets once a MAX ad is displayed. **Google Postbid Requests Limit counter** Google Postbid Requests Limit Counter is available from tripledot-platform-ads 2.5.0 |
1. Enable the **Google Postbid Requests Limit Counter** field by clicking on the  **[green + sign].**
2. In the field, specify the maximum number of requests to be sent to Google Postbid before an ad is shown.

Configuring Ads in Game Server
Chunk #0
* * *
### Introduction
In this article, you’ll learn how to configure advertisements inside Game Server. Ads are A/B testable and can be configured following the logic used in Game Settings.
**Table of Contents**
* * *
## Ads Configuration
In Ads Configurations, you’ll find the basic settings required to serve ads into the game, and they are used to distribute the settings to players using rules and overrides.
Configurations work very much alike [Game Settings](/wiki/spaces/KB/pages/2580021328/Game+Settings+Configuration), and in the main page you’ll find 3 main areas:
- Base Config
- New (to create overrides)
- A list of overrides, with their priority, status, labels, availability and rules applied

**What does** _ **Override Used** _ **mean?**
_Override Used_ is a counter displays the number of times data from an override has been sent to a user within a 24-hour period, resetting at midnight UTC for accurate tracking every day.
## Ads Base Config
Base Config is the main configuration that includes all basic ads settings that are common for all users. Base Config is always Live, does not have rules, and has a priority of zero by default. Within the Base Config, you'll find the core game settings for each application, organized under various tabs. The number displayed next to each tab title indicates how many settings re enabled in that category.
While the Base Config is fully editable, if you need to apply specific values for a targeted group of users, you'll need to create an Override to customise the settings for that audience.
### **Accessing & Editing Ads Base Config**
To access Ads Base Config, navigate to Ads \> Configuration, and click **[Base Config]**.
 
Amazon Ads settings previously located under Game Settings are now available in **Ads Config** section (within the "General" tab). This ensures all ad package settings are maintained in one place for easier access and management.
**Migration Details**
- **Base Config Migration:**
All listed below Amazon settings have been migrated to Ads Config Base config.
- **Override Migration (Triple Tile only)**:
Settings from the Game Settings override in Triple Tile have been transferred to the Ads Config override in the same app.
These settings are marked as enabled in the Ads Config override to preserve the same behaviour.
You will now find the following Amazon Ads settings under:
**Ads Config → General Tab**
| **Platform** | **Setting Key** |
| --- | --- |
| iOS | `ads_amazon_ios_sdk_key` |
| iOS | `ads_amazon_ios_interstitial_id` |
| iOS | `ads_amazon_ios_banner_id` |
| iOS | `ads_amazon_ios_leaderboard_id` |
| Android | `ads_amazon_android_sdk_key` |
| Android | `ads_amazon_android_interstitial_id` |
| Android | `ads_amazon_android_banner_id` |
| Android | `ads_amazon_android_leaderboard_id` |
* * *
## Creating an Override
In order to send specific settings to sets of users, you can create an override for Ads Configuration. Overrides allow you to customise the advertisement experience for certain sets of users determined by rules.
- Overrides will **only** be applied to a user if the user complies with a set of rules that you will set up to differentiate groups of users. However, if the 2 overrides apply to different settings, the user can receive both overrides depending on the rules defined in each of them.
- Read more about overrides [](/wiki/spaces/KB/pages/2580021328/Game+Settings+Configuration#What-are-Overrides?).
- You can duplicate an existing override using the blue duplicate button.
1. To create an Override, navigate to **Ads \> Configuration** and click the green **[New]** button.
2. Assign a name, status, priority and availability to your Override. You can also add a label that will help you to organise and manage Ad Configs in Game Server easily. Start At/End At fields are optional, and allow you to create overrides scheduled to go live. Click [here](https://tripledotstudios.atlassian.net/wiki/spaces/KB/pages/edit-v2/3682861062#About-Start-At%2FEnd-At) to read more.
3. Click the **[green + sign]** to enable the fields and edit the configurations for your override. The edited configurations will appear marked with a blue number next to each tab.
At least one field and one rule should be enabled in the override.
1. Add the relevant rules for your override. Rules are necessary to segment players and distribute the override to them, and target different sets of users depending on their attributes. Learn more about rules[in this guide](https://tripledotstudios.atlassian.net/l/cp/osgQ0TAC).
2. Once you’re done, click the blue **[Save]** on the upper right corner and your override will be complete.
#### About Start At/End At
Start At/End At are 2 **optional** fields allow you to create overrides that are scheduled to go live (ie. become active) in the future to avoid having to set the status of the override manually to Active. Please note, however, that when Game Server reaches the **End At** date, the system does **not** automatically revert the status of the override.
Below you can find a diagram that explains the logic for Start Date.

Configuring Ads in Game Server
Chunk #1
Adding User Groups
In managing ad configurations, ensuring targeted and optimised ad experiences across diverse user segments is essential. Previously, to cater to these unique needs, the monetisation and product teams had to create multiple overrides for each setting, making it difficult to manage and review configurations across various segments.
To streamline this process, a new feature called **User Groups** has been introduced.
User Groups allow you to define multiple configurations for a single setting in one centralised location, with flexibility to assign different values for each user segment.
In this section, you’ll learn how to create, edit, and manage User Groups within the **Base Ads Configuration** settings. You will also understand how priorities are defined between user groups, overrides, and experiments.
This feature gives you the ability to add rules for each group, assign priority levels, and control the exact ad experience tailored to various user segments, all from a single interface.
### **Understanding User Groups in Configuration Priority**
In the configuration hierarchy, **User Groups** serve as an intermediate layer, positioned between **Overrides** and **Base Configurations**.
Here’s how they function and their role in the priority system:
**Priority Order**
- **Overrides** : Highest priority. Overrides take precedence over all other settings, ensuring that specific configurations are applied when explicitly defined.
- **User Groups** : Second priority. User Groups provide a flexible layer that allows configurations to be tailored for specific subsets of users.
- **Base Configurations** : Lowest priority. Base Configurations act as the default settings, applying when neither Overrides nor User Groups are applicable.
The **User Groups** will only apply if no Overrides or higher-priority settings (like experiments) are present.
**How User Groups Apply**
1. When a user matches a set of defined rules and there are **no Overrides or Experiments** that take precedence, the system checks which User Group the user belongs to.
2. The settings from this User Group will then be applied, based on the specific configuration associated with that group.
**Resolving Conflicts When a User Belongs to Multiple Groups**
- If a user qualifies for multiple User Groups (i.e., matches the rules of more than one group), the system will select the setting from the **group with the highest priority**.
- Priorities are set as numeric values, with **higher numbers indicating higher priority** (e.g., a group with priority 100 will override a group with priority 50).
**User Groups and Availability**
**User Groups impact** _ **Live/Test Availability** _: User Groups configurations are applied to settings that are both live and test, meaning they affect both the active and inactive configurations.
To configure a user group:
1. Navigate to Base Ads Configuration
- Go to the **Edit Base Ads Configuration**.

1. Access User Groups for a Setting
- In each ad setting tab, there will be a **User Groups** button next to each setting, displaying the number of user groups created.
- Click the **User Groups** button for the desired setting (e.g., "Placement Bank" for Rewarded Videos) to open the User Group configuration page for that specific setting.
1. Edit User Groups Page Overview
A list of user groups is displayed, each with its assigned priority.
- You will also see a list of user groups created for this setting, each with specific priority.
In the _Edit User Groups_ page, configurations are prioritised from **highest to lowest**.
- This means that a configuration with **priority 10** is ranked higher than one with **priority 1**.
- With higher-priority groups (those with larger numbers) taking precedence over lower-priority groups.
This structure ensures that configurations are enforced according to their designated importance, impacting the _LIVE_ availability and usage displayed for each group.
1. Adding User Groups
- Click on the **Add User Group** button to create a new group.
- Assign a unique **Name** for the new user group. Each user group is sorted by priority, with the highest priority at the top.
- Add details like **Status** (Active/Inactive), **Labels** , **Notes** , and any configuration for settings in the group. (These are optional)
1. Setting Rules for User Groups
- Define at least one rule for each user group.
- Add more rules by clicking on **Add Rule** , or organise rules with **AND/OR** conditions for more complex configurations.
1. User Group Management Options. You can duplicate, delete, reorder and expand/collapse the user groups.

1. Saving Changes
- After configuring or modifying user groups, click **Save** to apply the changes. This will return you to the **Base Ads Configuration** page.
- If you click **Cancel** , you will be redirected back to the **Base Ads Configuration** page without saving changes.
Activity Log
- Use the **Activity Log** button at the top of the **Edit User Groups** page to view the history of changes for the selected ad configuration and user groups.
1. Viewing ‘In Use’ Configurations
To make navigation easier, there is a “Jump to Configuration” link.
This allows you to quickly view the associated configurations for a User Group.

- When archiving a setting, ensure that it is not used in any user group. The system will validate this automatically to prevent errors.
## **User Groups in Audience Groups**
User Groups allow configurations to be tailored for specific segments within Audience Groups.
Perform the following steps for creating user groups in audience groups:
1. Click **Audience Groups**.
### **Accessing User Groups for a new Audience Group**
When configuring a new **Audience Group** for the first time in **Ads Configuration** , user groups cannot be set up immediately. Upon enabling a setting, the **User Groups** button appears next to it but remains inactive. Hovering over the button displays a tooltip: _"User groups will be available after the audience group is saved."_ To proceed with configuring user groups, the **Audience Group must first be saved**. This ensures that all configurations are properly initialised before assigning user groups.
### **Accessing User Groups for an Existing Audience Group**
When an audience group has already been configured as an Ads Config audience group, managing user groups becomes accessible within the settings. Upon opening the audience group, users will see a **User Groups** button next to each previously enabled setting, allowing for further configuration. If a new setting is enabled, the **User Groups** button remains disabled until the audience group is successfully saved with the updated setting.
Perform the following steps to configure a user group:
1. Click **Edit** to configure the **Audience Group**.
2. Enable the relevant setting. For each **enabled setting** , a **"User Groups"** button appears
3. If the setting was enabled previously, the user groups button is active and can be configured.
4. If the **setting was just enabled** , the button is **inactive until saved.** Once an Audience Group is **saved** , User Groups can be configured.
5. Configure the setting and save the Audience group. The **User Groups** button is now enabled.
### **Adding a New User Group**
1. Click **[+Add User Group]**.
2. Enter User Group Details: Name, Status, Availability, and optional details like Labels and Notes.
3. Define Rules for the User Group.

### **Managing User Groups.**
You can reorder, duplicate and delete the user groups.

* * *
### **Validation & Restrictions**
**Cannot disable a setting if User Groups exist. Can disable a setting only if no User Groups are present**
* * *
Game Settings Configuration
Chunk #0
**Introduction**
In this page you’ll find…
- The basics of Game Settings
- Creating Overrides
**Table of Contents**
* * *
# Getting Started with Game Settings
Game Settings are the core of Game Server, and they are used to configure the game and distribute the settings to players using a set of Rules and Overrides.
# What are Game Settings?
Game Settings are the basic configurations required to configure the game, such as:
- Amount of initial coins
- Coin reward for winning the Daily Challenge
- Delay before hint animation
- Onboarding Decks
You can edit the settings using Game Server via Rules and Overrides, which we’ll explain below in this guide!
# What’s Base Config?
Base Config is the main configuration that includes all basic settings that are common for all users. Base Config, however, does **not** have rules enabled, and has a priority of zero by default.
You can access the Basic Config for each game by selecting your application, and navigating to Game Settings.
.gif?version=1&modificationDate=1656335401433&cacheVersion=1&api=v2&width=442&height=211)
Inside Base Config, you’ll find the basic game settings per application categorised under tabs. The number next to each tab title shows the amount of settings enabled in each category.
Base Config is editable, but if you want to send a specific set of values to a group of users, you’ll have to create an **Override**.
**Enabled and Disabled Fields**
All of the attributes in Game Settings can be enabled or disabled. In the page, there are two sections:
- **Enabled Fields:** when a field is enabled, it will send the setting to the client.
- **Disabled Fields:** if disabled, the setting will not be sent to the client.
To enable a field, click the **[green + button]**  and add your values. If a setting is enabled, but you’d like to disable it in your override, click the **[red - sign]** **.**

# What are Overrides?
Overrides are used to customise the game settings for specific user groups. Overrides will **only** be applied to a user if the user complies with a set of rules that you will set up to differentiate groups of users. However, if the 2 overrides apply to different settings, the user can receive both overrides depending on the rules defined in each of them.
## When should you use overrides?
Overrides are used when you want to send a different value from what it is established in Base Game for each setting. This means a user can receive settings both from Base Config and Overrides based on the rules you apply.
##
How does Game Server determine what to send to the client when a player starts a game?
1. Game Server determines the list of configs (Base and Overrides) that match a specific user and **sorts them by priority from lowest to highest.**
2. Set all enabled attributes from Base Config
3. Set/Rewrite the attributes from overrides started from lowest and ending with highest priority.
### **Which values would a player get in response?**
As the server sorts the configurations, the client will receive the attributes with higher priority first. If the attribute is disabled, then, Game Server moves onto the next attribute with higher priority.
Let’s use the table below as an example configuration. In this case, we have overrides that have rules which overlap or target identical segment of players. Taking that into consideration, the client will receive the settings in Override #2 as the have the highest priority for Attributes #1 and #2, but as the Attribute #3 is disabled, Game Server resorts to Override #1.
- Attribute 1 = 30 (from Override #2)
- Attribute 2 = “60” (from Override #2)
- Attribute 3 = 6.5 (from Override #1)
| | **Base Config** | **Override #1** | **Override #2** |
| **Priority** | **0** | **1** | **2** |
| **Attribute 1: Points for Placing** | 10 | 20 | 30 |
| **Attribute 2: Points for Combos** | _disabled_ | 50 | 60 |
| **Attribute 3: Points for Streaks** | 5.5 | 6.5 | _disabled_ |
Now let’s try the same with overrides that target the same segment of users but…
- There’s 3 overrides that have the same value.
- Overrides are disabled for an attribute.
- Some attributes are disabled in Base Config.
**Which values would a player get in response?**
- Attribute 1 from Override 3, because even though they all have the same value, override 3 has higher priority.
- Attribute 2 from Override 2, as it is disabled in Override 3, which has higher priority.
- Attribute 3 from Game Settings, as this attribute is disabled in all overrides, so Game Server will send the value configured in Base Config.
| | **Base Config** | **Override #1** | **Override #2** | **Override #3** |
| **Priority** | **0** | **1** | **2** | **3** |
| **Attribute 1: Points for Placing** | 20 | 20 | 20 | 20 |
| **Attribute 2: Points for Combos** | _disabled_ | 50 | 60 | _disabled_ |
| **Attribute 3: Points for Streaks** | 5.5 | _disabled_ | _disabled_ | _disabled_ |
### Example and Results of Settings Configuration
In the table below, you’ll find an example configuration to better visualise the results of your configurations:
| | **Configuration in Game Server** | **API response from Server** | **Result on Client** |
| --- | --- | --- | --- |
| **Base Config** |  | "settings": { "player_initial_balance": 2000, "catalogue_on": true, ... } |  .png?version=2&modificationDate=1658905707384&cacheVersion=1&api=v2&width=232&height=502) |
| **Override** |  | "settings": { "player_initial_balance": 15000, "catalogue_on": false, ... } |   |
* * *
Game Settings Configuration
Chunk #2
Reactivating and Searching Archived Settings
Archived settings do not appear in the UI, but they are still searchable and marked as Archived in the UI. Clicking on the link will allow you to edit the archiving configuration of the setting:

To reactivate an archived setting, navigate to **Game Settings \> Archived Settings** , and click the yellow button  to reactivate the setting.

A confirmation message will appear. Click **[Yes]** to reactivate the setting:

**About Reactivated Settings**
- Setting are moved back to its original location in Games Settings (Base config and Overrides) as a **disabled** setting
- Reactivated settings will have the default values they had before archiving
- Reactivated settings can be used as all existing settings including to A/B Experiments. Changes to the setting can also be tracked via activity log.
# Adding User Groups
User Groups allow you to define multiple configurations for a single setting in one centralised location, with flexibility to assign different values for each user segment.
In this section, you’ll learn how to create, edit, and manage User Groups within the **Base Configuration** settings. You will also understand how priorities are defined between user groups, overrides, and experiments.
This feature gives you the ability to add rules for each group, assign priority levels, and control the exact ad experience tailored to various user groups.
## **Understanding User Groups in Configuration Priority**
In the configuration hierarchy, **User Groups** serve as an intermediate layer, positioned between **Overrides** and **Base Configurations**.
Here’s how they function:
**Priority Order**
- **Overrides** : Higher priority. Overrides take precedence over all other settings, ensuring that specific configurations are applied when explicitly defined.
- **User Groups** : Second priority. User Groups provide a flexible layer that allows configurations to be tailored for specific subsets of users.
- **Base Configurations** : Lowest priority. Base Configurations act as the default settings, applying when neither Overrides nor User Groups are applicable.
The **User Groups** will only apply if no Overrides or higher-priority settings (like experiments) are present.
**How User Groups Apply**
1. When a user matches a set of defined rules and there are **no Overrides or Experiments** that take precedence, the system checks which User Group the user belongs to.
2. **Resolving Conflicts When a User Belongs to Multiple Groups**
3. **User Groups only impact** _ **Live Availability** _: User Groups configurations are only applied to settings that are live, meaning they affect only the active, real-time configuration.
4. For **Test Availability** : Overrides must be used to control settings for testing purposes, as User Groups do not influence test configurations. This ensures that testing remains isolated from live user configurations.
## User Group Configuration
1. Navigate to Base Configuration
- Go to the **Edit Basic Game Settings**
1. Access User Groups for a Setting
- In each Game setting tab, there will be a **User Groups** button next to each setting, displaying the number of user groups created.
- Click the **User Groups** button for the desired setting (e.g., "Display Game Visuals Setting) to open the User Group configuration page for that specific setting.
1. Edit User Groups Page Overview
A list of user groups is displayed, each with its assigned priority. Here, it's important to note the _LIVE availability_ status of each group—this status is fixed, non-editable, and cannot be changed.
- You will also see a list of user groups created for this setting, each with specific priority.
- In the Edit User Groups page, configurations are prioritised from highest to lowest. This means that a configuration with **priority 10** is ranked higher than one with **priority 1**.
1. Adding User Groups
- Click on the **Add User Group** button to create a new group.
- Assign a unique **Name** for the new user group. Each user group is sorted by priority, with the higher priority at the top.
- Add details like **Status** (Active/Inactive), **Labels** , **Notes** , and any configuration for settings in the group. ( **Optiona** l)
1. Setting Rules for User Groups
- Define at least one rule for each user group.
- Add more rules by clicking on **Add Rule** , or organise rules with **AND/OR** conditions for more complex configurations.
1. User Group Management Options: You can duplicate, delete, reorder user groups and also expand/collapse them.

1. Saving Changes
- After configuring or modifying user groups, click **Save** to apply the changes. This will return you to the **Edit Basic** **Game Settings** page.
- If you click **Cancel** , you will be redirected back to the **Edit Basic** **Game Settings** page without saving changes.
1. Activity Log
- Use the **Activity Log** button at the top of the **Edit User Groups** page to view the history of changes for the selected ad configuration and user groups.
1. Viewing ‘In Use’ Configurations
To make navigation easier, there is a “Jump to Configuration” link.
This allows you to quickly view the associated configurations for a User Group.

- When archiving a setting, ensure that it is not used in any user group. The system will validate this automatically to prevent errors.
- User groups are available only for **Live** configurations. Test configurations require overrides to be applied.
- Only users with Live permissions can view and edit user groups.
Game Settings Configuration
Chunk #3
**User Groups in Audience Groups**
User Groups allow configurations to be tailored for specific segments within Audience Groups. Refer to [this User Guide](/wiki/spaces/KB/pages/3981377538/Player+Buckets+and+Audience+Groups#Audience-Groups) to know more about Audience Groups.
Perform the following steps for creating user groups in audience groups:
1. Click **Audience Groups**.
### **Accessing User Groups for a new Audience Group**
When configuring a new **Audience Group** for the first time in **Game Settings** , user groups cannot be set up immediately. Upon enabling a setting, the **User Groups** button appears next to it but remains inactive. Hovering over the button displays a tooltip: _"User groups will be available after the audience group is saved."_ To proceed with configuring user groups, the **Audience Group must first be saved**. This ensures that all configurations are properly initialised before assigning user groups.
### **Accessing User Groups for an Existing Audience Group**
When an audience group has already been configured as a game settings audience group, managing user groups becomes accessible within the settings. Upon opening the audience group, users will see a **User Groups** button next to each previously enabled setting, allowing for further configuration. If a new setting is enabled, the **User Groups** button remains disabled until the audience group is successfully saved with the updated setting.
Perform the following steps to configure a user group:
1. Click **Edit** to configure the **Audience Group**.
2. Enable the relevant setting. For each **enabled setting** , a **"User Groups"** button appears
3. If the setting was enabled previously, the user groups button is active and can be configured.
4. If the **setting was just enabled** , the button is **inactive until saved.** Once an Audience Group is **saved** , User Groups can be configured.
5. Configure the setting and save the Audience group. The **User Groups** button is now enabled.
### **Adding a New User Group**
1. Click **[+Add User Group]**.
2. Enter User Group Details like: Name, Status, Availability, and optional details like Labels and Notes.
3. Define Rules for the User Group.

### **Managing User Groups**
You can manage the user groups by reordering, duplicating and deleting them if required.

* * *
### **Validation & Restrictions**
**Cannot disable a setting if User Groups exist. Can disable a setting only if no User Groups are present**
* * *
# **Related articles**
-
Page:
[Configuring Game-Specific 3rd Party Machine Learning Models in Game Server](/wiki/spaces/KB/pages/4580999169/Configuring+Game-Specific+3rd+Party+Machine+Learning+Models+in+Game+Server)
-
Page:
[Configuring Embedded Machine Learning Models in Game Server](/wiki/spaces/KB/pages/4548263939/Configuring+Embedded+Machine+Learning+Models+in+Game+Server)
-
Page:
[File Configuration in Game Server](/wiki/spaces/KB/pages/4440228000/File+Configuration+in+Game+Server)
-
Page:
[Managing Localisations in Harmony](/wiki/spaces/KB/pages/3230760961/Managing+Localisations+in+Harmony)
-
Page:
[Generic Daily Challenges](/wiki/spaces/KB/pages/2933653553/Generic+Daily+Challenges)
-
Page:
[Configuring Ads in Game Server](/wiki/spaces/KB/pages/2765029415/Configuring+Ads+in+Game+Server)
-
Page:
[Rules in Game Server](/wiki/spaces/KB/pages/2668494860/Rules+in+Game+Server)
-
Page:
[Setting up A/B Experiments](/wiki/spaces/KB/pages/2581889051/Setting+up+A+B+Experiments)
-
Page:
[Game Settings Configuration](/wiki/spaces/KB/pages/2580021328/Game+Settings+Configuration)
Interstitials Configuration
Chunk #0
**Introduction**
An interstitial ad is a full-screen ad that covers the entire interface of the game. To better control the player experience, Game Server offers different configuration settings.
**Table of Contents**
* * *
# 1. Enabling Interstitial Overrides
Inside Interstitials, you can enable overrides separately for particular placements.
Placement overrides are available for the following settings:
- Restrictions for Newcomers.
- Frequency Restrictions
- Back-to-back frequency restriction
- Impression Restrictions

When selecting an interstitial to add to your override, you’ll be presented with all the placements available. This list does not depend on the placement bank selected for the interstitial (if any).
Interstitials Configuration
Chunk #1
**How does the logic of Overrides in Interstitials work?**
Let’s assume we have 7 players and 4 Interstitials Placement Banks, each of them with a set of placements inside:
.jpg?version=1&modificationDate=1728379257509&cacheVersion=1&api=v2&width=772&height=608)
Now, we’d like to establish a set of overrides for different placement banks. Some overrides will also have Placement overrides or some restrictions for newcomers.
We’ve set 4 overrides, with different priorities, and we’ve assigned players to them using rules. As we can see, Overrides 3 and 4, and Base Config include specific overrides for placements and restrictions for newcomers.
.jpg?version=1&modificationDate=1728379257525&cacheVersion=1&api=v2&width=772&height=405)
With this configuration, each player will receive different overrides with specific settings when they start the game:

Now, we’ll go into detail about why each player receives that configuration:

* * *
# 2. Impression Restrictions
You can determine the value for impression restrictions by applying the identical formula used in[CPM Floor Calculations](https://tripledotstudios.atlassian.net/wiki/spaces/KB/pages/3705274372/Interstitials+Configuration#Setting-the-CPM-Floor).
1. First, navigate to **Ad Config \> Interstitials** , and enable the **Impression Restrictions** setting.
2. Fill in the fields following the information listed in the Impressions Restrictions table below.
3. If required, you can set up overrides for specific ad placements by selecting Overrides.
Then, click the particular placement and select the required settings.

| **Impression Restrictions** |
| **Field Name** | **Description** | **Validations** |
| **Min CPM Type** | Select the way you want to define the Bidding Floor | - Type: Dropdown: Static, Formula - Default: Static |
| **Static CPM Configuration. Fallback CPM Value** | Specify a fallback floor value to be sent for interstitial bidding. | - Type: Float - Default: Empty |
| **Static CPM Configuration. Use Percentiles** | Enable to use percentile for CPM floor value. | - Type: Boolean - Default: False |
| **Static CPM Configuration.CPM Percentile Configs** | Select the relevant config from the dropdown. Refer to this [User Guide](/wiki/spaces/KB/pages/4244537368/CPM+Percentile+Configuration) to learn to configure the CPM Percentiles. | - Type: Multi-select Dropdown - Options: List of available configs (with display priority) - Mandatory if Use Percentiles = True |
| **Static CPM Configuration.If No Matching Configuration** | Select the relevant option if no matching config is available. | - Type: Dropdown - Options: Return fallback value, Return nothing - Mandatory if Use Percentiles = True |
| **Static CPM Configuration. If no Percentile available** | Select the relevant option if no percentile is available. | - Type: Dropdown - Options: Return fallback value, Return nothing - Mandatory if Use Percentiles = True |
| **Formula Parameters. Formula Type** | Defines the type for calculating the formula. | Type: Dropdown with the following options: - Median - Average - Default: Median |
| **Use successful ad requests only** | Enable if you want to use only successful ad requests for calculation. | - Type: Boolean - Default: OFF - Available if type = formula |
| **Min ad requests to apply formula** | This field is used to provide minimum number of interstitials which should be taken into account to calculate formula | - Type: Integer - Mandatory if “Formula” is selected in “Bidding floor type” - Default: Empty - Min 1 - Max: 50 - Must be less than the value provided in the setting “Ad requests to apply formula to“ |
| **Ad requests to apply formula to** | This field is used to provide maximum number of interstitials which should be taken into account to calculate formula | - Type: Integer - Mandatory if “Formula is selected in “Bidding floor type” - Default: Empty - Min 1 - Max: 50 |
| **Percentage coefficient** | Specify the multiplier to minimise the Bid floor. | - Mandatory if “Formula” is selected in “Bidding floor type” - Min: more than 0 - Max: 2 - Max number of characters after comma = 2 - Incase multiplier results in `max_interstitials.cpm_floor` value with more than 2 characters after comma, GS rounds off the result using math rules. - (e.g. if we have as a result value 1,234 -\> round to 1.23 but if 1.235 -\> round to 1.24) |
| **If insufficient ad requests** | Defines the system behaviour when there is insufficient data for calculation. If “Return static value“ is selected, GS will send value from “Static floor CPM“. If “Return nothing“ is selected, GS won’t send any value. | Dropdown with the list of options provided below: - Return fallback value - Return nothing - Default: Return fallback value |
**Setting the CPM Floor**
Game Server provides two types of validations for Bidding Floor Type.
- Static
- Formula
**Choosing a Bidding Floor Type**
There are two options for defining the CPM floor:
**A. Static CPM Floor**
- **Definition** : Sends a fixed CPM value to the client, which is forwarded to the mediation system (e.g., Max, Google, or Meta).
- **How to Configure** :
- **Behaviour** : The same CPM value will always be used for bidding.
**B. Formula-Based CPM Floor**
- **Definition** : Dynamically calculates the CPM floor using the following formula:
- If **Median** is selected in the Formula type dropdown field:
_interstitial\_cpm\_floor = Median (most recent **N** CPM values) \* **K** _
- If **Average** is selected in the Formula type dropdown field:
_interstitial\_cpm\_floor = Average (most recent **N** CPM values) \* **K** _
This formula allows you to determine the number of CPMs stored ( **N** ). If the number of CPMs is lower than **X** (Minimum number of events required for calculation), Game Server won’t return anything, or will return a static value as determined by the settings.
**Determining N for Each Ad Unit**
- N represents the number of most recent CPM values retrieved from a bucket for median calculation.
- **How is N Defined?**
- **Handling Fewer Events than N** :
- **Minimum Number of Events:**
- **Behaviour for Insufficient Events (Fewer than X)**:
- **Multiplier K:**
- **Use successful ad requests only:** Enable/Check if you want to use only successful ad requests for calculation.
- **Use static in case of failed requests:** Enable/Check in case you want to send static value instead of formula calculation when a number of latest requests have failed. if static is selected for fallback value and Percentile is enabled, the system will firstly check if it is possible to use the static CPM based on percentiles. If yes, than the value is obtained from there. If no, the system will use the fallback value OR nothing. In case of nothing usually the system sends 0.0 as floor.
- **Number of failed requests:** Specify number of latest failed requests. If this number is reached, static value will be used instead of formula calculation.
For detailed information on how Analytics Buckets work, refer to this [User Guide](https://tripledotstudios.atlassian.net/wiki/x/BIBUAQE).
# 3. Frequency Restrictions
To better control the user experience for the players, you can enable frequency restrictions for interstitials with **conditions**. Conditions are included inside sections, which allow you to nest sets of restrictions and combine them to target players more accurately. The conditions in Frequency Restrictions use the basic AND/OR operators. There are two configuration type options available:
- Config Based on Network
- Standard Config
For each of the above config types, there are 2 options:
- _ **Time-based** _ **: minimum time allowed between interstitials:** The ad will be shown only if the required minimum time has passed since the latest successful impression
- _ **Custom** _ **: Min count allowed between interstitials:** The ad will be shown only if the required number of particular points in the game is passed since the latest successful impression.
 
1. Enable the **Frequency Restrictions** setting by clicking on the  **[green + sign]**.
2. Fill in the fields following the information listed in the table below.
3. If required, you can set up overrides for specific ad placements by selecting Overrides.
Then, click the particular placement and select the required settings.
| **Time-Based Frequency Restrictions** |
| **Field Name** | **Description** | **Comments** |
Interstitials Configuration
Chunk #3
3.1. Frequency Restrictions: Overrides
**What Are Overrides?**
Overrides allow you to define placement-specific interstitial ad frequency settings that override the global or default frequency restriction rules. This is especially useful when you want to fine-tune the ad experience per ad placement.
Each override allows you to define conditions like time-based restrictions specific to that network or placement.
**How Overrides Work**
- When overrides are enabled, they take precedence over the default config.
- You can add multiple override blocks.
- Each override can have its own logic tree with AND/OR conditions.
**When to Use Overrides**
- You want to allow more frequent ads in a low-impact placement (like between levels) but restrict them during gameplay.
- A specific network requires custom frequency rules.
- You are A/B testing ad frequency strategies for different parts of the game.
# 4. Back-to-Back Frequency Restrictions
The “Back-to-back frequency restriction” setting allows the configuration of how frequently back-to-back interstitial ads are shown.
By using a global setting and optional overrides for specific placements, this feature gives flexibility in managing ad frequency.
| **Back-to-back frequency restriction** |
| **Field Name** | **Description** | **Comments** |
| **Show Back-to-back interstitial after** | Provide number of interstitials after which Back-to-back interstitial should be shown. | If the value is set to "0," a back-to-back interstitial will be displayed after every instance. If the value is set to "1," a back-to-back interstitial will be displayed every second instance. |
1. First, navigate to **Ad Config \> Interstitials** , and enable the setting.
2. In the “Show Back-to-back Interstitial After" text box, enter an integer value.
3. If required, you can set up overrides for specific ad placements by selecting Overrides.
4. Then, click the particular placement and select the required settings.
# 5. Restrictions for Newcomers
The "Restrictions for Newcomers" setting allows you to manage how ads are shown to new users in their early sessions.
| **Restrictions for Newcomers** |
| **Field Name** | **Description** | **Comments** |
| **Enabled** | Enables the restrictions for newcomers | |
| **Relevant** | This dropdown offers 2 options: - For first session only (interstitial will appear on the first session of the game) - Through all the sessions (interstitial will appear in all sessions) | |
| **Block ** | This dropdown allows you to choose 2 options to block the interstitials: - Interstitials for first N seconds - First N interstitials | The seconds are determined in the field **Seconds** below. |
| **Seconds** | Numeric field to determine the seconds or the number of interstitials blocked for the player | |
| **Timer Counts on App Minimisation** | This field determines whether to count the time when the app is live but minimised to track time between interstitials | |
1. Enable the **Restrictions for Newcomers** setting by clicking on the  **[green + sign]**.
2. Fill in the fields following the information listed in the table above.
3. If required, you can set up overrides for specific ad placements by selecting Overrides.
Then, click the particular placement and select the required settings.

# 6. Pause Duration to Resume Ads
This setting allows Game Server to send a setting that defines a **"Pause duration to resume ad"**.
The goal is to specify a time gap during which an ad will be shown to a user when they minimise the game and later return to it.
Here’s how it works:
1. User Minimises the Game: When a player minimises the game (e.g., switches to another app or moves to the home screen), the timer starts tracking how long the game is minimised.
2. User Returns to the Game: When the player reopens the game after minimising it, the platform manages the timing and handles the ad display based on the settings provided by the Game Server.
3. Ad Display Based on Time Gap: If the user returns to the game within a predefined time gap (e.g., between 1 and 5 minutes), an ad will be triggered and displayed.
This time gap is configurable:
| **Pause duration to resume ad(Interstitials Setting)** |
| **Field Name** | **Description** | **Comments** |
| **Min** | Specify the minimum part of the range for the pause duration to resume ad. **Example: Pause Duration: 1-5 minutes.** Minimum part of the pause duration is 1 in this example. | - Type = Float - Empty by default |
| **Max** | Specify the maximum part of the range for the pause duration to resume ad. **Example:** **Pause Duration: 1-5 minutes.** Maximum part of the pause duration is 5 in this example. | - Type = Float - Empty by default |
1. Enable the **Pause duration to resume ad** setting by clicking on the  **[green + sign]**.
2. Fill in the fields following the information listed in the table above.

# 7. Placement Bank
The **Placement Bank** is a collection that stores a list of rewarded video placements. It allows you to manage and organise multiple rewarded video ad placements in one centralised location.
| **Field Name** | **Description** | **Comments** |
| **Placement Bank** | Bank with the list of rewarded video placements. | Type: Dropdown with placement banks as options. |
1. Navigate to **Ads \> Configuration \> Rewarded Videos** , and enable the **Placement Bank** field by clicking on the  **[green + sign].**
2. Click the empty text box or the down arrow on the right to open the dropdown menu.
3. Choose the appropriate placement bank for your configuration.
4. If the desired placement bank is not listed, you can add a new one by following the instructions listed in the [Interstitial Placements & Interstitial Placement Banks](https://tripledotstudios.atlassian.net/wiki/spaces/KB/pages/edit-v2/3705274372#Interstitial-Placements-%26-Interstitial-Placement-Banks) section below.

* * *
# **8. Interstitials Request Throttling**
The **Interstitials Request Throttling** setting defines the maximum number of memory to be allocated for loading the videos.
| **Field Name** | **Description** | **Comments** |
| **Interstitials Request Throttling** | Maximum memory in MBs to be allocated for loading the videos | - Type: Integer |
1. Enable the **Interstitials Request Throttling** setting by clicking on the  **[green + sign].**
2. In the field, specify the memory value.

# **9. Ad Slots Bank**
The **Ad Slots Bank** setting defines the Ad slots bank to be sent to the client.
| **Field Name** | **Description** | **Comments** |
| **Ad Slots Bank** | Select from the list of predefined Ad Slots banks. | - Type: Dropdown with the pre-configured options. |
1. Enable **Ad Slots Bank** by clicking on the  **[green + sign].**
2. From the dropdown, select the relevant option. For steps to configure the Ad Slots refer to this [User Guide](/wiki/spaces/KB/pages/3996647517/Ad+Slots+Configuration#Configuring-Ad-Slots).

# **10. Interstitials TDS Ads**
This setting allows to advertise TDS games in cases when we don't have ad from mediation platforms.
| **Field Name** | **Description** | **Comments** |
| **Interstitial TDS Ads config** | Select from the list of predefined TDS Ads. Refer to this [User Guide](/wiki/spaces/KB/pages/4307189763/TDS+Ads+and+TDS+Ad+Banks) to Configure TDS Ads. | - Type: Dropdown with the pre-configured options. - Default: None (not an option to pass validation) - Mandatory |
| **Number of seconds before “X” button appears** | Time period in seconds before the close button appears for the player to close the ad. | - Type: Integer - Default: empty - Mandatory - Min: 1 |
| **Maximum number of TDS ads per session** | Maximum number of ads the player will receive per session | - Type: Integer - Default: empty - Mandatory - Min: 0 |

# 11. Newcomers CPM floor restriction
Configure impression suppression by setting a decreasing minimum CPM floor for new users based on the number of Ad\_Checks, applied across all placements for the first N checks.
| **Field Name** | **Description** | **Comments** |
Interstitials Configuration
Chunk #4
| **Number of seconds before “X” button appears** | Time period in seconds before the close button appears for the player to close the ad. | - Type: Integer - Default: empty - Mandatory - Min: 1 |
| **Maximum number of TDS ads per session** | Maximum number of ads the player will receive per session | - Type: Integer - Default: empty - Mandatory - Min: 0 |

# 11. Newcomers CPM floor restriction
Configure impression suppression by setting a decreasing minimum CPM floor for new users based on the number of Ad\_Checks, applied across all placements for the first N checks.
| **Field Name** | **Description** | **Comments** |
| **Initial starting CPM floor value** | Set up initial CPM floor for newcomers | - Type: Float - Mandatory - Default: 1.0 - Min: more than 0 |
| **Change type** | Selecting static or multiplier change type | Dropdown with the list of the following values: - Static - Multiplier - Default: Static |
| **Reduction value** | Specify Static value or Multiplier for which CPM floor for newcomers should be reduced after each Ad\_Check | - Type: Float - Default: empty - Mandatory - If **Change type** = Static, these validations should be applied - If **Change type** = Multiplier, these validations should be applied |
| **Applies for first N Ad\_Checks** | Specify the number of Ad\_Checks for which Newcomers CPM floor restriction should work | - Type: Integer - Default: empty - Mandatory - Min: 1 |

# 12. Network Ranking multiplier
Set up a network-specific Ad Ranking multiplier (independent of mediation) using the new “Network ranking multiplier” grouped setting, allowing multiple configurable sections.
| **Field Name** | **Description** | **Comments** |
| **Networks** | Specify the list of networks for which you want to set Ranking multiplier | Multi-select dropdown with the list of networks. |
| **Ranking multiplier** | Provide Ranking multiplier which should be applied to selected networks | - Type: Float - Mandatory if the section is added - Default: empty - Min: 0.0 |

# 13. **Enable DT Postbid POC**
| **Field Name** | **Description** | **Comments** |
| **Enable DT Postbid POC** | Boolean flag to enable Digital Turbine Postbid POC | Default: False. Allows enabling for some users for testing purposes. |

# 14. Interstitial Placements & Interstitial Placement Banks
Placements allow you to identify all the keys used for unique interstitial ad placements in different game features.
Interstitial Placements are used in Interstitial Placement Banks, which are a collection of placements where you can assign a probability for the placement to appear.
In the home page of Interstitial Placements you can see which interstitials placements exist, along with their keys and if they’re being used in any bank currently.

Interstitials Configuration
Chunk #5
**14.1 Creating a new Interstitial Placement**
1. To create a new Interstitial Placement, click the green **[New]** button on the upper right side of the screen.
2. Assign a name and a unique key to it.
3. Click **[Save]** when you’re done.
## **14.2 Creating a new Interstitial Placement Bank **
Once you’ve created your Interstitial Placements, it’s time to put them together into a Bank. The goal of the bank is to put all the placements together and assign a probability to each of them appearing when the player reaches the placement.
1. To create a new Interstitial Placement Bank, click the green **[New]** button on the upper right side of the screen.
2. Assign a name to your placement.
3. Under Placements, select a placement and click **[Add Placement]**. The new placements will appear below.
4. Under Interstitial Probability, assign a number to determine the probability of the player receiving the ad once they reach the placement.
**How does probability work?**
Probability is limited from 0 to 1, where 0 = 0% and 1 = 100%. For instance, if you’d like to set up a 50% of probability of the player receiving the placement, type in 0,50.
1. Click **[Save]** to finish the configuration of the Placement Bank.
If you delete a placement, you can undo it by using the the **Undo button** 🔄
* * *
Knowledge Base Home
Chunk #0
# Hello, how can we help?
</form>
### Browse topics or use the sidebar
[](/wiki/spaces/KB/pages/2580021328/Game+Settings+Configuration)
[](https://tripledotstudios.atlassian.net/wiki/x/SoCfrg)
[](https://tripledotstudios.atlassian.net/wiki/x/JwDPp )
[](https://tripledotstudios.atlassian.net/wiki/x/XoCU1Q )
[](https://tripledotstudios.atlassian.net/wiki/x/AYCRw )
[](https://tripledotstudios.atlassian.net/wiki/x/YIDu1w)
[](https://tripledotstudios.atlassian.net/wiki/x/DAAOnw )
[](https://tripledotstudios.atlassian.net/wiki/x/xgDbrQ )
[](https://tripledotstudios.atlassian.net/wiki/x/hwB7sg)

[](https://tripledotstudios.atlassian.net/wiki/x/RwCz8)
[](https://tripledotstudios.atlassian.net/wiki/x/AgBP7Q)
[](https://tripledotstudios.atlassian.net/wiki/spaces/KB/pages/2581889051/Setting+up+A+B+Experiments?atlOrigin=eyJpIjoiOTVlNmQ4YzVhMTEwNGJiNTgzNjFkNGY3NDZhMDI0MzUiLCJwIjoiYyJ9)
[](https://tripledotstudios.atlassian.net/wiki/x/FwDjxQ )
[](https://tripledotstudios.atlassian.net/wiki/x/NQDx8Q )
[](https://tripledotstudios.atlassian.net/wiki/spaces/KB/pages/2908225688/Game+Specific+Guides?atlOrigin=eyJpIjoiODQyZjUxZThiZTE4NGJiZjk5NmM0N2RjOGYxMDVjZTEiLCJwIjoiYyJ9)
[](/wiki/spaces/KB/pages/2851635278/Tiles+Family+Games+-+Levels+Chapters)
[](https://tripledotstudios.atlassian.net/wiki/x/oICoCAE)
Do not have a Tripledot email? Access the [**Knowledge Base**](https://tripledotstudios.atlassian.net/wiki/x/hYEm3Q) here! This space is designed to provide resources and information related to GS, Hawk, and Harmony for external users.
Rules in Game Server
Chunk #1
Setting up Named Rule Groups
1. Navigate to Named Rule Groups. In this page you’ll be able to visualise the already existing groups, and which rules compose them. Click the green **[+ New]** to create a new rule group. You can also duplicate, edit, or delete them using the actions available in the right side of the screen.
2. Give the group a name, and include your rules or sections of rules.
3. In order to use your Rule Group, navigate to any entity with rules, and click **[Add Named Rule Group].** From there you can select your Rule Group without having to create it from scratch again!
- The valid operators for Named Group Rules are IN/NOT IN
- Named Rule Groups can be used in combination with other rules
### Creating Named Rule Groups from Rules
You can also create Named Rule Groups directly from the Rules section in your entity. To do so:
1. Create your Rule, and click the grey **[3 dots button]**
2. Click **[Create Named Rule Group]**
3. Assign a name to your new Named Rule Group, and select whether you want to replace the section with the Named Rule Group
4. Your new Named Rule Group will be available to use and you will be able to edit it from Named Rule Groups section in Game Server
* * *
# List of Available Rules
Below you’ll find a comprehensive list of all available rules with their conditions and the data available for each of them:
| **Rule** | **Available conditions** | **Data** | **Description** |
| **Country** | - IN - NOT IN | Country list | Country where the player is located |
| **Language** | Language list | Language of the device |
| **Platform** | Multi-select: - Other - iOS - Android - Amazon | OS of the player device |
| **Cohort day** | - \>= - \<= - \> - \< | Numeric input | Number of days starting from 12AM in local time zone |
| **User Ids** | - IN - NOT IN - \>= - \<= - \> - \< | Text input | User ID |
| **Current game version** | Current version of the game in the player’s device |
| **Install game version** | Version of the game originally installed in the player’s device |
| **Previous game version** | Previous version of the game installed in the player’s device |
| **Install date (UTC)** | - \>= - \<= | Date picker | Based on UTC time (Server time) |
| **Install date (Local timezone)** | - \>= - \<= | Date picker | Based on local time that the Client sent in `/init` call `"utc_offset": "-11:00:00"` |
| **OS version** | - IN - NOT IN - \> - \< - \>= - \<= | Text input | Operative system of the player’s device Example: - Android OS 11 / API-30 (RP1A.200720.012/A715FXXS4BUC1) - iPhone 12,4 |
| - **IDFAs** - **IDFVs** | - IN - NOT IN | Text input | |
| **Device model** | - LIKE - NOT LIKE | Text input. Regex can be used. | Example: samsung SM-A715F |
| **LAT user \*** | - | - | If added, means LAT = true |
| **Experiment variant** | - IN - NOT IN | 1st level: all existing A/B experiments 2nd level: variants in specific experiment | GS will search whether player participated in specified variant of the experiment. Archived participations are not counted in the rule. Multiple experiment participations can be added via OR relation |
| **Player Bucket ** | - IN - NOT IN | _\*User Id is divided by 100_ Lower bound Upper bound Bounds can span from 0 to 99. | Bounds, ex. 0-9, means that players with ids end on _ **xxx00 - xxx09** _ will match the rule. |
| **Campaign Name** | - CONTAINS - DOESN’T CONTAIN - IS BLANK - IS NOT BLANK | Case sensitive Partial search | Name of the ad campaign Note: When the user selects IS BLANK, the rule will match if there is no entity provided. |
| **Media source** | - IN - NOT IN - IS BLANK - IS NOT BLANK | Case sensitive Full search | Entity used to display ads |
| **Onboarding mode** | == | Text input | Available only for **Duplica** New object can be sent from client in `/init` call. Any unknown attribute except **"onboarding\_mode"** will be ignored by server. "custom_attributes": { "onboarding_mode": "hello" } Note: - Data is stored in separate Duplica table `duplica_app_user_custom_attributes` - Once sent to the server, it is saved in DB and there is no need to send this info again (only if you need to change) - Server handles `"custom_attributes"` only from **Duplica players** , otherwise it sends a 500 error (custom table created only for Duplica) |
| **Total payments amount** | - \> - \< - \>= - \<= - == | Single numeric decimal | Available only for **Blackjack, Duplica, Merge, PPC** |
| **Last payment amount** | - \> - \< - \>= - \<= - == | Single numeric decimal | Available only for **Blackjack, Duplica, Merge, PPC** |
| **Days since last payment** | - \> - \< - \>= - \<= - == | Single numeric decimal | Available only for **Blackjack, Duplica, Merge, PPC** |
| **Days since previous visit** | - \> - \< - \>= - \<= - == | Single numeric decimal | **Calendar days** are counted. Calculations are based on “Last visit at” and “Previous visit at” values for device. |
| **Sessions count** | - \> - \< - \>= - \<= - == | Single numeric decimal | Amount of sessions triggered by the user. Sessions is defined as as a period of play with no greater than a five minute break. |
| **Debug IDs** | - IN - NOT IN | String \<=16 characters | |
| **Device type** | - IN - NOT IN | Multi-select: - Phone - Tablet | Tablet/Phone is detected based on screen resolution and DPI that are sent by the client |
| **Days since version update** | - \> - \< - \>= - \<= - == | Single numeric decimal | **Calendar days** are counted. Calculations are based on “App version updated at” value for device. |
| **Version update date** | - \>= - \<= | Date picker | Based on UTC time (Server time) The purpose of this rule is excluding users who update their app their app to a version that supports a specific journey after that journey starts, so that they can continue playing the journey they’d been playing before updating their version. This information is updated when the user makes the first `/init` call to server with a new version. When this happens, the date & time of this first init call is captured as update date in the device record in the system. |
| **Build variant** | - IN - NOT IN | Multi-select: - Default - Google - Samsung - Amazon - Apple - Apple - China | Platform used by the player |
| **Device RAM capacity (MB)** | - \> - \< - \>= - \<= - == | Single integer | In `/init` call client sends `ram_capacity` parameter which allows to deliver special configs and A/B Experiments for Android Go clients (low-end devices). The value is in megabytes. |
| **Player segment** | - \>= - \<= - \> - \< - == | Multi-select: list of segments synced from Hawk (the segments need to be created in Hawk beforehand) | Only active segments can be selected. |
| **Days since Start At** | - \>= - \<= - \> - \< | Numeric input | **Usage** : When an A/B experiment has variant groups created using this rule, GS counts the number of days since the “Start at” date of the experiment and decides which group the user should be in. Game Server starts counting the number of days starting from 12AM in local time zone. This rule is available **only** as an A/B Experiment Variant Rule and cannot be used anywhere else. |
| **City** | - IN - NOT IN | Dropdown with single value (only city available for now is London) | **Behaviour:** If a player belongs to the country in which the selected city is found (currently the only option is London), Game Server will send a request to GeoIP to check their city. The player matches the rule if GeoIP returns London as a city. |
| **Player Buckets (NEW)** | - IN - NOT IN | Dropdown with single value | The purpose of this rule is to deliver configurations only to users who belong to specific player buckets. This information is retrieved from Harmony, which includes the list of bucket IDs a player belongs to in each response. When evaluating a rule that includes a Player Bucket condition, the system checks whether the player’s bucket list includes the specified bucket ID. If it does, the configuration is delivered. If not, the configuration is excluded from delivery. |
## \uD83D\uDCCB **Related articles**
-
Page:
[Configuring Game-Specific 3rd Party Machine Learning Models in Game Server](/wiki/spaces/KB/pages/4580999169/Configuring+Game-Specific+3rd+Party+Machine+Learning+Models+in+Game+Server)
-
Page:
[Configuring Embedded Machine Learning Models in Game Server](/wiki/spaces/KB/pages/4548263939/Configuring+Embedded+Machine+Learning+Models+in+Game+Server)
-
Page:
[Ads Config: Configuring Ads in Game Server](/wiki/spaces/Innovecs/pages/4442063826/Ads+Config+Configuring+Ads+in+Game+Server)
-
Page:
[File Configuration in Game Server](/wiki/spaces/Innovecs/pages/4441866278/File+Configuration+in+Game+Server)
-
Page:
[File Configuration in Game Server](/wiki/spaces/KB/pages/4440228000/File+Configuration+in+Game+Server)
-
Page:
[Rules in Game Server](/wiki/spaces/Innovecs/pages/4355850392/Rules+in+Game+Server)
-
Page:
[Game Settings Configuration](/wiki/spaces/Innovecs/pages/3849912340/Game+Settings+Configuration)
-
Page:
[Setting up A/B Experiments](/wiki/spaces/Innovecs/pages/3848602658/Setting+up+A+B+Experiments)
-
Page:
[Managing Localisations in Harmony](/wiki/spaces/KB/pages/3230760961/Managing+Localisations+in+Harmony)
-
Page:
[Generic Daily Challenges](/wiki/spaces/KB/pages/2933653553/Generic+Daily+Challenges)
-
Page:
[Configuring Ads in Game Server](/wiki/spaces/KB/pages/2765029415/Configuring+Ads+in+Game+Server)
-
Page:
[Rules in Game Server](/wiki/spaces/KB/pages/2668494860/Rules+in+Game+Server)
-
Page:
[Setting up A/B Experiments](/wiki/spaces/KB/pages/2581889051/Setting+up+A+B+Experiments)
-
Page:
[Game Settings Configuration](/wiki/spaces/KB/pages/2580021328/Game+Settings+Configuration)
TDS Ads and TDS Ad Banks
Chunk #0
# **Introduction**
TDS Ads are used to promote Tripledot Studios games as fallback ads when no fill is received from mediation platforms. This ensures continuous ad delivery and maximises ad opportunities, even when external demand is unavailable.
To support this functionality, TDS Ads configuration section has been added to the Game Server UI.
With this feature, you can:
- Configure and manage TDS Ads used as backup creatives.
- Define CDN links for video assets and destination URLs.
- Apply labels, availability states, and usage metadata for organisation and tracking.
TDS Ads Bank allows configuring a prioritised list of TDS Ads along with serving probabilities. This helps ensure consistent ad experiences for users even in the absence of external ads.
* * *
# TDS Ads Configuration
## **Navigation**
- Go to **Ads** in the left sidebar.
- Click on **TDS Ads** to access the list view and manage TDS Ads configurations.

* * *
## **List View Overview**
When you open TDS Ads, the list view displays all existing configurations with the following columns:
| **Column Name** | **Description** |
| --- | --- |
| **ID** | Unique identifier for the TDS Ad configuration. |
| **Name** | Unique name of the TDS Ad config. |
| **Creative ID URL** | Link to the ad creative. |
| **Labels** | Optional labels/tags for categorisation. |
| **Availability** | Inherited from the associated TDS Ads Bank config. |
| **In Use** | Inherited from the associated TDS Ads Bank config. |
| **Updated at (UTC)** | Last modified timestamp. |
| **Actions** | Options to **Edit** or **Delete** the configuration. |

* * *
## **Filters Available**
You can filter the list view using the following criteria:
- **ID**
- **Name**
- **Labels**
- **Availability state** (inherited from “TDS Ads Bank”)
- **Created after** (date picker)
- **Updated after** (date picker)
- **Created by me** (personalised view)
* * *
## **Creating a New TDS Ad Configuration**
- Click **[+New]** to configure a new TDS Ad.
A new form to configure a new TDS Ad appears. Here’s how each field works:
| **Field** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| **Name** | Text | Yes | Unique identifier for the TDS Ad. Used for referencing and filtering. |
| **Labels** | Dropdown (multi-select) | Optional | Used for categorising or grouping ads (e.g., by campaign, platform, etc.). |
| **Creative ID URL** | Text | Yes | URL pointing to the creative (video/image) to be served. |
| **Redirect URL/onelink URL** | Text | Yes | Destination URL users are sent to after interaction (click-through). This is often a OneLink (for mobile attribution). |

* * *
## **Saving the Configuration**
- Click **Save** to create the TDS Ad config.
- Click **Cancel** to return to the list view without saving.
Once saved, the config will appear in the TDS Ads list, with all relevant metadata.

* * *
## **Editing an Existing Configuration**
- From the list view, click **Edit** from the Actions menu of an existing config to open the configuration form.

- Update the relevant fields and save the new configuration.

* * *
# TDS Ads Bank Configuration
## **Navigation**
- Go to **Ads** in the left sidebar.
- Click **TDS Ads bank** to access the list view and manage TDS Ads bank configurations.

* * *
## **List View Overview**
When you open TDS Ads bank, the list view displays all existing configurations with the following columns:
| **Column Name** | **Description** |
| --- | --- |
| **ID** | Unique identifier for the TDS Ads Bank configuration. |
| **Name** | Unique name of the TDS Ads Bank config. |
| **Labels** | Optional labels/tags for categorisation. |
| **Availability** | Inherited from Ads Config. |
| **In Use** | Inherited from Ads Config. |
| **Updated at (UTC)** | Last modified timestamp. |
| **Actions** | Options to **Edit, Duplicate,** or **Delete** the configuration. |

* * *
## **Filters Available**
You can filter the list view using the following criteria:
- **ID**
- **Name**
- **Labels**
- **Availability state** (inherited from Ads Config)
- **Created after** (date picker)
- **Updated after** (date picker)
- **Created by me** (personalised view)
* * *
## **Creating a New TDS Ads Bank Configuration**
- Click **[+New]** to configure a new TDS Ads Bank.
A new form to configure a new TDS Ads Bank appears. Here’s how each field works:
| **Field** | **Type** | **Required** | **Description** |
| --- | --- | --- | --- |
| **Name** | Text | Yes | Unique identifier for the TDS Ads Bank. Used for referencing and filtering. |
| **Labels** | Dropdown (multi-select) | Optional | Used for categorising or grouping ads banks. |
| **Show in order based on probability** | Boolean | Yes | If true, TDS Ads will be served probabilistically by defined values. If false, probability column is disabled and ignored. |
| **Redirect URL/onelink URL** | Text | Yes | Destination URL users are sent to after interaction (click-through). This is often a OneLink (for mobile attribution). |
| **Add TDS Ad** | A dropdown list of available TDS Ads configs. | Yes. At least one TDS Ad must be added. | - Nothing is pre-selected by default. - Each TDS Ad config can only be added once. - Order matters – the ads will be sent in the same order they appear in the UI. |
| **TDS Ads.Order** | Auto-configured | N/A | Determines sequence of ads served (drag to reorder) |
| **TDS Ads.Name** | Dropdown list | Yes | Name of the TDS Ad config with **Creative ID URL** in brackets |
| **TDS Ads.Probability** | Float | Required only if "Show in order based on probability" is enabled | Order based on highest probability |
| **TDS Ads.Delete** | Action button | Optional | Delete the TDS Ad from the list |

* * *
## **Saving the Configuration**
- Click **Save** to create the TDS Ads Bank config.
- Click **Cancel** to return to the list view without saving.
Once saved, the config will appear in the TDS Ads Bank list, with all relevant metadata.

* * *
## **Editing an Existing Configuration**
- From the list view, click **Edit** from the Actions menu of an existing config to open the configuration form.
- Update the relevant fields and save the new configuration.

- From the list view, you can duplicate or delete an existing Ads bank if required.

Tools
Chunk #0
| **Tool** | **Link** | **Comment** |
| --- | --- | --- |
| **General** |
| **HiBob** | [https://app.hibob.com/login/](https://app.hibob.com/login/) | Our people management platform |
| **Surfshark** | [https://surfshark.com](https://surfshark.com) | A VPN service |
| **Zoom** | [https://zoom.us/support/download?os=android](https://zoom.us/support/download?os=android) | Used to connect with people |
| **Slack** | [https://apps.apple.com/gb/app/slack-for-desktop/id803453959?mt=12](https://apps.apple.com/gb/app/slack-for-desktop/id803453959?mt=12) | Used to connect with people |
| **Confluence** | [1. Project Summary](/wiki/spaces/WOOD/pages/2380693515/1.+Project+Summary) | Woodoku Confluence space |
| **Testing and development** |
| **TestRail** | [https://tripledot.testrail.io](https://tripledot.testrail.io)[/index.php?/dashboard](https://onthespot.testrail.com/index.php?/dashboard) | Test Tracking tool |
| **Charles** | [https://www.charlesproxy.com](https://www.charlesproxy.com) | A cross-platform HTTP debugging proxy server application |
| **TestFlight** | [https://testflight.apple.com](https://testflight.apple.com) | An iOS test builds distribution tool |
| **Applivery** | [https://tripledot.applivery.io](https://tripledot.applivery.io) | An Android test builds distribution tool |
| **Postman** | [https://www.postman.com](https://www.postman.com) | A platform for API testing |
| **Appstore connect** | [https://appstoreconnect.apple.com/](https://appstoreconnect.apple.com/) | It is used for monitoring iOS builds stats and activities, vitals, analytics, crashes, etc. |
| **Google Play console** | [https://play.google.com/](https://play.google.com/) | It is used for monitoring Android builds stats and activities, vitals, analytics, crashes, etc. |
| **OneSignal** | [https://app.onesignal.com/](https://app.onesignal.com/) | A push-notification service. |
| **Appsflyer** | [https://hq1.appsflyer.com/auth/login](https://hq1.appsflyer.com/auth/login) | It is used for user acquisition processes, monitoring events, stats, and vitals. |
| **Redash** | [https://redash.tripledotapi.com](https://redash.tripledotapi.com) | A SaaS application to query data sources and tracking events. |
| **MAX Mediator / Applovin** | [https://dash.applovin.com/o/account#basic\_info](https://dash.applovin.com/o/account#basic_info) | A monetization app. |
| **Firebase console** | [https://console.firebase.google.com/](https://console.firebase.google.com/) | It is used for monitoring project dashboards, vitals, crashlytics, events + real-time events. |
| **xCode** | [https://developer.apple.com/xcode/](https://developer.apple.com/xcode/) | An IDE containing a suite of software development tools, mostly using for debugging |
| **Android Studio** | [https://developer.android.com/studio](https://developer.android.com/studio) | Android Studio tools for building & debugging Android apps |
| **Game Server (GS) and LiveOps** |
| **Game Server Staging** | [https://game-server-staging.tripledotapi.com/admin/applications/4/home](https://game-server-staging.tripledotapi.com/admin/applications/4/home) | Game Server Environment with test game settings |
| **Game Server Production** | [https://gs.tripledotapi.com/admin](https://gs.tripledotapi.com/admin) | Game Server Environment with production game settings |
| **Harmony** **Staging** | [https://harmony-staging.tripledotapi.com/admin](https://harmony-staging.tripledotapi.com/admin) | GS Service with staging (test) localisation keys and translations |
| **Harmony** **Production** | [https://harmony.tripledotapi.com/admin](https://harmony.tripledotapi.com/admin) | GS Service with production localisation keys and translations |
| **LiveOps Staging** | [https://lo-stg-web.tripledotapi.com/admin/](https://lo-stg-web.tripledotapi.com/admin/) | Test Environment with settings related to LiveOps (time limited) events |
| **LiveOps Production** | [https://liveops.tripledotapi.com/admin](https://liveops.tripledotapi.com/admin) | Production Environment with production settings related to LiveOps (time limited) events |