Unreal Engine SDK - Configuration Reference
Configure the Singular Unreal Engine SDK through the Initialize method parameters. This reference documents all available configuration options with their types, default values, and usage examples.
apiKey
API Key (Required)
Your Singular API Key obtained from the Singular dashboard. This is required to initialize the SDK and identify your app.
Signature
FString apiKey
Usage Example
FString ApiKey = TEXT("your_singular_api_key");
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
// ... other parameters
);
apiSecret
API Secret (Required)
Your Singular API Secret obtained from the Singular dashboard. This is required to initialize the SDK and authenticate your app.
Signature
FString apiSecret
Usage Example
FString ApiSecret = TEXT("your_singular_api_secret");
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
// ... other parameters
);
clipboardAttribution
Clipboard Attribution
Enable reading from the clipboard to support iOS Universal Links attribution for better tracking accuracy (iOS only).
Signature
bool clipboardAttribution
// Default: false
Usage Example
// Enable clipboard attribution for iOS
bool ClipboardAttribution = true;
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
ClipboardAttribution, // Enable clipboard attribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
customSdid
Custom Singular Device ID
Set a custom Singular Device ID (SDID) instead of using the automatically generated device identifier.
Signature
FString customSdid
// Default: TEXT("")
Usage Example
// Set custom SDID
FString CustomSdid = TEXT("custom_device_id_12345");
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
CustomSdid // Custom SDID
);
customUserId
Custom User ID
Set a custom user identifier at initialization to track users across devices using your own ID system.
Signature
FString customUserId
// Default: TEXT("")
Usage Example
// Set custom user ID at initialization
FString CustomUserId = TEXT("user_xyz789");
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
CustomUserId, // Set custom user ID
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
enableLogging
Enable Logging
Enable SDK logging for debugging purposes. Should be disabled in production builds.
Signature
bool enableLogging
// Default: false
Usage Example
// Enable logging for development builds
bool EnableLogging = true;
int LogLevel = 5; // Verbose logging
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
EnableLogging, // Enable logging
LogLevel, // Set log level
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
facebookAppId
Facebook App ID
Set your Facebook App ID to enable Facebook attribution integration.
Signature
FString facebookAppId
// Default: TEXT("")
Usage Example
// Set Facebook App ID for attribution
FString FacebookAppId = TEXT("123456789012345");
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
FacebookAppId, // Facebook App ID
TEXT("") // customSdid
);
logLevel
Log Level
Set the verbosity level for SDK logging. Higher values provide more detailed logs. Valid range: 0-5.
Signature
int logLevel
// Default: 0
// Valid range: 0 (minimal) to 5 (verbose)
Usage Example
// Set verbose logging for debugging
int LogLevel = 5;
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
true, // enableLogging
LogLevel, // Set log level to verbose
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
manualSkanConversionManagement
Manual SKAdNetwork Conversion Management
Enable manual control over SKAdNetwork conversion value updates instead of automatic management (iOS only).
Signature
bool manualSkanConversionManagement
// Default: false
Usage Example
// Enable manual SKAN conversion management
bool ManualSkanManagement = true;
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
ManualSkanManagement, // Enable manual SKAN management
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
// Later, manually update conversion value
USingularSDKBPLibrary::SkanUpdateConversionValue(15);
oaidCollection
OAID Collection
Enable collection of Open Anonymous Identifier (OAID) for Android devices in China (Android only).
Signature
bool oaidCollection
// Default: false
Usage Example
// Enable OAID collection for Chinese Android devices
bool OaidCollection = true;
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
OaidCollection, // Enable OAID collection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
sessionTimeout
Session Timeout
Set the session timeout in seconds. After this period of inactivity, a new session is started when the user returns.
Signature
int sessionTimeout
// Default: 60 (seconds)
Usage Example
// Set session timeout to 5 minutes
int SessionTimeout = 300; // 5 minutes in seconds
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
SessionTimeout, // 5 minute session timeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
skAdNetworkEnabled
SKAdNetwork Enabled
Enable SKAdNetwork support for iOS attribution tracking through Apple's privacy-preserving framework (iOS only).
Signature
bool skAdNetworkEnabled
// Default: true
Usage Example
// Enable SKAdNetwork for iOS attribution
bool SkAdNetworkEnabled = true;
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
SkAdNetworkEnabled, // Enable SKAdNetwork
false, // manualSkanConversionManagement
0, // waitForTrackingAuthorizationWithTimeoutInterval
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
waitForTrackingAuthorizationWithTimeoutInterval
Wait for Tracking Authorization With Timeout Interval
Set a timeout in seconds to wait for the user to respond to the ATT (App Tracking Transparency) prompt before initializing the SDK (iOS 14+ only).
Signature
int waitForTrackingAuthorizationWithTimeoutInterval
// Default: 0 (no waiting)
// Recommended: 60-300 seconds
Usage Example
// Wait up to 5 minutes for ATT authorization
int WaitTimeout = 300; // 5 minutes
USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
60, // sessionTimeout
TEXT(""), // customUserId
true, // skAdNetworkEnabled
false, // manualSkanConversionManagement
WaitTimeout, // Wait for ATT authorization
false, // oaidCollection
false, // enableLogging
0, // logLevel
false, // clipboardAttribution
TEXT(""), // facebookAppId
TEXT("") // customSdid
);
Complete Configuration Example
Full SDK Configuration
Example showing a complete SDK initialization with all configuration options set.
// Complete configuration example
FString ApiKey = TEXT("your_api_key");
FString ApiSecret = TEXT("your_api_secret");
int SessionTimeout = 60;
FString CustomUserId = TEXT("user_12345");
bool SkAdNetworkEnabled = true;
bool ManualSkanConversionManagement = false;
int WaitForTrackingAuthorizationTimeout = 300;
bool OaidCollection = false;
bool EnableLogging = true;
int LogLevel = 3;
bool ClipboardAttribution = true;
FString FacebookAppId = TEXT("123456789012345");
FString CustomSdid = TEXT("");
bool Success = USingularSDKBPLibrary::Initialize(
ApiKey,
ApiSecret,
SessionTimeout,
CustomUserId,
SkAdNetworkEnabled,
ManualSkanConversionManagement,
WaitForTrackingAuthorizationTimeout,
OaidCollection,
EnableLogging,
LogLevel,
ClipboardAttribution,
FacebookAppId,
CustomSdid
);
if (Success)
{
UE_LOG(LogTemp, Log, TEXT("Singular SDK initialized with full configuration"));
}
else
{
UE_LOG(LogTemp, Error, TEXT("Failed to initialize Singular SDK"));
}