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

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

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

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

SDK 설치 및 초기화

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

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

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

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

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

딥링크

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

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

커스텀 도메인 설정하기

v1.x 에서는 하나의 커스텀 도메인만 입력할 수 있었지만, v4.0 부터는 여러 개의 커스텀 도메인을 입력할 수 있습니다.

인앱 이벤트 및 유저 정보

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

- 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 관련 함수로 대체되었습니다.

- 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 함수로 대체되었습니다.

- 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 함수로 대체되었습니다.

- 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 함수로 대체되었습니다.

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

디바이스 식별자 설정

- 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 함수로 대체되었습니다.

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