SDK 마이그레이션 가이드 - 언리얼 SDK (v4)

에어브릿지 언리얼 SDK의 업데이트에 필요한 사항을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 사항을 모두 확인하는 것을 권장합니다.

v1.x에서 v4.0으로 업데이트

에어브릿지 언리얼 SDK를 v4.0으로 업데이트하면 확인해 주세요.

에어브릿지 언리얼 SDK의 업데이트에 필요한 사항을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 사항을 모두 확인하는 것을 권장합니다.

SDK 설치 및 초기화

Project > Config > DefaultAirbridge.ini 파일에 기록된 에어브릿지 설정값의 위치가 Project > Config > DefaultEngine.ini 파일의 [/Script/AirbridgeEditor.AirbridgeSettings] 섹션으로 이동하였습니다.

FAirbridgeUnreal::StartTracking 함수가 FAirbridge::StartTracking 함수로 대체되었습니다.

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

FAirbridgeUnreal::StopTracking 함수가 FAirbridge::StopTracking 함수로 대체되었습니다.

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

딥링크

FAirbridgeUnreal::SetDeeplinkCallback 함수가 FAirbridge::SetOnDeeplinkReceived 함수로 대체되었습니다.

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 
- }

인앱 이벤트 및 유저 정보

FAirbridgeUnreal::TrackEvent 함수가 FAirbridge::TrackEvent 함수로 대체되었습니다.

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")
+ );

FAirbridgeUnreal::SetUser 함수가 FAirbridge::SetUser 관련 함수로 대체되었습니다.

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");

추가 설정하기

FAirbridgeUnreal::Impression 함수가 FAirbridge::Impression 함수로 대체되었습니다.

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

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

FAirbridgeUnreal::Click 함수가 FAirbridge::Click 함수로 대체되었습니다.

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

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

FAirbridgeUnreal::SetAttributionCallback 함수가 FAirbridge::SetOnAttributionReceived 함수로 대체되었습니다.

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
- }

디바이스 식별자 설정

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();

하이브리드 앱 설정

FAirbridgeUnreal::CreateWebInterface 함수가 FAirbridge::CreateWebInterfaceScript , FAirbridge::HandleWebInterfaceCommand 함수로 대체되었습니다.

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")
+ );

도움이 되었나요?

더 필요한 내용이 있나요?