SDK Migration - Unreal SDK

This article contains the information required to update the Airbridge Unreal SDK. We recommend checking the information regarding all versions.

Update from v1.x.x to v4.0.0

Check the information below when updating the Airbridge Unreal SDK to v4.0.

Option

Airbridge Settings (v1)

Airbridge Settings (v4)

Change

App Name

App Name

-

App Token

App Token

-

Log Level

Log Level

-

iOS URI Scheme

iOS URI Scheme

-

Android URI Scheme

Android URI Scheme

-

Custom Domain

Custom Domain

Multiple inputs are now supported.

Session Timeout Seconds

Session Timeout Seconds

-

User Info Hash Enabled

User Info Hash Enabled

-

Location Collection Enabled

Location Collection Enabled

-

Track Airbridge Link Only

Track Airbridge Link Only

-

Auto Start Tracking Enabled

Auto Start Tracking Enabled

-

-

Facebook Deferred App Link Enabled

New features have been added.

iOS Tracking Authorize Timeout Seconds

iOS Tracking Authorize Timeout Seconds

-

SDK Signature Secret ID

SDK Signature Secret ID

-

SDK Signature Secret

SDK Signature Secret

-

-

Track In Session Life Cycle Event Enabled

New features have been added.

-

Pause Event Transmit On Background Enabled

New features have been added.

-

Clear Event Buffer On Initialize Enabled

New features have been added.

-

SDK Enabled

New features have been added.

-

App Market Identifier

New features have been added.

-

Event Buffer Count Limit

New features have been added.

-

Event Buffer Size Limit In Gibibyte

New features have been added.

-

Event Transmit Interval Seconds

New features have been added.

Meta Install Referrer (Facebook App ID)

Meta Install Referrer (Facebook App ID)

-

Function (Unreal)

Attention

The name of the access function class has been changed from FAirbridgeUnreal to FAirbridge.

FAirbridgeUnreal (v1)

FAirbridge (v4)

Change

-

EnableSDK

New features have been added.

-

DisableSDK

New features have been added.

-

IsSDKEnabled

New features have been added.

StartTracking

StartTracking

-

-

StopTracking

New features have been added.

-

IsTrackingEnabled

New features have been added.

SetUserID

SetUserID

-

-

ClearUserID

New features have been added.

SetUserEmail

SetUserEmail

-

-

ClearUserEmail

New features have been added.

SetUserPhone

SetUserPhone

-

-

ClearUserPhone

New features have been added.

SetUserAttribute

SetUserAttribute

-

RemoveUserAttribute

RemoveUserAttribute

-

ClearUserAttributes

ClearUserAttributes

-

SetUserAlias

SetUserAlias

-

RemoveUserAlias

RemoveUserAlias

-

ClearUserAlias

ClearUserAlias

-

ClearUser

ClearUser

-

Click

Click

Callback function has been added.

Impression

Impression

Callback function has been added.

SetDeeplinkCallback

SetOnDeeplinkReceived

The name has been changed. The value has been changed to be received in lambda form.

SetAttributionCallback

SetOnAttributionReceived

The name has been changed. The value has been changed to be received in lambda form.

TrackEvent

TrackEvent

The method of receiving event information in TrackEvent has changed.

SetDeviceAlias

SetDeviceAlias

-

RemoveDeviceAlias

RemoveDeviceAlias

-

ClearDeviceAlias

ClearDeviceAlias

-

RegisterPushToken

RegisterPushToken

-

CreateWebInterface

-

It has been replaced with functions related to WebInterface.

-

CreateWebInterfaceScript

New features have been added.

-

HandleWebInterfaceCommand

New features have been added.

-

FetchAirbridgeGeneratedUUID

New features have been added.

-

FetchDeviceUUID

New features have been added.

-

IsUninstallTrackingNotification

New features have been added.

Constant (Unreal)

AirbridgeConstants::CATEGORY (v1)

AirbridgeCategory (v4)

Change

SIGN_UP

SIGN_UP

-

SIGN_IN

SIGN_IN

-

SIGN_OUT

SIGN_OUT

-

VIEW_HOME

-

The feature has been removed. Please enter in HOME_VIEWED.

HOME_VIEWED

HOME_VIEWED

-

VIEW_SEARCH_RESULT

-

The feature has been removed. Please enter in SEARCH_RESULTS_VIEWED.

SEARCH_RESULTS_VIEWED

SEARCH_RESULTS_VIEWED

