v1.x에서 v4.0으로 업데이트
에어브릿지 언리얼 SDK를 v4.0으로 업데이트하면 확인해 주세요.전체 변경사항
전체 변경사항
옵션
| Airbridge Settings (v1) | Airbridge Settings (v4) | 변경점 |
|---|---|---|
| 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 | 다중 입력을 지원 기능이 추가되었습니다. |
| 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 | 새로운 기능이 추가되었습니다. |
| 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 | 새로운 기능이 추가되었습니다. |
| - | Pause Event Transmit On Background Enabled | 새로운 기능이 추가되었습니다. |
| - | Clear Event Buffer On Initialize Enabled | 새로운 기능이 추가되었습니다. |
| - | SDK Enabled | 새로운 기능이 추가되었습니다. |
| - | App Market Identifier | 새로운 기능이 추가되었습니다. |
| - | Event Buffer Count Limit | 새로운 기능이 추가되었습니다. |
| - | Event Buffer Size Limit In Gibibyte | 새로운 기능이 추가되었습니다. |
| - | Event Transmit Interval Seconds | 새로운 기능이 추가되었습니다. |
| Meta Install Referrer (Facebook App ID) | Meta Install Referrer (Facebook App ID) | - |
함수 (Unreal)
주의하세요접근 함수 클래스의 이름이
FAirbridgeUnreal 에서 FAirbridge로 변경 되었습니다.| FAirbridgeUnreal (v1) | FAirbridge (v4) | 변경점 |
|---|---|---|
| - | EnableSDK | 새로운 기능이 추가되었습니다. |
| - | DisableSDK | 새로운 기능이 추가되었습니다. |
| - | IsSDKEnabled | 새로운 기능이 추가되었습니다. |
| StartTracking | StartTracking | - |
| - | StopTracking | 새로운 기능이 추가되었습니다. |
| - | IsTrackingEnabled | 새로운 기능이 추가되었습니다. |
| SetUserID | SetUserID | - |
| - | ClearUserID | 새로운 기능이 추가되었습니다. |
| SetUserEmail | SetUserEmail | - |
| - | ClearUserEmail | 새로운 기능이 추가되었습니다. |
| SetUserPhone | SetUserPhone | - |
| - | ClearUserPhone | 새로운 기능이 추가되었습니다. |
| SetUserAttribute | SetUserAttribute | - |
| RemoveUserAttribute | RemoveUserAttribute | - |
| ClearUserAttributes | ClearUserAttributes | - |
| SetUserAlias | SetUserAlias | - |
| RemoveUserAlias | RemoveUserAlias | - |
| ClearUserAlias | ClearUserAlias | - |
| ClearUser | ClearUser | - |
| Click | Click | 콜백 기능이 추가되었습니다. |
| Impression | Impression | 콜백 기능이 추가되었습니다. |
| SetDeeplinkCallback | SetOnDeeplinkReceived | 이름이 변경되었습니다. 값을 람다 형태로 제공받도록 변경되었습니다. |
| SetAttributionCallback | SetOnAttributionReceived | 이름이 변경되었습니다. 값을 람다 형태로 제공받도록 변경되었습니다. |
| TrackEvent | TrackEvent | 이벤트 정보를 입력받는 방식이 변경되었습니다. |
| SetDeviceAlias | SetDeviceAlias | - |
| RemoveDeviceAlias | RemoveDeviceAlias | - |
| ClearDeviceAlias | ClearDeviceAlias | - |
| RegisterPushToken | RegisterPushToken | - |
| CreateWebInterface | - | WebInterface 관련 함수들로 대체되었습니다. |
| - | CreateWebInterfaceScript | 새로운 기능이 추가되었습니다. |
| - | HandleWebInterfaceCommand | 새로운 기능이 추가되었습니다. |
| - | FetchAirbridgeGeneratedUUID | 새로운 기능이 추가되었습니다. |
| - | FetchDeviceUUID | 새로운 기능이 추가되었습니다. |
| - | IsUninstallTrackingNotification | 새로운 기능이 추가되었습니다. |
상수 (Unreal)
| AirbridgeConstants::CATEGORY (v1) | AirbridgeCategory (v4) | 변경점 |
|---|---|---|
| SIGN_UP | SIGN_UP | - |
| SIGN_IN | SIGN_IN | - |
| SIGN_OUT | SIGN_OUT | - |
| VIEW_HOME | - | HOME_VIEWED로 대체되었습니다. |
| HOME_VIEWED | HOME_VIEWED | - |
| VIEW_SEARCH_RESULT | - | SEARCH_RESULTS_VIEWED로 대체되었습니다. |
| SEARCH_RESULTS_VIEWED | SEARCH_RESULTS_VIEWED | - |
| VIEW_PRODUCT_LIST | - | PRODUCT_LIST_VIEWED로 대체되었습니다. |
| PRODUCT_LIST_VIEWED | PRODUCT_LIST_VIEWED | - |
| VIEW_PRODUCT_DETAILS | - | PRODUCT_VIEWED로 대체되었습니다. |
| PRODUCT_VIEWED | PRODUCT_VIEWED | - |
| ADD_TO_CART | - | ADDED_TO_CART로 대체되었습니다. |
| ADDED_TO_CART | ADDED_TO_CART | - |
| ORDER_COMPLETE | - | 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) | 변경점 |
|---|---|---|
| - | ACTION | 상수 키 값이 추가되었습니다. |
| - | LABEL | 상수 키 값이 추가되었습니다. |
| - | VALUE | 상수 키 값이 추가되었습니다. |
| TOTAL_VALUE | - | 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 | 새로운 기능이 추가되었습니다. |
| - | IS_FIRST_PER_USER | 새로운 기능이 추가되었습니다. |
| AirbridgeConstants::PRODUCT (v1) | AirbridgeAttribute (v4) | 변경점 |
|---|---|---|
| ID | PRODUCT_ID | 상수 키 값으로 변경되었습니다. |
| NAME | PRODUCT_NAME | 상수 키 값으로 변경되었습니다. |
| PRICE | PRODUCT_PRICE | 상수 키 값으로 변경되었습니다. |
| QUANTITY | PRODUCT_QUANTITY | 상수 키 값으로 변경되었습니다. |
| CURRENCY | PRODUCT_CURRENCY | 상수 키 값으로 변경되었습니다. |
| POSITION | PRODUCT_POSITION | 상수 키 값으로 변경되었습니다. |
| CATEGORY_ID | PRODUCT_CATEGORY_ID | 상수 키 값으로 변경되었습니다. |
| CATEGORY_NAME | PRODUCT_CATEGORY_NAME | 상수 키 값으로 변경되었습니다. |
| BRAND_ID | PRODUCT_BRAND_ID | 상수 키 값으로 변경되었습니다. |
| BRAND_NAME | PRODUCT_BRAND_NAME | 상수 키 값으로 변경되었습니다. |
함수 (Android)
| - (v1) | AirbridgeUnreal (v4) | 변경점 |
|---|---|---|
| - | setLifecycleIntegration | 새로운 기능이 추가되었습니다. |
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")
+ );
주의하세요
주의하세요
AirbridgeConstants::CATEGORY Namespace가 ArbridgeCategory로, AirbridgeConstants::ATTRIBUTES Namespace가 AirbridgeAttribute로 변경 되었습니다.FAirbridge::TrackEvent 함수의 첫 번째 파라미터에 category 정보가 포함되어야 합니다.FAirbridge::TrackEvent 함수의 두 번째 파라미터에 Semantic Attributes 값들이 포함되어야 합니다.FAirbridge::TrackEvent 함수의 세 번째 파라미터에 Custom Attributes 값들이 포함되어야 합니다.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")
+ );