API Reference
Complete reference for all SDK classes, methods, and properties.
PlatformSDK
The main singleton manager for the GameTribe SDK. Access via PlatformSDK.Instance.
Properties
| Property | Type | Description |
|---|---|---|
| Instance | PlatformSDK | Singleton instance |
| Config | PlatformConfig | SDK configuration |
| Events | EventManager | Event tracking manager |
| Ads | AdManager | Ad display manager |
| Analytics | AnalyticsManager | Analytics manager |
| Session | GameSessionManager | Session manager |
| CurrentUser | User | Current authenticated user |
| IsInitialized | bool | Whether SDK is initialized |
| IsUserAuthenticated | bool | Whether user is authenticated |
Events
| Event | Signature | Description |
|---|---|---|
| OnSDKReady | Action | SDK fully initialized |
| OnUserAuthenticated | Action<User> | User authenticated |
| OnInitializationFailed | Action<string> | Initialization failed |
Methods
csharp
// Initialize the SDK (usually automatic)void Initialize(string apiKey = null, string gameId = null)// Authenticate user with tokenTask<bool> AuthenticateUserAsync(string token)// Shutdown SDK and cleanupvoid Shutdown()
GameSessionManager
Manages player sessions, authentication, and score submission. Access via PlatformSDK.Instance.Session.
Properties
| Property | Type | Description |
|---|---|---|
| SessionToken | string | Current session token |
| SessionId | string | Backend session ID |
| IsSessionActive | bool | Whether session is active |
| PlayerStats | PlayerStats | Player statistics |
| SessionData | SessionData | Full session data |
Events
| Event | Signature | Description |
|---|---|---|
| OnSessionAuthenticated | Action<SessionAuthResponse> | Session authenticated |
| OnSessionAuthenticationFailed | Action<string> | Authentication failed |
| OnSessionEnded | Action<EndSessionResponse> | Session ended |
| OnHeartbeatFailed | Action<string> | Heartbeat failed |
Methods
csharp
// Initialize from URL parameters (automatic in WebGL)void InitializeFromURL()// Initialize with specific tokensvoid InitializeWithTokens(string sessionToken, string userToken)// End session and submit scoreTask<EndSessionResponse> EndSessionAsync(int finalScore,Dictionary<string, object> metadata = null)
EventManager
Tracks all game events. Access via PlatformSDK.Instance.Events.
csharp
void TrackSessionStarted(Dictionary<string, object> metadata = null)void TrackSessionEnded(int duration, Dictionary<string, object> metadata = null)void TrackSessionHeartbeat(int activeTime, Dictionary<string, object> metadata = null)
csharp
void TrackLevelStarted(string levelId, Dictionary<string, object> metadata = null)void TrackLevelCompleted(string levelId,int score,int duration,Dictionary<string, object> metadata = null)void TrackLevelFailed(string levelId,int duration,Dictionary<string, object> metadata = null)void TrackCheckpointReached(string checkpointId,string levelId = null,Dictionary<string, object> metadata = null)void TrackGameplayAction(string actionType,Dictionary<string, object> metadata = null)
csharp
// CRITICAL - Sent immediatelyvoid SubmitScore(int score, Dictionary<string, object> metadata = null)void TrackLeaderboardViewed(string leaderboardType = "global",Dictionary<string, object> metadata = null)
csharp
// CRITICAL - Sent immediatelyvoid TrackAchievementUnlocked(string achievementId,Dictionary<string, object> metadata = null)void TrackAchievementProgress(string achievementId,int currentProgress,int targetProgress,Dictionary<string, object> metadata = null)
csharp
void TrackFeatureUsed(string featureName, Dictionary<string, object> metadata = null)void TrackNavigation(string fromScreen,string toScreen,Dictionary<string, object> metadata = null)void TrackError(string errorType,string errorMessage,Dictionary<string, object> metadata = null)void TrackPerformance(Dictionary<string, object> metadata = null)void TrackTimeSpent(int totalTime,Dictionary<string, object> breakdown,Dictionary<string, object> metadata = null)
csharp
void TrackAdImpression(string adId, string adType, Dictionary<string, object> metadata = null)void TrackAdClick(string adId, string adType, Dictionary<string, object> metadata = null)void TrackAdCompleted(string adId, string adType, Dictionary<string, object> metadata = null)void TrackAdSkipped(string adId, string adType, Dictionary<string, object> metadata = null)void TrackAdError(string adId, string adType, string errorType, Dictionary<string, object> metadata = null)
csharp
void TrackCurrencyEarned(string currencyType,int amount,string source,Dictionary<string, object> metadata = null)void TrackCurrencySpent(string currencyType,int amount,string itemPurchased,Dictionary<string, object> metadata = null)// CRITICAL - Sent immediatelyvoid TrackItemPurchased(string itemId,string itemType,Dictionary<string, object> price,Dictionary<string, object> metadata = null)
csharp
// Force send all queued eventsTask FlushAsync()// Get number of events in queueint GetQueuedEventCount()// Must be called every frame for batchingvoid Update()
AdManager
Manages ad display and callbacks. Access via PlatformSDK.Instance.Ads.
Methods
csharp
// Check if ad is readybool IsAdReady(AdType type, string placement)// Show interstitial advoid ShowInterstitial(string placement, AdCallbacks callbacks = null)// Show rewarded advoid ShowRewarded(string placement, AdCallbacks callbacks = null)// Show banner advoid ShowBanner(BannerPosition position)// Hide banner advoid HideBanner()
AdCallbacks Class
csharp
public class AdCallbacks{public event Action OnAdLoaded;public event Action OnAdShown;public event Action OnAdClosed;public event Action<string> OnAdFailed;public event Action<string, int> OnRewardEarned;}
BannerPosition Enum
csharp
public enum BannerPosition{Top,Bottom,TopLeft,TopRight,BottomLeft,BottomRight}
Data Models
csharp
public class SessionAuthResponse{public bool success;public SessionData session;public PlayerStats playerStats;}
csharp
public class SessionData{public string id; // Session ID (UUID)public string sessionToken; // Token from backendpublic string gameId; // Game IDpublic string playerId; // Player IDpublic string status; // "pending"|"active"|"ended"|"abandoned"public string startedAt; // ISO 8601 timestamppublic string lastHeartbeatAt; // ISO 8601 timestamppublic string createdAt; // ISO 8601 timestamp}
csharp
public class PlayerStats{public int highestScore; // Best scorepublic int totalPlays; // Number of playspublic float averageScore; // Average scorepublic int rank; // Leaderboard rankpublic string lastPlayedAt; // ISO timestamp}
csharp
public class EndSessionResponse{public bool success;public string sessionId;public int sessionDurationSeconds;public int finalScore;public int? scoreRank; // May be null (computed async)}
PlatformConfig
Configuration asset for SDK settings. Create via Create → GameTribe → Platform Config.
| Property | Type | Default | Description |
|---|---|---|---|
| apiKey | string | Required | Your SDK API Key |
| gameId | string | Required | Unique game identifier |
| apiBaseUrl | string | Production | Backend server URL |
| eventBatchSize | int | 10 | Events before auto-send |
| eventBatchInterval | float | 30 | Seconds before auto-send |
| maxQueuedEvents | int | 1000 | Max events in memory |
| adCooldownSeconds | float | 180 | Time between interstitial ads |
| enableAdBlockDetection | bool | true | Detect ad blockers |
| enableAnalytics | bool | true | Enable analytics |
| analyticsBatchInterval | float | 60 | Analytics send interval |
| trackPerformanceMetrics | bool | true | Track FPS, memory, etc. |
| debugMode | bool | false | Enable debug logging |
| verboseLogging | bool | false | Extra detailed logs |
| mockAPIResponses | bool | false | Use mock data for testing |