-

VIEW_PRODUCT_LIST

-

The feature has been removed. Please enter in PRODUCT_LIST_VIEWED.

PRODUCT_LIST_VIEWED

PRODUCT_LIST_VIEWED

-

VIEW_PRODUCT_DETAILS

-

The feature has been removed. Please enter in PRODUCT_VIEWED.

PRODUCT_VIEWED

PRODUCT_VIEWED

-

ADD_TO_CART

-

The feature has been removed. Please enter in ADDED_TO_CART.

ADDED_TO_CART

ADDED_TO_CART

-

ORDER_COMPLETE

-

The feature has been removed. Please enter in ORDER_COMPLETED.

ORDER_COMPLETED

ORDER_COMPLETED

-

ADD_PAYMENT_INFO

ADD_PAYMENT_INFO

-

ADD_TO_WISHLIST

ADD_TO_WISHLIST

-

INITIATE_CHECKOUT

INITIATE_CHECKOUT

-

ORDER_CANCELED

ORDER_CANCELED

-

START_TRIAL

START_TRIAL

-

SUBSCRIBE

SUBSCRIBE

-

UNSUBSCRIBE

UNSUBSCRIBE

-

AD_IMPRESSION

AD_IMPRESSION

-

AD_CLICK

AD_CLICK

-

COMPLETE_TUTORIAL

COMPLETE_TUTORIAL

-

ACHIEVE_LEVEL

ACHIEVE_LEVEL

-

UNLOCK_ACHIEVEMENT

UNLOCK_ACHIEVEMENT

-

RATE

RATE

-

SHARE

SHARE

-

SCHEDULE

SCHEDULE

-

SPEND_CREDITS

SPEND_CREDITS

-

AirbridgeConstants::ATTRIBUTES (v1)

AirbridgeAttribute (v4)

Change

-

ACTION

New features have been added.

-

LABEL

New features have been added.

-

VALUE

New features have been added.

TOTAL_VALUE

-

The feature has been removed. Please enter in VALUE.

CURRENCY

CURRENCY

-

ORIGINAL_CURRENCY

ORIGINAL_CURRENCY

-

PRODUCTS

PRODUCTS

-

PERIOD

PERIOD

-

IS_RENEWAL

IS_RENEWAL

-

RENEWAL_COUNT

RENEWAL_COUNT

-

PRODUCT_LIST_ID

PRODUCT_LIST_ID

-

CART_ID

CART_ID

-

TRANSACTION_ID

TRANSACTION_ID

-

TRANSACTION_TYPE

TRANSACTION_TYPE

-

TRANSACTION_PAIRED_EVENT_CATEGORY

TRANSACTION_PAIRED_EVENT_CATEGORY

-

TRANSACTION_PAIRED_EVENT_TIMESTAMP

TRANSACTION_PAIRED_EVENT_TIMESTAMP

-

TOTAL_QUANTITY

TOTAL_QUANTITY

-

QUERY

QUERY

-

IN_APP_PURCHASED

IN_APP_PURCHASED

-

CONTRIBUTION_MARGIN

CONTRIBUTION_MARGIN

-

ORIGINAL_CONTRIBUTION_MARGIN

ORIGINAL_CONTRIBUTION_MARGIN

-

LIST_ID

LIST_ID

-

RATE_ID

RATE_ID

-

RATE

RATE

-

MAX_RATE

MAX_RATE

-

ACHIEVEMENT_ID

ACHIEVEMENT_ID

-

SHARED_CHANNEL

SHARED_CHANNEL

-

DATE_TIME

DATE_TIME

-

DESCRIPTION

DESCRIPTION

-

IS_REVENUE

IS_REVENUE

-

PLACE

PLACE

-

SCHEDULE_ID

SCHEDULE_ID

-

TYPE

TYPE

-

LEVEL

LEVEL

-

SCORE

SCORE

-

-

AD_PARTNERS

New features have been added.

-

IS_FIRST_PER_USER

New features have been added.

AirbridgeConstants::PRODUCT (v1)

AirbridgeAttribute (v4)

Change

ID

PRODUCT_ID

Changed to constant key value.

NAME

PRODUCT_NAME

Changed to constant key value.

PRICE

PRODUCT_PRICE

Changed to constant key value.

QUANTITY

PRODUCT_QUANTITY

Changed to constant key value.

CURRENCY

PRODUCT_CURRENCY

Changed to constant key value.

POSITION

