GameTribe

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

PropertyTypeDescription
InstancePlatformSDKSingleton instance
ConfigPlatformConfigSDK configuration
EventsEventManagerEvent tracking manager
AdsAdManagerAd display manager
AnalyticsAnalyticsManagerAnalytics manager
SessionGameSessionManagerSession manager
CurrentUserUserCurrent authenticated user
IsInitializedboolWhether SDK is initialized
IsUserAuthenticatedboolWhether user is authenticated

Events

EventSignatureDescription
OnSDKReadyActionSDK fully initialized
OnUserAuthenticatedAction<User>User authenticated
OnInitializationFailedAction<string>Initialization failed

Methods

csharp
// Initialize the SDK (usually automatic)
void Initialize(string apiKey = null, string gameId = null)
// Authenticate user with token
Task<bool> AuthenticateUserAsync(string token)
// Shutdown SDK and cleanup
void Shutdown()

GameSessionManager

Manages player sessions, authentication, and score submission. Access via PlatformSDK.Instance.Session.

Properties

PropertyTypeDescription
SessionTokenstringCurrent session token
SessionIdstringBackend session ID
IsSessionActiveboolWhether session is active
PlayerStatsPlayerStatsPlayer statistics
SessionDataSessionDataFull session data

Events

EventSignatureDescription
OnSessionAuthenticatedAction<SessionAuthResponse>Session authenticated
OnSessionAuthenticationFailedAction<string>Authentication failed
OnSessionEndedAction<EndSessionResponse>Session ended
OnHeartbeatFailedAction<string>Heartbeat failed

Methods

csharp
// Initialize from URL parameters (automatic in WebGL)
void InitializeFromURL()
// Initialize with specific tokens
void InitializeWithTokens(string sessionToken, string userToken)
// End session and submit score
Task<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 immediately
void SubmitScore(int score, Dictionary<string, object> metadata = null)
void TrackLeaderboardViewed(
string leaderboardType = "global",
Dictionary<string, object> metadata = null
)
csharp
// CRITICAL - Sent immediately
void 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 immediately
void TrackItemPurchased(
string itemId,
string itemType,
Dictionary<string, object> price,
Dictionary<string, object> metadata = null
)
csharp
// Force send all queued events
Task FlushAsync()
// Get number of events in queue
int GetQueuedEventCount()
// Must be called every frame for batching
void Update()

AdManager

Manages ad display and callbacks. Access via PlatformSDK.Instance.Ads.

Methods

csharp
// Check if ad is ready
bool IsAdReady(AdType type, string placement)
// Show interstitial ad
void ShowInterstitial(string placement, AdCallbacks callbacks = null)
// Show rewarded ad
void ShowRewarded(string placement, AdCallbacks callbacks = null)
// Show banner ad
void ShowBanner(BannerPosition position)
// Hide banner ad
void 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;
}
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 backend
public string gameId; // Game ID
public string playerId; // Player ID
public string status; // "pending"|"active"|"ended"|"abandoned"
public string startedAt; // ISO 8601 timestamp
public string lastHeartbeatAt; // ISO 8601 timestamp
public string createdAt; // ISO 8601 timestamp
}
csharp
public class PlayerStats
{
public int highestScore; // Best score
public int totalPlays; // Number of plays
public float averageScore; // Average score
public int rank; // Leaderboard rank
public 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.

PropertyTypeDefaultDescription
apiKeystringRequiredYour SDK API Key
gameIdstringRequiredUnique game identifier
apiBaseUrlstringProductionBackend server URL
eventBatchSizeint10Events before auto-send
eventBatchIntervalfloat30Seconds before auto-send
maxQueuedEventsint1000Max events in memory
adCooldownSecondsfloat180Time between interstitial ads
enableAdBlockDetectionbooltrueDetect ad blockers
enableAnalyticsbooltrueEnable analytics
analyticsBatchIntervalfloat60Analytics send interval
trackPerformanceMetricsbooltrueTrack FPS, memory, etc.
debugModeboolfalseEnable debug logging
verboseLoggingboolfalseExtra detailed logs
mockAPIResponsesboolfalseUse mock data for testing