V4からの移行ガイド
⚠️ There are breaking changes when migrating to Unity v5. This includes:
- 新しいクラス名
- 新しいアンドロイドパッケージ名
com.appsflyer.GetDeepLinkingActivity
does not exist in Unity v5. This is no longer required for deeplinking- Unity-jar-resolver はアセットのインポートに使用されます
古いプラグインを削除する
- Remove all the items contained in
AppsFlyerUnityPlugin_v4.x.x.unitypackage
含まれているすべてのファイルのリストは次のとおりです:
Assets/Plugins/AppsFlyer.cs
Assets/Plugins/AFInAppEvents.cs
Assets/Plugins/AppsFlyerTrackerCallbacks.cs
---
Assets/Plugins/Android/AppsFlyerAndroidPlugin.jar
Assets/Plugins/Android/AF-Android-SDK.jar
Assets/Plugins/Android/installreferrer-1.0.aar
---
Assets/Plugins/iOS/AppsFlyerAppController.mm
Assets/Plugins/iOS/AppsFlyerCrossPromotionHelper.h
Assets/Plugins/iOS/AppsFlyerDelegate.h
Assets/Plugins/iOS/AppsFlyerDelegate.mm
Assets/Plugins/iOS/AppsFlyerLinkGenerator.h
Assets/Plugins/iOS/AppsFlyerShareInviteHelper.h
Assets/Plugins/iOS/AppsFlyerTracker.h
Assets/Plugins/iOS/AppsFlyerWrapper.h
Assets/Plugins/iOS/AppsFlyerWrapper.mm
Assets/Plugins/iOS/libAppsFlyerLib.a
新しいプラグインを初期化する
- 新しいプラグインに存在する新しい .unitypackage を追加します。
- 初期化には、主に次の2つのオプションがあります:
- 古い init(初期化)コードをすべて削除し、新しい .prefab オブジェクトを使用する
- 既存の初期化コードを更新する
1. 古い初期化コードをすべて削除する
これを行うには、シンプルにゲームオブジェクトを削除するか、またはSDKが初期化されているゲームオブジェクト内のすべてのAppsFlyerコードを削除します。次に、新しいプラグインのinitガイドに従います。
2. 古い初期化コードを新しいコードに更新する
以下の古い初期化コードを置き換えます:
void Start () {
AppsFlyer.setAppsFlyerKey("K2***********99");
/* AppsFlyer.setIsDebug(true); */
#if UNITY_IOS
AppsFlyer.setAppID("41******85");
AppsFlyer.trackAppLaunch();
AppsFlyer.getConversionData();
#elif UNITY_ANDROID
AppsFlyer.setAppID ("com.appsflyer.test");
AppsFlyer.init("K2**********99","AppsFlyerTrackerCallbacks");
#endif
}
新しい初期化コード:
using AppsFlyerSDK;
public class AppsFlyerObjectScript : MonoBehaviour , IAppsFlyerConversionData
{
void Start()
{
/* AppsFlyer.setDebugLog(true); */
AppsFlyer.init-sdk("devkey", "appID", this);
AppsFlyer.startSDK();
}
// .....
}
重要
コンバージョンデータやディープリンクも実装している場合は、SDKを初期化する必要があります。 IAppsFlyerConversionData
interface です。
ディープリンクロジックの更新
Unity v5 には以下は含まれません: com.appsflyer.GetDeepLinkingActivity
これは、Unity v4 でディープリンクの回避策として使用されていました。
このクラスをディープリンクに使用している場合は、AndroidManifest.xml ファイルから GetDeepLinkingActivity を削除してください。
Update other Code
すべての古いAPIと新しいAPIの一覧を次に示します。
API
- setAppsFlyerKey
- trackAppLaunch
- setAppID
- getConversionData
- init
- loadConversionData
- setCurrencyCode
- setCustomerUserID
- setAdditionalData
- trackCrossPromoteImpression
- setMinTimeBetweenSessions
- setHost
- setUserEmails
- setResolveDeepLinkURLs
- setOneLinkCustomDomain
- trackRichEvent
- stopTracking
- setIsDebug
- getAppsFlyerId
- setDeviceTrackingDisabled
- setAppInviteOneLinkID
- generateUserInviteLink
- trackAndOpenStore
- setIsSandbox
- registerUninstall
- setCollectIMEI
- setCollectAndroidID
- setImeiData
- updateServerUninstallToken
- setAndroidIdData
- setPreinstallAttribution
- validate-receipt (ios)
- validate-receipt (android)
- createValidateInAppListener
- handlePushNotification
- enableUninstallTracking
- handleOpenUrl
- getHost
- loadConversionData
- setGCMProjectNumber
- setShouldCollectDeviceName
initSDK
// Old API's
AppsFlyer.setAppsFlyerKey(string key);
AppsFlyer.trackAppLaunch();
AppsFlyer.setAppID(string appleAppId);
AppsFlyer.getConversionData ();
AppsFlyer.init(string devKey);
AppsFlyer.init(string devKey, string callbackObject);
AppsFlyer.loadConversionData(string callbackObject);
// New API's
AppsFlyer.initSDK(string key, string app_id); // without deeplinking/conversion data
AppsFlyer.initSDK(string key, string app_id, MonoBehaviour gameObject); // with deeplinking/conversion data
AppsFlyer.startSDK();
API that did not change
AppsFlyer.setCurrencyCode(string currencyCode);
AppsFlyer.setCustomerUserID(string customerUserID);
AppsFlyer.setAdditionalData(Dictionary<string, string> extraData);
AppsFlyer.trackCrossPromoteImpression(string appId, string campaign);
AppsFlyer.setMinTimeBetweenSessions(int seconds);
AppsFlyer.setHost(string hostPrefixName, string hostName);
AppsFlyer.setUserEmails(EmailCryptType cryptType, params string[] userEmails);
AppsFlyer.setResolveDeepLinkURLs(params string[] userEmails);
AppsFlyer.setOneLinkCustomDomain(params string[] domains);
AppsFlyer.setIsDebug(bool isDebug);
AppsFlyer.getAppsFlyerId();
AppsFlyer.setAppInviteOneLinkID(string oneLinkID);
Updated core API
// old
AppsFlyer.trackRichEvent(string eventName, Dictionary<string, string> eventValues);
// new
AppsFlyer.sendEvent(string eventName, Dictionary<string, string> eventValues);
// old
AppsFlyer.stopTracking(bool isStopTracking);
// new
AppsFlyer.stopSDK(bool isStopTracking);
// old
AppsFlyer.setDeviceTrackingDisabled(bool state);
// new
AppsFlyer.anonymizeUser(true);
// old
AppsFlyer.generateUserInviteLink(Dictionary<string,string> parameters, string callbackObject,string callbackMethod, string callbackFailedMethod);
// new
AppsFlyer.generateUserInviteLink(Dictionary<string, string> parameters, MonoBehaviour gameObject);
// old
AppsFlyer.trackAndOpenStore(string promotedAppId, string campaign, Dictionary<string,string> customParams);
// new
AppsFlyer.trackAndOpenStore(string appID, string campaign, Dictionary<string, string> userParams, MonoBehaviour gameObject);
iOS専用API
// old
AppsFlyer.setIsSandbox(bool isSandbox);
// new
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.setUseReceiptValidationSandbox(true);
#endif
// old
AppsFlyer.registerUninstall(byte[] token);
// new
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.registerUninstall(token);
#endif
// old
AppsFlyer.handleOpenUrl(string url, string sourceApplication, string annotation);
// new
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.handleOpenUrl(string url, string sourceApplication, string annotation);
#endif
Android専用API
// old
AppsFlyer.setCollectIMEI(bool shouldCollect);
// new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setCollectIMEI(bool shouldCollect);
#endif
// old
AppsFlyer.setCollectAndroidID(bool shouldCollect);
//new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setCollectAndroidID(bool shouldCollect);
#endif
//old
AppsFlyer.setImeiData(string imeiData);
//new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setImeiData(string imeiData);
#endif
//old
AppsFlyer.updateServerUninstallToken(string token);
//new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.updateServerUninstallToken(string token);
#endif
//old
AppsFlyer.setAndroidIdData(string androidIdData);
//new
#if UNITY_ANDROID && !UNITY_EDITOR
AppAppsFlyersFlyerAndroid.setAndroidIdData("androidId");
#endif
//old
AppsFlyer.setPreinstallAttribution(string mediaSource, string campaign, string siteId);
//new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.setPreinstallAttribution("mediaSource", "campaign", "siteId");
#endif
//old
AppsFlyer.handlePushNotification(Dictionary<string, string> payload);
//new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.handlePushNotifications();
#endif
Validate Receipt
// android old api
AppsFlyer.validate-receipt(string publicKey, string purchaseData, string signature, string price, string currency, Dictionary<string, string> extraParams);
// iOS old api
AppsFlyer.validate-receipt(string productIdentifier, string price, string currency, string transactionId, Dictionary<string, string> additionalParametes);
AppsFlyer.createValidateInAppListener(string aObject, string callbackMethod, string callbackFailedMethod);
// android new
#if UNITY_ANDROID && !UNITY_EDITOR
AppsFlyer.validateAndSendInAppPurchase(
"publicKey",
"signature",
"purchaseData",
"price",
"currency",
null,
this);
#endif
// ios new
#if UNITY_IOS && !UNITY_EDITOR
AppsFlyer.validateAndSendInAppPurchase(
"productIdentifier",
"price",
"currency",
"tranactionId",
null,
this);
#endif
非推奨
//@Deprecated
AppsFlyer.enableUninstallTracking(string senderId);
AppsFlyer.getHost();
AppsFlyer.loadConversionData(string callbackObject, string callbackMethod, string callbackFailedMethod);
AppsFlyer.setGCMProjectNumber(string googleGCMNumber);
AppsFlyer.setShouldCollectDeviceName(bool shouldCollectDeviceName);
更新済 1か月前