PRODUCT_POSITION

Changed to constant key value.

CATEGORY_ID

PRODUCT_CATEGORY_ID

Changed to constant key value.

CATEGORY_NAME

PRODUCT_CATEGORY_NAME

Changed to constant key value.

BRAND_ID

PRODUCT_BRAND_ID

Changed to constant key value.

BRAND_NAME

PRODUCT_BRAND_NAME

Changed to constant key value.

Function (Android)

- (v1)

AirbridgeUnreal (v4)

Change

-

setLifecycleIntegration

New features have been added.

SDK installation and initialization

The location of the Airbridge configuration values recorded in the Project > Config > DefaultAirbridge.ini file has been moved to the [/Script/AirbridgeEditor.AirbridgeSettings] section of the Project > Config > DefaultEngine.ini file.

The FAirbridgeUnreal::StartTracking function has been replaced with the FAirbridge::StartTracking function.

12
- FAirbridgeUnreal::StartTracking();
+ FAirbridge::StartTracking();

The FAirbridgeUnreal::StopTracking function has been replaced with the FAirbridge::StopTracking function.

12
- FAirbridgeUnreal::StopTracking();
+ FAirbridge::StopTracking();

Deep Linking

The FAirbridgeUnreal::SetDeeplinkCallback function has been replaced with the FAirbridge::SetOnDeeplinkReceived function.

1234567891011121314151617181920
- AExampleGameModeBase::AExampleGameModeBase()
- {
-   AirbridgeCallbacks = CreateDefaultSubobject<UAirbridgeCallbacks>(TEXT("AIRBRIDGE_CALLBACKS"));
- }

void AExampleGameModeBase::BeginPlay()
{
-    AirbridgeCallbacks->OnDeeplinkReceived.AddDynamic(this, &AExampleGameModeBase::OnDeeplinkReceived);
-    FAirbridgeUnreal::SetDeeplinkCallback();

+    FAirbridge::SetOnDeeplinkReceived([](const FString& Url)
+    {
+        // show proper content
+    });
}

- void AExampleGameModeBase::OnDeeplinkReceived(const FString& Url)
- {
-     // show proper content 
- }

Set up custom domain

In version 1.x, only one custom domain could be specified, but starting from version 4.0, multiple custom domains can be entered.

In-app events and user data

The FAirbridgeUnreal::TrackEvent function has been replaced with the FAirbridge::TrackEvent function.

12345678910111213141516171819202122232425262728293031323334353637383940
- FAirbridgeUnreal::TrackEvent(
-    AirbridgeConstants::CATEGORY::ORDER_COMPLETED,
-    UAirbridgeEventOption::CreateObject()
-    ->SetAction("Tool")
-    ->SetLabel("Hammer")
-    ->SetValue(10.0)
-    ->SetSemanticAttributes(
-        UAirbridgeMap::CreateObject()
-        ->Set(AirbridgeConstants::ATTRIBUTES::CURRENCY, "USD")
-        ->Set(AirbridgeConstants::ATTRIBUTES::PRODUCTS, UAirbridgeList::CreateObject()
-            ->Add(UAirbridgeMap::CreateObject()
-                ->Set(AirbridgeConstants::PRODUCT::ID, "12345")
-                ->Set("name", "PlasticHammer")
-            )
-        )
-        ->Set("totalQuantity", 1)
-    )
-    ->SetCustomAttributes(
-        UAirbridgeMap::CreateObject()
-        ->Set("promotion", "FirstPurchasePromotion")
-    )
- );

+ FAirbridge::TrackEvent(
+    AirbridgeCategory::ORDER_COMPLETED,
+    UAirbridgeMap::CreateObject()
+    ->Set(AirbridgeAttribute::ACTION, "Tool")
+    ->Set(AirbridgeAttribute::LABEL, "Hammer")
+    ->Set(AirbridgeAttribute::VALUE, 10)
+    ->Set(AirbridgeAttribute::CURRENCY, "USD")
+    ->Set(AirbridgeAttribute::PRODUCTS, UAirbridgeList::CreateObject()->Add(
+            UAirbridgeMap::CreateObject()
+            ->Set(AirbridgeAttribute::PRODUCT_ID, "12345")
+            ->Set("name", "PlasticHammer")
+        )
+    )
+    ->Set("totalQuantity", 1),
+    UAirbridgeMap::CreateObject()
+    ->Set("promotion", "FirstPurchasePromotion")
+ );

