Skip to main content

Third-party data

Last updated 08/27/2026

Third-party data integration is supported starting from v1.5.0. The following sample code syncs data from multiple platforms:

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeIRONSOURCE"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRACKING"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRADPLUS"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

To add custom parameters, you can use EnableThirdPartySharingWithCustomProperties:

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeIRONSOURCE"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRACKING"));
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRADPLUS"));

TSharedPtr<FJsonObject> m_DataJsonObject = MakeShareable(new FJsonObject);
m_DataJsonObject->SetStringField(TEXT("thirdkey1"), TEXT("thirdvalue1"));
m_DataJsonObject->SetStringField(TEXT("thirdkey2"), TEXT("thirdvalue2"));
UTDAnalytics::EnableThirdPartySharingWithCustomProperties(EventTypeList, m_DataJsonObject, AppID);

1.Appsflyer​

Call the API before the AppsFlyer SDK calls the start method.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

After the user registers or creates a character (optional).

UTDAnalytics::Login("account_id", AppID);
TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

If you call the AE Login method (which changes account_id) or Identify method (which changes distinct_id), call EnableThirdPartySharing again to sync the data.

Note: If you also need to call the setAdditionalData method of the AppsFlyer SDK, you can pass the parameters to AE through EnableThirdPartySharingWithCustomProperties, and the AE SDK concatenates and merges the parameters internally.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeAPPSFLYER"));
TSharedPtr<FJsonObject> m_DataJsonObject = MakeShareable(new FJsonObject);
m_DataJsonObject->SetStringField(TEXT("thirdkey1"), TEXT("thirdvalue1"));
m_DataJsonObject->SetStringField(TEXT("thirdkey2"), TEXT("thirdvalue2"));
UTDAnalytics::EnableThirdPartySharingWithCustomProperties(EventTypeList, m_DataJsonObject, AppID);

2.Adjust​

Call this before the Adjust SDK is initialized.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

After the user registers or creates a character (optional).

UTDAnalytics::Login("account_id", AppID);
TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeADJUST"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

3.Branch​

Call this before Branch initializes the session.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

After the user registers or creates a character (optional).

UTDAnalytics::Login("account_id", AppID);
TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeBRANCH"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

4.TopOn​

Call this before ATSDK.init.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

Note: If you also need to call the initCustomMap method of ATSDK, you can pass the parameters to AE through EnableThirdPartySharingWithCustomProperties, and the AE SDK concatenates and merges the parameters internally.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTOPON"));
TSharedPtr<FJsonObject> m_DataJsonObject = MakeShareable(new FJsonObject);
m_DataJsonObject->SetStringField(TEXT("thirdkey1"), TEXT("thirdvalue1"));
m_DataJsonObject->SetStringField(TEXT("thirdkey2"), TEXT("thirdvalue2"));
UTDAnalytics::EnableThirdPartySharingWithCustomProperties(EventTypeList, m_DataJsonObject, AppID);

5.Tradplus​

Call this before TradPlusSdk.initSdk.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeTRADPLUS"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);

6.IronSource​

Call this after IronSourceSdk is initialized.

TArray<FString> EventTypeList;
EventTypeList.Emplace(TEXT("TAThirdPartyShareTypeIRONSOURCE"));
UTDAnalytics::EnableThirdPartySharing(EventTypeList, AppID);
Was this page helpful?