Unreal Engine SDK - Methods Reference
The Singular Unreal Engine SDK provides comprehensive tracking and attribution capabilities for Unreal Engine applications. This reference documents all available SDK methods with their signatures and usage examples.
CreateReferrerShortLink
Create Referrer Short Link
Generate a short Singular Link that can be shared to track user-to-user attribution and viral growth campaigns.
Signature
static void CreateReferrerShortLink(
FString baseLink,
FString referrerName,
FString referrerId,
TMap<FString, FString> args
);
Usage Example
// Create a referrer short link
FString BaseLink = TEXT("https://example.sng.link/abc123");
FString ReferrerName = TEXT("John Doe");
FString ReferrerId = TEXT("user_12345");
TMap<FString, FString> PassthroughParams;
PassthroughParams.Add(TEXT("campaign"), TEXT("summer_promo"));
PassthroughParams.Add(TEXT("level"), TEXT("5"));
USingularSDKBPLibrary::CreateReferrerShortLink(
BaseLink,
ReferrerName,
ReferrerId,
PassthroughParams
);
GetLimitDataSharing
Get Limit Data Sharing State
Check the current data sharing limitation status for privacy compliance.
Signature
static bool GetLimitDataSharing();
Usage Example
// Check if data sharing is limited
bool IsLimited = USingularSDKBPLibrary::GetLimitDataSharing();
if (IsLimited)
{
UE_LOG(LogTemp, Log, TEXT("Data sharing is currently limited"));
}
else
{
UE_LOG(LogTemp, Log, TEXT("Data sharing is enabled"));
}
Initialize
Initialize Singular SDK
Initialize the Singular SDK with configuration parameters including API credentials, tracking settings, and privacy options.
Signature
static bool Initialize(
FString apiKey,
FString apiSecret,
int sessionTimeout = 60,
FString customUserId = TEXT(""),
bool skAdNetworkEnabled = true,
bool manualSkanConversionManagement = false,
int waitForTrackingAuthorizationWithTimeoutInterval = 0,
bool oaidCollection = false,
bool enableLogging = false,
int logLevel = 0,
bool clipboardAttribution = false,
FString facebookAppId = TEXT(""),
FString customSdid = TEXT("")
);
Usage Example
// Initialize SDK with required parameters
FString ApiKey = TEXT("YOUR_API_KEY");
FString ApiSecret = TEXT("YOUR_API_SECRET");
bool Success = USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // Session timeout in seconds
TEXT(""), // Custom user ID (optional)
true, // SKAdNetwork enabled
false, // Manual SKAN conversion management
0, // Wait for tracking authorization timeout
false, // OAID collection
true, // Enable logging for debugging
3, // Log level (0-5)
false, // Clipboard attribution
TEXT(""), // Facebook App ID (optional)
TEXT("") // Custom SDID (optional)
);
if (Success)
{
UE_LOG(LogTemp, Log, TEXT("Singular SDK initialized successfully"));
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to initialize Singular SDK"));
}
IsAllTrackingStopped
Check If All Tracking Is Stopped
Determine whether all tracking has been stopped for privacy compliance or user preference.
Signature
static bool IsAllTrackingStopped();
Usage Example
// Check tracking status
bool IsTrackingStopped = USingularSDKBPLibrary::IsAllTrackingStopped();
if (IsTrackingStopped)
{
UE_LOG(LogTemp, Warning, TEXT("Tracking is currently stopped"));
// Update UI to reflect tracking status
}
else
{
UE_LOG(LogTemp, Log, TEXT("Tracking is active"));
}
LimitDataSharing
Set Data Sharing Limitation
Control whether user data is shared with third parties for privacy compliance with regulations like GDPR and CCPA.
Signature
static void LimitDataSharing(bool shouldLimitDataSharing);
Usage Example
// Limit data sharing when user opts out
USingularSDKBPLibrary::LimitDataSharing(true);
UE_LOG(LogTemp, Log, TEXT("Data sharing has been limited"));
// Enable data sharing when user opts in
USingularSDKBPLibrary::LimitDataSharing(false);
UE_LOG(LogTemp, Log, TEXT("Data sharing has been enabled"));
ResumeAllTracking
Resume All Tracking
Re-enable tracking after it has been stopped, allowing the SDK to resume data collection and event reporting.
Signature
static void ResumeAllTracking();
Usage Example
// Resume tracking when user grants consent
USingularSDKBPLibrary::ResumeAllTracking();
UE_LOG(LogTemp, Log, TEXT("Tracking has been resumed"));
SendEvent
Send Custom Event
Track a custom event by name to measure user actions and engagement within your application.
Signature
static void SendEvent(FString eventName);
Usage Example
// Track level completion event
USingularSDKBPLibrary::SendEvent(TEXT("level_completed"));
// Track tutorial start
USingularSDKBPLibrary::SendEvent(TEXT("tutorial_start"));
// Track user achievement
USingularSDKBPLibrary::SendEvent(TEXT("achievement_unlocked"));
SendEventWithArgs
Send Custom Event With Attributes
Track a custom event with additional attributes to provide detailed context about user actions.
Signature
static void SendEventWithArgs(
FString eventName,
TMap<FString, FString> args
);
Usage Example
// Track level completion with attributes
TMap<FString, FString> LevelAttributes;
LevelAttributes.Add(TEXT("level_name"), TEXT("Dark Forest"));
LevelAttributes.Add(TEXT("level_number"), TEXT("5"));
LevelAttributes.Add(TEXT("time_spent"), TEXT("245"));
LevelAttributes.Add(TEXT("score"), TEXT("8500"));
USingularSDKBPLibrary::SendEventWithArgs(
TEXT("level_completed"),
LevelAttributes
);
// Track item purchase with details
TMap<FString, FString> PurchaseAttributes;
PurchaseAttributes.Add(TEXT("item_id"), TEXT("sword_legendary"));
PurchaseAttributes.Add(TEXT("item_category"), TEXT("weapon"));
PurchaseAttributes.Add(TEXT("item_rarity"), TEXT("legendary"));
USingularSDKBPLibrary::SendEventWithArgs(
TEXT("item_purchased"),
PurchaseAttributes
);
SendRevenue
Send Revenue Event
Track revenue-generating events with currency and amount to measure monetization performance.
Signature
static void SendRevenue(
FString eventName,
FString currency,
float amount
);
Usage Example
// Track in-app purchase revenue
USingularSDKBPLibrary::SendRevenue(
TEXT("coin_pack_purchase"),
TEXT("USD"),
4.99f
);
// Track subscription purchase
USingularSDKBPLibrary::SendRevenue(
TEXT("premium_subscription"),
TEXT("EUR"),
9.99f
);
SendRevenueWithArgs
Send Revenue Event With Attributes
Track revenue with additional attributes to provide detailed information about the transaction.
Signature
static void SendRevenueWithArgs(
FString eventName,
FString currency,
float amount,
TMap<FString, FString> args
);
Usage Example
// Track revenue with transaction details
TMap<FString, FString> TransactionAttributes;
TransactionAttributes.Add(TEXT("product_id"), TEXT("com.game.coins.large"));
TransactionAttributes.Add(TEXT("product_name"), TEXT("Large Coin Pack"));
TransactionAttributes.Add(TEXT("quantity"), TEXT("1"));
TransactionAttributes.Add(TEXT("payment_method"), TEXT("credit_card"));
USingularSDKBPLibrary::SendRevenueWithArgs(
TEXT("iap_purchase"),
TEXT("USD"),
9.99f,
TransactionAttributes
);
SetCustomUserId
Set Custom User ID
Assign a custom user identifier to track users across devices and sessions using your own ID system.
Signature
static void SetCustomUserId(FString customUserId);
Usage Example
// Set custom user ID after login
FString UserId = TEXT("user_abc123xyz");
USingularSDKBPLibrary::SetCustomUserId(UserId);
UE_LOG(LogTemp, Log, TEXT("Custom user ID set: %s"), *UserId);
SetUninstallToken
Set Uninstall Tracking Token
Register a push notification token to enable uninstall tracking for measuring user retention.
Signature
static void SetUninstallToken(FString token);
Usage Example
// Set push notification token for uninstall tracking
FString PushToken = TEXT("abc123def456...");
USingularSDKBPLibrary::SetUninstallToken(PushToken);
UE_LOG(LogTemp, Log, TEXT("Uninstall token registered"));
SkanGetConversionValue
Get SKAdNetwork Conversion Value
Retrieve the current SKAdNetwork conversion value for iOS apps (iOS only).
Signature
static int SkanGetConversionValue();
Usage Example
// Get current SKAdNetwork conversion value (iOS only)
int ConversionValue = USingularSDKBPLibrary::SkanGetConversionValue();
UE_LOG(LogTemp, Log, TEXT("Current conversion value: %d"), ConversionValue);
SkanRegisterAppForAdNetworkAttribution
Register App for Ad Network Attribution
Register the app with Apple's SKAdNetwork framework for attribution tracking (iOS only).
Signature
static void SkanRegisterAppForAdNetworkAttribution();
Usage Example
// Register for SKAdNetwork attribution (iOS only)
USingularSDKBPLibrary::SkanRegisterAppForAdNetworkAttribution();
UE_LOG(LogTemp, Log, TEXT("Registered for SKAdNetwork attribution"));
SkanUpdateConversionValue
Update SKAdNetwork Conversion Value
Update the SKAdNetwork conversion value to reflect user engagement and monetization (iOS only).
Signature
static bool SkanUpdateConversionValue(int conversionValue);
Usage Example
// Update conversion value based on user actions (iOS only)
int NewValue = 10;
bool Success = USingularSDKBPLibrary::SkanUpdateConversionValue(NewValue);
if (Success)
{
UE_LOG(LogTemp, Log, TEXT("Conversion value updated to: %d"), NewValue);
}
else
{
UE_LOG(LogTemp, Warning, TEXT("Failed to update conversion value"));
}
SkanUpdateConversionValues
Update SKAdNetwork Conversion Values With Fine and Coarse Values
Update SKAdNetwork with fine-grained conversion value, coarse value, and lock status for iOS 16.1+ (iOS only).
Signature
static void SkanUpdateConversionValues(
int conversionValue,
int coarse,
bool lock
);
Usage Example
// Update conversion values with fine and coarse values (iOS 16.1+)
int FineValue = 25;
int CoarseValue = 1; // 0 = low, 1 = medium, 2 = high
bool Lock = false; // Set to true to prevent further updates
USingularSDKBPLibrary::SkanUpdateConversionValues(FineValue, CoarseValue, Lock);
UE_LOG(LogTemp, Log, TEXT("Updated conversion values: fine=%d, coarse=%d"), FineValue, CoarseValue);
StopAllTracking
Stop All Tracking
Completely stop all SDK tracking activities to comply with user privacy preferences or regulatory requirements.
Signature
static void StopAllTracking();
Usage Example
// Stop tracking when user withdraws consent
USingularSDKBPLibrary::StopAllTracking();
UE_LOG(LogTemp, Warning, TEXT("All tracking has been stopped"));
TrackingOptIn
Record Tracking Opt-In
Notify Singular that the user has explicitly opted in to tracking for GDPR compliance.
Signature
static void TrackingOptIn();
Usage Example
// Record user opt-in for GDPR compliance
USingularSDKBPLibrary::TrackingOptIn();
UE_LOG(LogTemp, Log, TEXT("User has opted in to tracking"));
TrackingUnder13
Mark User as Under 13
Notify Singular that the user is under 13 years old for COPPA compliance and children's privacy protection.
Signature
static void TrackingUnder13();
Usage Example
// Mark user as under 13 for COPPA compliance
USingularSDKBPLibrary::TrackingUnder13();
UE_LOG(LogTemp, Log, TEXT("User marked as under 13 years old"));
UnsetCustomUserId
Remove Custom User ID
Clear the previously set custom user ID, typically used during logout or account switching.
Signature
static void UnsetCustomUserId();
Usage Example
// Clear custom user ID on logout
USingularSDKBPLibrary::UnsetCustomUserId();
UE_LOG(LogTemp, Log, TEXT("Custom user ID has been cleared"));