The AirbridgeConstants::CATEGORY Namespace has been changed to ArbridgeCategory and the AirbridgeConstants::ATTRIBUTES Namespace has been changed to AirbridgeAttribute.

The first parameter of the FAirbridge::TrackEvent function should now contain category information.
The second parameter of the FAirbridge::TrackEvent function should contain the Semantic Attributes values.
The third parameter of the FAirbridge::TrackEvent function should contain the Custom Attributes values.

The FAirbridgeUnreal::SetUser function has been replaced with the FAirbridge::SetUser function.

1234567891011
- FAirbridgeUnreal::SetUserID("personID");
- FAirbridgeUnreal::SetUserEmail("persondoe@airbridge.io");
- FAirbridgeUnreal::SetUserPhone("1(123)123-1234");
- FAirbridgeUnreal::SetUserAttribute("key", "value");
- FAirbridgeUnreal::SetUserAlias("key", "value");

+ FAirbridge::SetUserID("personID");
+ FAirbridge::SetUserEmail("persondoe@airbridge.io");
+ FAirbridge::SetUserPhone("1(123)123-1234");
+ FAirbridge::SetUserAttribute("key", "value");
+ FAirbridge::SetUserAlias("key", "value");

Additional settings

The FAirbridgeUnreal::Impression function has been replaced with the FAirbridge::Impression function.

12345678910111213
- FAirbridgeUnreal::Impression(TEXT("https://abr.ge/~~~"));

+ FAirbridge::Impression(
+    TEXT("https://abr.ge/~~~"),
+    []() 
+    {
+        // Handle on success
+    },
+    [](const FString& Error)
+    {
+        // Handle on failure
+    }
+);

The FAirbridgeUnreal::Click function has been replaced with the FAirbridge::Clickfunction.

12345678910111213
- FAirbridgeUnreal::Click(TEXT("https://abr.ge/~~~"));

+ FAirbridge::Click(
+    TEXT("https://abr.ge/~~~"),
+    []() 
+    {
+        // Handle on success
+    },
+    [](const FString& Error)
+    {
+        // Handle on failure
+    }
+);

The FAirbridgeUnreal::SetAttributionCallback function has been replaced with the FAirbridge::SetOnAttributionReceived function.

1234567891011121314151617181920
- AExampleGameModeBase::AExampleGameModeBase()
- {
-   AirbridgeCallbacks = CreateDefaultSubobject<UAirbridgeCallbacks>(TEXT("AIRBRIDGE_CALLBACKS"));
- }

void AExampleGameModeBase::BeginPlay()
{
-    AirbridgeCallbacks->OnAttributionReceived.AddDynamic(this, &AExampleGameModeBase::OnAttributionReceived);
-    FAirbridgeUnreal::SetAttributionCallback();

+    FAirbridge::SetOnAttributionReceived([this](const TMap<FString, FString>& AttributionResult)
+    {
+        // using attribution
+    });
}

- void AExampleGameModeBase::OnAttributionReceived(const FAirbridgeAttribution& Attribution)
- {
-     // using attribution
- }

Device identifier setup

12345678
- FAirbridgeUnreal::SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
+ FAirbridge::SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");

- FAirbridgeUnreal::RemoveDeviceAlias("DELETE_THIS_KEY");
+ FAirbridge::RemoveDeviceAlias("DELETE_THIS_KEY");

- FAirbridgeUnreal::ClearDeviceAlias();
+ FAirbridge::ClearDeviceAlias();

Hybrid app setup

The FAirbridgeUnreal::CreateWebInterface function has been replaced with the FAirbridge::CreateWebInterfaceScript and the FAirbridge::HandleWebInterfaceCommand functions.

123456789101112131415161718
- TUniquePtr<IAirbridgeWebInterface> AirbridgeWebInterface;
+ FString WebInterfaceScript;

- AirbridgeWebInterface = TUniquePtr<IAirbridgeWebInterface>(FAirbridgeUnreal::CreateWebInterface(
-     TEXT("YOUR_WEB_TOKEN"),             
-     [](const FString& Msg) -> FString   
-     {
-         return TEXT("...");
-     }
- ));

+ WebInterfaceScript = FAirbridge::CreateWebInterfaceScript(
+     TEXT("YOUR_WEB_TOKEN"),	
+     [](const FString& Msg) -> FString
+     {
+         return TEXT("...");
+     }("payload")
+ );

Was this helpful?

Any questions or suggestions?