Identifiers are extremely important to our attribution algorithm. In order for us to accurately attribute players, we need to collect fingerprinting information from the player's computer.

Since some unique identifiers can be difficult to collect we have separated out the number of identifiers required for each event based on the scale of the game. The following table summarizes the number of identifiers required based on DAU.

📘

Recommended Identifier Count

It is important to pay attention to the number of identifiers recommended for your game's scale. If an insufficient number of identifiers are included the accuracy of Gamesight's conversion tracking with decrease.

Daily Active Players

Identifiers Recommended

< 2,500,000

2+

< 5,000,000

3+

< 10,000,000

4+

More than 10,000,000?

Contact Us

Platform

The platform that the game is running on. This is used in reporting to split platforms for your game. The values also influence the attribution process by enabling optimized attribution flows for the specific device. Allowed values:

# Consoles
playstation_3
playstation_4
playstation_5
xbox_one
xbox_360
xbox_seriess
xbox_seriesx
nintendo_switch
stadia

# PC Distribution Platforms
steam
epicgs
kartridge
oculus_rift
oculus_quest
microsoft_store
humble_store
gog

# Self distributed
web
windows
macos
linux

SKU

A custom value used to differentiate different distributions of the game. Values commonly include details about the distribution channel, edition, language, and more.

OS

A simple string which represents the OS version for the user. Examples:

Windows 10
Windows 7
Mac OS X 10.11.5

On windows this information be retrieved with the following code

string os;
if (IsWindowsXPOrGreater())
{
  os = "Windows XP";
}
if (IsWindowsXPSP1OrGreater())
{
  os = "Windows XP Service Pack 1";
}
if (IsWindowsXPSP2OrGreater())
{
  os = "Windows XP Service Pack 2";
}
if (IsWindowsXPSP3OrGreater())
{
  os = "Windows XP Service Pack 3";
}
if (IsWindowsVistaOrGreater())
{
  os = "Windows Vista";
}
if (IsWindowsVistaSP1OrGreater())
{
  os = "Windows Vista Service Pack 1";
}
if (IsWindowsVistaSP2OrGreater())
{
  os = "Windows Vista Service Pack 2";
}
if (IsWindows7OrGreater())
{
  os = "Windows 7";
}
if (IsWindows7SP1OrGreater())
{
  os = "Windows 7 Service Pack 1";
}
if (IsWindows8OrGreater())
{
  os = "Windows 8";
}
if (IsWindows8Point1OrGreater())
{
  os = "Windows 8.1";
}
if (IsWindows10OrGreater())
{
  os = "Windows 10";
}

Screen Resolution

A string representing the primary monitor's screen resolution. Examples:

1920x1080
1440x900

On windows this information be retrieved with the following code

RECT desktop;
GetWindowRect(GetDesktopWindow(), &desktop);
string resolution = to_string(desktop.right) + "x" + to_string(desktop.bottom);

Timezone

An integer representing the number of minutes of offset between UTC and the current user's timezone. Such that UTC = local time + timezone

On windows this information be retrieved with the following code

DYNAMIC_TIME_ZONE_INFORMATION tzInfo;
GetDynamicTimeZoneInformation(&tzInfo);
long timezone = tzInfo.Bias;

Language

An ISO 639-1 language string optionally including a ISO 3166-2 region code when available

en
de
en-US

On windows this information be retrieved with the following code

LANGID langID = GetUserDefaultLangID();
WCHAR langChar[LOCALE_NAME_MAX_LENGTH];
LCIDToLocaleName(langID, langChar, LOCALE_NAME_MAX_LENGTH, 0);
wstring lang(langChar);
string language(lang.begin(), lang.end());