에어브릿지 유니티 SDK의 업데이트에 필요한 사항을 확인할 수 있습니다. 현재 버전 이후부터 업데이트 이후 버전까지의 사항을 모두 확인하는 것을 권장합니다.
에어브릿지 유니티 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 | 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) | - |
In-App Purchase Environment | - | v4.0.0 에서는 해당 기능을 지원하지 않습니다. |
주의하세요
접근 함수 클래스의 이름이
AirbridgeUnity
에서Airbridge
로 변경되었습니다.
AirbridgeUnity (v1) | Airbridge (v4) | 변경점 |
---|---|---|
- | EnableSDK | 새로운 기능이 추가되었습니다. |
- | DisableSDK | 새로운 기능이 추가되었습니다. |
IsSDKEnabled | IsSDKEnabled | - |
StartTracking | StartTracking | - |
StopTracking | StopTracking | - |
- | IsTrackingEnabled | 새로운 기능이 추가되었습니다. |
SetUser | - | User 관련 함수들로 대체되었습니다. |
- | SetUserID | 새로운 기능이 추가되었습니다. |
- | ClearUserID | 새로운 기능이 추가되었습니다. |
- | SetUserEmail | 새로운 기능이 추가되었습니다. |
- | ClearUserEmail | 새로운 기능이 추가되었습니다. |
- | SetUserPhone | 새로운 기능이 추가되었습니다. |
- | ClearUserPhone | 새로운 기능이 추가되었습니다. |
- | SetUserAttribute | 새로운 기능이 추가되었습니다. |
- | RemoveUserAttribute | 새로운 기능이 추가되었습니다. |
- | ClearUserAttributes | 새로운 기능이 추가되었습니다. |
- | SetUserAlias | 새로운 기능이 추가되었습니다. |
- | RemoveUserAlias | 새로운 기능이 추가되었습니다. |
- | ClearUserAlias | 새로운 기능이 추가되었습니다. |
ExpireUser | ClearUser | 이름이 변경되었습니다. |
ClickTrackingLink | Click | 이름이 변경되었습니다. 콜백 기능이 추가되었습니다. |
ImpressionTrackingLink | Impression | 이름이 변경되었습니다. 콜백 기능이 추가되었습니다. |
SetDeeplinkCallback | SetOnDeeplinkReceived | 이름이 변경되었습니다. 값을 람다 형태로 제공받도록 변경되었습니다. |
SetOnAttributionReceived | SetOnAttributionReceived | 값을 람다 형태로 제공받도록 변경되었습니다. |
TrackEvent | TrackEvent | 이벤트 정보를 입력받는 방식이 변경되었습니다. |
SetDeviceAlias | SetDeviceAlias | - |
RemoveDeviceAlias | RemoveDeviceAlias | - |
ClearDeviceAlias | ClearDeviceAlias | - |
RegisterPushToken | RegisterPushToken | - |
CreateWebInterface | - | WebInterface 관련 함수들로 대체되었습니다. |
- | CreateWebInterfaceScript | 새로운 기능이 추가되었습니다. |
- | HandleWebInterfaceCommand | 새로운 기능이 추가되었습니다. |
FetchAirbridgeGeneratedUUID | FetchAirbridgeGeneratedUUID | 콜백 기능이 추가되었습니다. |
FetchDeviceUUID | FetchDeviceUUID | onFailure 콜백이 추가되었습니다. |
StartInAppPurchaseTracking | - | v4.0.0 에서는 해당 기능을 지원하지 않습니다. |
StopInAppPurchaseTracking | - | v4.0.0 에서는 해당 기능을 지원하지 않습니다. |
SetOnInAppPurchaseReceived | - | v4.0.0 에서는 해당 기능을 지원하지 않습니다. |
- | IsUninstallTrackingNotification | 새로운 기능이 추가되었습니다. |
Airbridge.Constants.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 | - |
AirbridgeEvent (v1) | AirbridgeAttribute (v4) | 변경점 |
---|---|---|
SetAction | ACTION | 상수 키 값으로 변경되었습니다. |
SetLabel | LABEL | 상수 키 값으로 변경되었습니다. |
SetValue | VALUE | 상수 키 값으로 변경되었습니다. |
SetTotalValue | - | VALUE로 대체되었습니다. |
SetCurrency | CURRENCY | 상수 키 값으로 변경되었습니다. |
originalCurrency | ORIGINAL_CURRENCY | 상수 키 값으로 변경되었습니다. |
SetProducts | PRODUCTS | 상수 키 값으로 변경되었습니다. |
SetPeriod | PERIOD | 상수 키 값으로 변경되었습니다. |
SetIsRenewal | IS_RENEWAL | 상수 키 값으로 변경되었습니다. |
SetRenewalCount | RENEWAL_COUNT | 상수 키 값으로 변경되었습니다. |
SetProductListId | PRODUCT_LIST_ID | 상수 키 값으로 변경되었습니다. |
SetCartId | CART_ID | 상수 키 값으로 변경되었습니다. |
SetTransactionId | TRANSACTION_ID | 상수 키 값으로 변경되었습니다. |
SetTransactionType | TRANSACTION_TYPE | 상수 키 값으로 변경되었습니다. |
SetTransactionPairedEventCategory | TRANSACTION_PAIRED_EVENT_CATEGORY | 상수 키 값으로 변경되었습니다. |
SetTransactionPairedEventTimestamp | TRANSACTION_PAIRED_EVENT_TIMESTAMP | 상수 키 값으로 변경되었습니다. |
SetTotalQuantity | TOTAL_QUANTITY | 상수 키 값으로 변경되었습니다. |
SetQuery | QUERY | 상수 키 값으로 변경되었습니다. |
SetInAppPurchased | IN_APP_PURCHASED | 상수 키 값으로 변경되었습니다. |
SetContributionMargin | CONTRIBUTION_MARGIN | 상수 키 값으로 변경되었습니다. |
SetOriginalContributionMargin | ORIGINAL_CONTRIBUTION_MARGIN | 상수 키 값으로 변경되었습니다. |
SetListId | LIST_ID | 상수 키 값으로 변경되었습니다. |
SetRateId | RATE_ID | 상수 키 값으로 변경되었습니다. |
SetRate | RATE | 상수 키 값으로 변경되었습니다. |
SetMaxRate | MAX_RATE | 상수 키 값으로 변경되었습니다. |
SetAchievementId | ACHIEVEMENT_ID | 상수 키 값으로 변경되었습니다. |
SetSharedChannel | SHARED_CHANNEL | 상수 키 값으로 변경되었습니다. |
SetDatetime | DATE_TIME | 상수 키 값으로 변경되었습니다. |
SetDescription | DESCRIPTION | 상수 키 값으로 변경되었습니다. |
SetIsRevenue | IS_REVENUE | 상수 키 값으로 변경되었습니다. |
SetPlace | PLACE | 상수 키 값으로 변경되었습니다. |
SetScheduleId | SCHEDULE_ID | 상수 키 값으로 변경되었습니다. |
SetType | TYPE | 상수 키 값으로 변경되었습니다. |
SetLevel | LEVEL | 상수 키 값으로 변경되었습니다. |
SetScore | SCORE | 상수 키 값으로 변경되었습니다. |
- | AD_PARTNERS | 새로운 기능이 추가되었습니다. |
- | IS_FIRST_PER_USER | 새로운 기능이 추가되었습니다. |
Airbridge.Ecommerce.Product (v1) | AirbridgeAttribute (v4) | 변경점 |
---|---|---|
SetId | PRODUCT_ID | 상수 키 값으로 변경되었습니다. |
SetName | PRODUCT_NAME | 상수 키 값으로 변경되었습니다. |
SetPrice | PRODUCT_PRICE | 상수 키 값으로 변경되었습니다. |
SetQuantity | PRODUCT_QUANTITY | 상수 키 값으로 변경되었습니다. |
SetCurrency | PRODUCT_CURRENCY | 상수 키 값으로 변경되었습니다. |
SetPosition | PRODUCT_POSITION | 상수 키 값으로 변경되었습니다. |
SetCategoryId | PRODUCT_CATEGORY_ID | 상수 키 값으로 변경되었습니다. |
SetCategoryName | PRODUCT_CATEGORY_NAME | 상수 키 값으로 변경되었습니다. |
SetBrandId | PRODUCT_BRAND_ID | 상수 키 값으로 변경되었습니다. |
SetBrandName | PRODUCT_BRAND_NAME | 상수 키 값으로 변경되었습니다. |
AirbridgeUnity (v1) | AirbridgeUnity (v4) | 변경점 |
---|---|---|
processDeeplinkData | processHandleDeeplink | 이름이 변경되었습니다. |
주의하세요
에어브릿지 유니티 SDK를 v1.x.x에서 v4.0.0으로 업데이트 하는 경우, 기존에 임포트한 아래에 해당하는 폴더들을 먼저 제거하고 에어브릿지 유니티 SDK v4.0.0 패키지를 추가해 주세요.
Assets/Airbridge
Assets/Plugins/Airbridge
Assets/Airbridge/Resources/AirbridgeData.asset
의 키값이 변경되었습니다. 아래와 같이 키값을 변경해 주세요.
AirbridgeData.asset (v1) | AirbridgeData.asset (v4) |
---|---|
iosUriScheme | iOSURIScheme |
AirbridgeUnity.StartTracking
함수가 Airbridge.StartTracking
함수로 대체되었습니다.
- AirbridgeUnity.StartTracking();
+ Airbridge.StartTracking();
AirbridgeUnity.StopTracking
함수가 Airbridge.StopTracking
함수로 대체되었습니다.
- AirbridgeUnity.StopTracking();
+ Airbridge.StopTracking();
AirbridgeUnity.SetDeeplinkCallback
함수가 Airbridge.SetOnDeeplinkReceived
함수로 대체되었습니다.
public class AirbridgeManager : MonoBehaviour
{
private void Awake()
{
- AirbridgeUnity.SetDeeplinkCallback(gameObject.name);
+ Airbridge.SetOnDeeplinkReceived((string url) =>
+ {
+ // show proper content
+ });
}
- // Method will call by Airbridge when deeplink detected
- private void OnTrackingLinkResponse(string url)
- {
- // show proper content
- }
}
안드로이드의 AirbridgeUnity.processDeeplinkData
함수가 AirbridgeUnity.processHandleDeeplink
함수로 대체되었습니다.
package co.ab180.airbridge.unity;
@Override
protected void onResume() {
super.onResume();
- AirbridgeUnity.processDeeplinkData(getIntent());
+ AirbridgeUnity.processHandleDeeplink(getIntent());
}
주의하세요
기존
AirbridgeEvent.SetTotalValue
대신AirbridgeAttribute.VALUE
에 값을 입력해 주세요.
totalValue
를 사용하고value
를 정의하면totalValue
가value
를 덮어 쓰는 로직은 Unity SDK v4.0.0부터 삭제되었습니다.
AirbridgeUnity.TrackEvent
함수가 Airbridge.TrackEvent
함수로 대체되었습니다.
아래 예시코드를 따라 AirbridgeUnity.TrackEvent
함수를 Airbridge.TrackEvent
함수로 변경해 주세요.
- AirbridgeEvent @event = new AirbridgeEvent(Airbridge.Constants.CATEGORY.ORDER_COMPLETED);
- // action
- @event.SetAction("Tool");
- // label
- @event.SetLabel("Hammer");
- // value
- @event.SetValue(10);
-
- // semantic attribute (provided by sdk)
- @event.SetCurrency("USD");
-
- List<Airbridge.Ecommerce.Product> products = new List<Airbridge.Ecommerce.Product>();
- Airbridge.Ecommerce.Product plasticHammer = new Airbridge.Ecommerce.Product();
- // semantic attribute value (provided by sdk)
- plasticHammer.SetId("12345");
- // semantic attribute value (not provided by sdk)
- plasticHammer.AddData("name", "PlasticHammer");
- products.Add(plasticHammer);
- @event.SetProducts(products.ToArray());
-
- // semantic attribute (not provided by sdk)
- @event.AddSemanticAttribute("totalQuantity", 1);
-
- // custom attribute
- @event.AddCustomAttribute("promotion", "FirstPurchasePromotion");
+ Airbridge.TrackEvent(
+ category: AirbridgeCategory.ORDER_COMPLETED,
+ semanticAttributes: new Dictionary<string, object>()
+ {
+ // action
+ { AirbridgeAttribute.ACTION, "Tool" },
+ // label
+ { AirbridgeAttribute.LABEL, "Hammer" },
+ // value
+ { AirbridgeAttribute.VALUE, 10 },
+ // semantic attribute (provided by sdk)
+ { AirbridgeAttribute.CURRENCY, "USD" },
+ {
+ AirbridgeAttribute.PRODUCTS, new List<Dictionary<string, object>>()
+ {
+ new Dictionary<string, object>()
+ {
+ // semantic attribute value (provided by sdk)
+ { AirbridgeAttribute.PRODUCT_ID, "12345" },
+ // semantic attribute value (not provided by sdk)
+ { "name", "PlasticHammer" }
+ }
+ }
+ },
+ // semantic attribute (not provided by sdk)
+ { "totalQuantity", 1 }
+ },
+ customAttributes: new Dictionary<string, object>()
+ {
+ // custom attribute
+ { "promotion", "FirstPurchasePromotion" }
+ }
+);
주의하세요
AirbridgeEvent
클래스는 제거되었습니다.Airbridge.TrackEvent
함수의 첫 번째 파라미터에 AirbridgeEvent 생성자에 포함되는category
정보가 포함되어야 합니다.Airbridge.TrackEvent
함수의 두 번째 파라미터에AirbridgeEvent.SetAction
,AirbridgeEvent.SetLabel
,AirbridgeEvent.SetValue
,Semantic Attributes
값들이 포함되어야 합니다.
Airbridge.TrackEvent
함수의 세 번째 파라미터에Custom Attributes
값들이 포함되어야 합니다.
AirbridgeUnity.SetUser
함수가 #유저-속성-설정하기 Airbridge.SetUser
관련 함수로 대체되었습니다. 유저 정보를 한 번에 설정하는 SetUser
함수는 지원하지 않습니다.
- AirbridgeUser user = new AirbridgeUser();
- user.SetId("personID");
- user.SetEmail("persondoe@airbridge.io");
- user.SetPhoneNumber("1(123)123-1234");
- user.SetAttribute("key", "value");
- user.SetAlias("key", "value");
- AirbridgeUnity.SetUser(user);
+ Airbridge.SetUserID("personID");
+ Airbridge.SetUserEmail("persondoe@airbridge.io");
+ Airbridge.SetUserPhone("1(123)123-1234");
+ Airbridge.SetUserAttribute("key", "value");
+ Airbridge.SetUserAlias("key", "value");
AirbridgeUnity.ImpressionTrackingLink
함수가 Airbridge.Impression
함수로 대체되었습니다.
- AirbridgeUnity.ImpressionTrackingLink("https://abr.ge/~~~");
+ Airbridge.Impression(
+ trackingLink: "https://abr.ge/~~~",
+ onSuccess: () =>
+ {
+ // Handle on success
+ },
+ onFailure: (Exception exception) =>
+ {
+ // Handle on failure
+ }
+);
AirbridgeUnity.ClickTrackingLink
함수가 Airbridge.Click
함수로 대체되었습니다.
- AirbridgeUnity.ClickTrackingLink("https://abr.ge/~~~");
+ Airbridge.Click(
+ trackingLink: "https://abr.ge/~~~",
+ onSuccess: () =>
+ {
+ // Handle on success
+ },
+ onFailure: (Exception exception) =>
+ {
+ // Handle on failure
+ }
+);
AirbridgeUnity.SetOnAttributionReceived
함수가 Airbridge.SetOnAttributionReceived
함수로 대체되었습니다.
public class AirbridgeManager : MonoBehaviour
{
private void Awake()
{
- AirbridgeUnity.SetOnAttributionReceived(gameObject.name);
+ Airbridge.SetOnAttributionReceived((Dictionary<string, object> attributionResult) =>
+ {
+ // using attribution
+ });
}
- // Method will call by Airbridge when attribution result received
- private void OnAttributionResultReceived(string data)
- {
- // using attribution
- }
}
- AirbridgeUnity.SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
+ Airbridge.SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
- AirbridgeUnity.RemoveDeviceAlias("DELETE_THIS_KEY");
+ Airbridge.RemoveDeviceAlias("DELETE_THIS_KEY");
- AirbridgeUnity.ClearDeviceAlias();
+ Airbridge.ClearDeviceAlias();
- bool isSDKEnabled = AirbridgeUnity.IsSDKEnabled();
+ bool isSDKEnabled = Airbridge.IsSDKEnabled();
AirbridgeUnity.CreateWebInterface
함수가 Airbridge.CreateWebInterfaceScript
, Airbridge.HandleWebInterfaceCommand
함수로 대체되었습니다.
private WebViewObject webViewObject;
string postMessageScript;
- AirbridgeWebInterface webInterface;
void Start()
{
string PostMessageGenerator(string arg) =>
$@"
if (window && window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.unityControl) {{
window.webkit.messageHandlers.unityControl.postMessage({arg});
}} else {{
var iframe = document.createElement('IFRAME');
iframe.setAttribute('src', 'unity:' + {arg});
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
}}";
- webInterface = AirbridgeUnity.CreateWebInterface(WebViewController.WebToken, (string command) => PostMessageGenerator(command));
- postMessageScript = webInterface.Script;
+ postMessageScript = Airbridge.CreateWebInterfaceScript(WebViewController.WebToken, PostMessageGenerator("payload"));
try
{
webViewObject.Init(
cb: (msg) =>
{
- webInterface.Handle(msg);
+ Airbridge.HandleWebInterfaceCommand(msg);
},
...
ld: (msg) =>
{
webViewObject.EvaluateJS(postMessageScript);
}
...
);
webViewObject.LoadURL("https://...");
}
catch (System.Exception e)
{
...
}
}
도움이 되었나요?