Unreal Engine SDK: Adding SKAdNetwork Support


Introduction: SKAdNetwork and SKAN

SKAdNetwork is Apple's new framework for attributing mobile installs without compromising the end-user's privacy. Singular's new version of the iOS SDK helps you implement SKAdNetwork seamlessly and with minimal engineering effort. This SKAdNetwork implementation is based on SKAN - a standard developed by Singular for a smooth implementation of SKAdNetwork.

For a full guide to Singular's SKAdNetwork implementation, see the iOS SDK SKAdNetwork implementation guide.

Implementing SKAdNetwork in the Unreal Engine SDK

USingularSDKBPLibrary::Initialize Method Settings

You can configure the following options in the USingularSDKBPLibrary::Initialize method. For more information about each of these options, see the iOS SDK SKAdNetwork implementation guide.

Option Default
skAdNetworkEnabled True Set to true to enable SKAdNetwork support.
manualSKANConversionManagement False Set to true if you want to manage the conversion value manually.

Note: Starting in Unreal Engine SDK version 2.0.11, SKAdNetwork is enabled by default.

If you are using an older version of the SDK, you need to enable SKAdNetwork by setting skAdNetworkEnabled to True.

SKAdNetwork Methods

SingularSDK SkanRegisterAppForAdNetworkAttribution Method

Register for SKAdNetwork tracking.


  • This is the same as setting skAdNetworkEnabled to True in the USingularSDKBPLibrary::Initialize method.
  • Calling this method overrides the configured value in USingularSDKBPLibrary::Initialize.
  • Starting in Unreal Engine SDK version 2.0.11, SKAdNetwork is enabled by default.
Signature public void SkanRegisterAppForAdNetworkAttribution()
Usage Example
SingularSDK SkanUpdateConversionValue Method 

Update the SKAdNetwork conversion value.

Note: Use this method if you have selected to update the SKAdNetwork conversion value manually. This method will work only if manualSKANConversionManagement is set to True.

Signature public void SkanUpdateConversionValue(int conversionValue)
Usage Example
// A sign-up event happened
  // Update the conversion value to 7
SingularSDK SkanGetConversionValue Method 
Description Get the current conversion value tracked by the Singular SDK.
Signature public int SkanGetConversionValue()
Usage Example
int value = USingularSDKBPLibrary::SkanGetConversionValue();

Register to SKAN Conversion Value Updated

  1. Add #include "SingularDelegates.h" to the top of the header file of the class that you want to register the delegate.
  2. Add the following to your class:

    // A delegate to register that invokes the Conversion Value updated
      UPROPERTY(BlueprintAssignable, Category = "Singular-SDK")
      FOnConversionValueUpdated OnConversionValueUpdated;
      // The method we will use to register the delegate
      void NewConversionValue(int32 conversionValue);
  3. In the class cpp file register to the event: