Skip to main content

GameSight connector API guide

Last updated on October 4, 2023

Overview

This document contains the guidelines of Data Connector API to stream data into GameSight. GameSight combines proprietary data, enterprise-grade software, and market expertise to drive revenue for your games.

Conversely, AccelByte Intelligent Service (AIS) has an e-commerce feature to manage an in-game store that can be connected to third-party game platforms, such as PlayStation, XBOX, and Steam. The GameSight connector can stream the IAP purchase data from AIS to GameSight.

Create a GameSight connector using the API

  1. Create the GameSight connector configuration following the structure below via API endpoint [POST] /analytics-connector/v1/connectors. Ensure that you check the field configuration description in the description of the connector configuration section. Retrieve a list of analytics data to fill out the filter configuration.

     {
    "connectorName": "<gamesight-connector-name>",
    "connectorType": "SINK",
    "storageType": "KAFKA_GAMESIGHT",
    "config": {
    "gamesightApiKey": "<gamesight-api-key>",
    "gamesightIapType": "<gamesight-iap-type>",
    "flushInterval": "<flush-interval>",
    "flushSize": "<flush-size>",
    "eventType": "<event-type>",
    "platformMap": "<gamesight-platform-map>",
    "externalIdMap": "<gamesight-external-id-map>"
    },
    "filter": {
    "<namespace>": [
    "<topic>"
    ]
    }
    }
  2. Activate the GameSight connector configuration via API endpoint [PUT] /analytics-connector/v1/admin/connectors/{id}/activate. Replace {id} with the GameSight connector ID from the API response.

Connector configuration description

Config

  • gamesight-connector-name: Name of the GameSight connector, please note that the connector name will have an additional random number after the GameSight connector is created.

  • gamesight-api-key: The API key from GameSight.

  • gamesight-iap-type: The GameSight event type name

  • event-type: There are two event types: justice_event and game_telemetry.

    • justice_event: System-generated events from AccelByte services (Service Telemetry).

    • game_telemetry: Custom telemetry events that are sent from game clients (Custom Telemetry).

  • flush-interval: Maximum time interval in milliseconds that the data should be periodically written into GameSight. The flush interval range is between 1 and 15 minutes.

  • flush-size: Maximum number of events that should be written into GameSight. The flush size range is 100 and 1000. Data will be sent depending on which condition is reached first between flush-interval or flush-size.

  • gamesight-platform-map: The AIS to GameSight platform mapping. The default platform mapping:

    {
    "APPLE": "apple",
    "GOOGLE": "google",
    "PLAYSTATION": "playstation",
    "STEAM": "steam",
    "XBOX": "xbox",
    "STADIA": "stadia",
    "EPICGAMES": "epicgames",
    "OCULUS": "oculus",
    "TWITCH": "twitch"
    }
  • gamesight-external-id-map: The AIS to GameSight external user IDs mapping. The default external user IDs mapping:

    {
    "APPLE": "apple_uid",
    "GOOGLE": "google_uid",
    "PLAYSTATION": "psn_uid",
    "STEAM": "steamid64",
    "XBOX": "xuid",
    "STADIA": "stadia_uid",
    "EPICGAMES": "epicgs_id",
    "OCULUS": "oculus_uid",
    "TWITCH": "twitch"
    }

Filter

  • namespace: Property to filter specific namespace, using an asterisk (*) for all namespaces.

  • topic: Property to filter specific analytics topics, using an asterisk (*) for all topics.

Example GameSight connector configuration

{
"connectorName": "gamesight-connector",
"connectorType": "SINK",
"storageType": "KAFKA_GAMESIGHT",
"config": {
"gamesightApiKey": "xxx",
"gamesightIapType": "currency_pack_purchase",
"flushInterval": "5",
"flushSize": "100",
"eventType": "justice_event",
"platformMap": {
"XBOX": "xbox_seriesx",
"STEAM": "steam",
"EPICGAMES": "epicgs",
"PLAYSTATION": "playstation_5"
},
"externalIdMap": {
"XBOX": "xuid",
"STEAM": "steamid64",
"EPICGAMES": "epicgs_id",
"PLAYSTATION": "psn_uid"
}
},
"filter": {
"*": [
"*"
]
}
}