Panduan migrasi dari v4
⚠️ There are breaking changes when migrating to Unity v5. This includes:
- Nama kelas baru
- Nama paket android baru
com.appsflyer.GetDeepLinkingActivity
tidak ada di Unity v5. Ini tidak lagi diperlukan untuk deep linking- unity-jar-resolver digunakan untuk mengimpor aset
Hapus plugin lama
- Hapus semua item yang terkandung di dalamnya
AppsFlyerUnityPlugin_v4.x.x.unitypackage
Berikut adalah daftar semua yang diajukan, termasuk:
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
Init plugin baru
- Tambahkan .unitypackage baru, yang dapat ditemukan di plugin baru.
- Ada dua opsi utama inisialisasi:
- Hapus semua kode init lama dan gunakan .prefab baru obyek.
- Perbarui kode init Anda yang ada.
1. hapus semua kode init lama
Untuk melakukan ini cukup hapus objek game atau semua kode appsflyer di objek game tempat sdk sedang diinisialisasi.
Kemudian ikuti panduan init untuk plugin baru.
2. Perbarui kode init lama dengan kode baru
Ganti kode init lama:
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
}
Dengan kode init baru:
using AppsFlyerSDK;
public class AppsFlyerObjectScript : MonoBehaviour , IAppsFlyerConversionData
{
void Start()
{
/* AppsFlyer.setDebugLog(true); */
AppsFlyer.init-sdk("devkey", "appID", this);
AppsFlyer.startSDK();
}
// .....
}
Penting
Jika Anda juga menerapkan data konversi dan/atau deep linking, Anda perlu menginisialisasi SDK dengan IAppsFlyerConversionData
antarmuka.
Perbarui logika deeplink
Unity v5 tidak termasuk com.appsflyer.GetDeepLinkingActivity
.
Ini digunakan di Unity v4 sebagai solusi untuk deep linking.
Jika Anda menggunakan kelas ini untuk deep linking, maka pastikan untuk menghilangkan GetDeepLinkingActivity dari file AndroidManifest.xml.
Perbarui Kode lain
Berikut adalah daftar semua API lama, dan API baru.
API
- setAppsFlyerKey
- trackAppLaunch
- setAppID
- getConversionData
- init
- loadConversionData
- setCurrencyCode
- Mengatur ID Pengguna Pelanggan
- 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 yang tidak berubah
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);
API inti yang diperbarui
// 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);
API Hanya iOS
// 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
API Hanya Android
// 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
Validasi Tanda Terima
// 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
Kedaluwarsa (Tidak digunakan lagi)
//@Deprecated
AppsFlyer.enableUninstallTracking(string senderId);
AppsFlyer.getHost();
AppsFlyer.loadConversionData(string callbackObject, string callbackMethod, string callbackFailedMethod);
AppsFlyer.setGCMProjectNumber(string googleGCMNumber);
AppsFlyer.setShouldCollectDeviceName(bool shouldCollectDeviceName);
Diperbarui lebih dari 1 tahun yang lalu