Integrasi SDK AppsFlyer - iOS

  • Pengiklan
  • Pengembang

Versi SDK:  4.10.4 (Catatan Rilis)

1. Garis Besar

This guide details how to integrate AppsFlyer's SDK into your iOS app. You can record installs, updates, sessions, and additional in-app events as well as app installs (including in-app purchases, game levels, etc.) to evaluate ROI and user engagement levels. The iOS SDK is compatible with all iOS devices (iPhone, iPod, iPad) with iOS version 6 and later.

 Catatan

SDK AppsFlyer sepenuhnya mematuhi Jaringan IPv6 DNS64/NAT64 milik Apple. Untuk informasi lebih lanjut, klik di sini.

 Penting!

SDK AppsFlyer memanfaatkan kelas NSUserDefaults. Menghapus semua data dari NSUserDefaults dapat menyebabkan masalah atribusi.

 Tips

  • In order to implement basic SDK integration that is, install attribution only, it is mandatory to complete the procedures in sections 2 and 3 in this document. 
  • It is recommended that you read the Recording in-app events section as an aid to implementation
  • The rest of the described features described, are optional and implementing them will depend on your app's business logic. For example, recording revenue or getting the conversion data on first launch may be vital for your app's flow

2. Mulai

2.1 Mengunduh dan menambahkan SDK AppsFlyer ke Xcode

CocoaPodsCarthageStatic FrameworkStatic Lib
  1. Pastikan Anda telah mengunduh dan menginstal CocoaPods versi terbaru.
  2. Tambahkan baris berikut ke Podfile Anda:
    pod 'AppsFlyerFramework'
  3. jalankan pod install
  4. Pastikan Anda menggunakan file .xcworkspace untuk membuka proyek dalam Xcode, bukan menggunakan file .xcodeproj mulai sekarang.

SDK AppsFlyer menggunakan framework asli berikut:

AdSupport.framework
Framework ini diperlukan untuk mengumpulkan IDFA dari perangkat user.
Tanpa IDFA Anda tidak dapat mengatribusikan install ke Facebook Ads, Twitter, Google Ads, dan jaringan lainnya.
iAd.framework
Framework ini diperlukan untuk merekam dan mengukur performa Apple Search Ads pada app Anda

2.2 Mengonfigurasi Integrasi di dalam Delegasi Aplikasi

SwiftObjective-C

Pada AppDelegae.swift, lakukan:

  1. impor AppsFlyerLib
  2. Tambahkan AppsFlyerTrackerDelegate ke deklarasi class
impor class AppDelegate AppsFlyerLib
: UIResponder, UIApplicationDelegate, AppsFlyerTrackerDelegate {
   // your code here
}

3. Inisiasi SDK

Inisiasi SDK di metode didFinishLaunchingWithOptions menggunakan app ID Anda yang diambil dari iTunes Connect dan AppsFlyer dev-key Anda. 

Harap diperhatikan bahwa Anda perlu mengatur app ID hanya dengan angka, tanpa awalan "id".

SwiftObjective-C
AppsFlyerTracker.shared().appsFlyerDevKey = "<your-appsflyer-dev-key>";
AppsFlyerTracker.shared().appleAppID = "123456789"
AppsFlyerTracker.shared().delegate = self
#if DEBUG AppsFlyerTracker.shared().isDebug = true
#endif

 Catatan

Log SDK AppsFlyer akan ditampilkan di Konsol xCode jika isDebug=true telah diatur

 

  • Tambahkan kode berikut pada fungsi applicationDidBecomeActive:
SwiftObjective-C
func applicationDidBecomeActive(application: UIApplication) { 
// attribute Installs, updates & sessions(app opens) 
// (You must include this API to enable SDK functions) 
AppsFlyerTracker.shared().trackAppLaunch() 
// your other code here.... }

Memverifikasi Keberhasilan Peluncuran Aplikasi Pengukur

Anda dapat memverifikasi permintaan untuk mengukur keberhasilan peluncuran aplikasi dengan menerapkan trackAppLaunchWithCompletionHandler. Kemudian Anda dapat menerapkan logika untuk menangani keberhasilan atau kegagalan pengukuran peluncuran aplikasi.

Contoh

[[AppsFlyerTracker sharedTracker] trackAppLaunchWithCompletionHandler:^(NSDictionary<NSString *,id> *dictionary, NSError *error) {
        if (error) {
            NSLog(@"%@", error);
            return;
        }
        if (dictionary) {
            NSLog(@"%@", dictionary);
            return;
        }
        [NSException exceptionWithName:@"fatalError" reason:nil userInfo:nil];
    }];

4. Merekam In-App Event

In-App Event memberikan informasi tentang hal yang terjadi dalam app Anda. Disarankan untuk meluangkan waktu dan menentukan event yang ingin Anda ukur agar Anda dapat mengukur ROI (Return on Investment) dan LTV (Lifetime Value).

Perekaman in-app event dilakukan dengan memanggil trackEvent dengan nama event dan parameter nilai. Lihat In-App Event untuk keterangan detail.

Nama event dalam-aplikasi tidak boleh lebih dari 45 karakter. Nama Event yang melebihi 45 karakter tidak muncul di dashboard, namun hanya tertera di laporan data lengkap, API Pull dan API Push.

Contoh: In-App Event Pembelian

SwiftObjective-C
AppsFlyerTracker.shared().trackEvent(AFEventPurchase,
  withValues: [
     AFEventParamRevenue: "1200",
     AFEventParamContent: "shoes",
     AFEventParamContentId: "123"
]);

swift-record-in-app-events.png

Hal ini menghasilkan tipe event af_purchase (menggunakan konstanta AFEventPurchase) dengan nilai event berikut: {af_revenue: 200 , af_currency: "USD", af_quantity: 2, af_content_id: "092" af_receipt_id: "9277"}

 Catatan

AppsFlyer mendukung karakter non-Inggris dalam in-app event, atau dengan SDK API lainnya, mulai dari SDK iOS versi 4.8.1.

Untuk pendapatan, jangan tambahkan simbol mata uang karena hal ini tidak akan dikenali.

 Contoh Penggunaan

SwiftObjective C
AppsFlyerTracker.shared().trackEvent(AFEventPurchase,
withValues: [
  AFEventParamRevenue: @1200,
  AFEventParamCurrency : @"JPY"
]); 

Memverifikasi Rekaman In-App Event

Anda dapat memverifikasi rekaman in-app event berhasil atau tidak dengan menerapkan completionHandler. Kemudian Anda dapat menerapkan logika untuk menangani keberhasilan atau kegagalan perekaman event.

Contoh

[[AppsFlyerTracker sharedTracker] trackEventWithEventName:AFEventPurchase
	eventValues:@{AFEventParamRevenue: @"1200",
					AFEventParamContent: @"shoes",
					AFEventParamContentId: @"123"}
	completionHandler:^(NSDictionary<NSString *,id> *dictionary, NSError *error) {
	if (error) {
		NSLog(@"%@", error);
		return;
	}
	if (dictionary) {
		NSLog(@"%@", dictionary);
		return;
	}
	[NSException exceptionWithName:@"fatalError" reason:nil userInfo:nil];

5. Melakukan Tautan Langsung

 Tips

Kami sangat menyarankan Deep Linking terintegrasi dalam aplikasi Anda. Deep Linking merupakan bagian penting dari kampanye retargeting dan sangat disarankan penggunaannya saat menjalankan kampanye retargeting.

iOS 9 dan di atasnya memerlukan aplikasi yang mendukung Universal Links. Untuk informasi lebih lanjut, klik di sini.


Untuk menangani deep linking, tambahkan kode berikut ke app Anda (pada kelas delegasi aplikasi). Metode pada kode ini memungkinkan Anda untuk mendapatkan data deep linking. Dengan data deep linking, Anda dapat mengarahkan user ke aktivitas app yang relevan dan memberikan konten yang relevan pula.

SwiftObjective-C

 func onConversionDataReceived(_ installData: [AnyHashable: Any]) {
  //Handle Conversion Data (Deferred Deep Link)
  }
  
  func onConversionDataRequestFailure(_ error: Error?) {
    //    print("\(error)")
  }
  
  func onAppOpenAttribution(_ attributionData: [AnyHashable: Any]) {
    //Handle Deep Link Data
    
  }
  
  func onAppOpenAttributionFailure(_ error: Error?) {
  }
// Reports app open from a Universal Link for iOS 9 or later
  func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    AppsFlyerTracker.shared().continue(userActivity, restorationHandler: restorationHandler)
    return true
  }

  // Reports app open from deep link from apps which do not support Universal Links (Twitter) and for iOS8 and below
  func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
    AppsFlyerTracker.shared().handleOpen(url, sourceApplication: sourceApplication, withAnnotation: annotation)
    return true
  }

  // Reports app open from deep link for iOS 10 or later
  func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    AppsFlyerTracker.shared().handleOpen(url, options: options)
    return true
  }
  

 Penting!

Untuk Swift 4.2 ke atas, gunakan kode berikut untuk metode continue userActivity:

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
	AppsFlyerTracker.shared().continue(userActivity, restorationHandler: nil)
	return true
}

6. Merekam Pendapatan

Gunakan parameter event af_revenue (AFEventParamRevenue) untuk menghitung jumlah pendapatan sebagai bagian dari in-app event. Anda dapat mengisinya dengan nilai numerik, positif maupun negatif.

 Catatan

AFEventParamRevenue (sama dengan penggunaan af_revenue) adalah SATU-SATUNYA parameter event yang dianggap oleh AppsFlyer sebagai nilai pendapata pada data lengkap dan dashboard. Untuk detail lebih lanjut klik di sini.


Contoh: Pendapatan dari event didalam aplikasi

SwiftObjective-C
AppsFlyerTracker.shared().trackEvent(AFEventPurchase, 
withValues: [
	AFEventParamContentId:"1234567",
	AFEventParamContentType : "category_a",
	AFEventParamRevenue: 1.99,
	AFEventParamCurrency:"USD"
]);

 Penting!

JANGAN memformat nilai pendapatan dengan cara apa pun. Nilai tidak boleh berisi pemisah koma, simbol mata uang, atau teks. Misalnya, event pendapatan harus serupa dengan 1234.56.

Merekam Pendapatan Negatif

Jika Anda perlu merekam pendapatan negatif, misalnya saat user membatalkan pembelian atau menerima pengembalian dana, Anda dapat mengirimkan pendapatan negatif.

SwiftObjective-C
AppsFlyerTracker.shared().trackEvent("cancel_purchase", 
withValues: [
	AFEventParamContentId:"1234567",
	AFEventParamContentType : "category_a",
	AFEventParamRevenue: -1.99,
	AFEventParamCurrency:"USD"
]);

 Catatan

Pada kode di atas, perhatikan beberapa hal berikut:

  1. Nilai pendapatan didahului dengan tanda minus
  2. Nama event memiliki nama unik "cancel_purchase" - agar Anda dapat mengidentifikasi event pendapatan negatif di dashboard dan laporan data lengkap

7. Memperoleh Data Konversi

AppsFlyer memungkinkan Anda untuk mengakses data atribusi pengguna secara aktual untuk setiap instalasi baru, langsung dari SDK. Dengan ini, Anda dapat melayani pengguna dengan menyajikan konten yang dipersonalisasi atau mengirimkan halaman spesifik dalam aplikasi kepada mereka, yang secara signifikan dapat meningkatkan interaksi pengguna dengan aplikasi Anda.

Untuk informasi lebih lanjut tentang fungsi ini, klik di sini.

8. Pengidentifikasi Pengguna

Ada beberapa pilihan untuk memperoleh pengidentifikasi pengguna:

Memperoleh AppsFlyer Device ID

AppsFlyer Device ID dibuat untuk setiap instalasi aplikasi baru. Anda dapat memperolehnya dengan menggunakan kode berikut:

SwiftObjective-C
let appsflyerId = AppsFlyerTracker.shared().getAppsFlyerUID()

Mengatur ID Pengguna Pelanggan

Dengan mengatur ID pelanggan Anda sendiri, Anda dapat membandingkan ID pelanggan Anda dengan ID unik AppsFlyer dan ID perangkat lainnya. ID ini tersedia di laporan data lengkap AppsFlyer bersama dengan API Postback untuk memandingkan dengan ID internal Anda.

Cara mengatur ID Pengguna Pelanggan Anda:

SwiftObjective-C
AppsFlyerTracker.shared().customerUserID = "my user id"

 Catatan Penting

Sebaiknya atur ID Pengguna Pelanggan sesegera mungkin karena ID hanya terkait dengan event yang dilaporkan setelah ID dibuat. Jika setCustomerUserId sudah dipanggil sebelum memanggil trackAppLaunch, ID Pengguna Pelanggan dapat dilihat di ekspor lengkap untuk install dan event. Jika setCustomerUserId diatur setelahnya, Anda akan melihat nilai tersebut hanya untuk event yang direkam setelah memanggil metode ini.

ID User Kustomer dapat juga digunakan untuk melengkapi integrasi dengan platform Analisis seperti Mixpanel dan Swrve.

Memperoleh ID Pengguna Pelanggan:

Untuk mendapat ID user pelanggan, ambil dari sharedTracker.

[AppsFlyerTracker sharedTracker].customerUserID

 Penting!

Pastikan untuk mengatur ID user pelanggan setiap kali app diluncurkan, sebelum memanggil trackAppLaunch

Untuk informasi lebih lanjut tentang Customer User ID, klik di sini.

IDFA dan IDFV

AppsFlyer secara otomatis mengumpulkan IDFA (ID Untuk Pengiklan) dan IDFV (ID Untuk Vendor) jika AdSupport.framework dimuat di aplikasi.

9. Fitur Pilihan

Mengukur Uninstall

Untuk pengukuran uninstall, aktifkan pemberitahuan pesan jarak jauh pada app Anda. Lihat Panduan Pemrograman Pemberitahuan Remote dari Apple untuk informasi lebih lanjut.

Ikuti petunjuk integrasi SDK iOS untuk menyelesaikan pengaturan fitur pengukuran uninstall.

Rekaman Notifikasi Push

Untuk mengaktifkan Pengukuran aplikasi dibuka dari push notification, tambahkan kode berikut ke delegasi aplikasi:

SwiftObjective-C
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
	AppsFlyerTracker.shared().handlePushNotification(userInfo)
}

Pesan push harus memiliki parameter af dengan parameter atribusi AppsFlyer.

Contoh Pesan:

{
  "aps":{
   "alert":"Push text",
   "sound":"default",
   "category":"REMINDER_CATEGORY"
  },
  "_p":123456,
  "payloadKey":"payloadValue",
  "af":{
   "pid":"swrve_int",
   "is_retargeting":"true",
   "c":"test_campaign"
  }
}

Atribusi Promosi Silang

AppsFlyer memungkinkan Anda untuk mengatribusikan dan merekam install yang berasal dari promosi silang salah satu app Anda yang dimiliki user saat ini. Aplikasi promosi silang dapat menjadi faktor pertumbuhan utama dalam mendorong install tambahan untuk app Anda.

Untuk detail lebih lanjut, lihat artikel tentang Atribusi Promosi Silang, di sini.

Atribusi Undangan User

AppsFlyer memungkinkan Anda untuk mengatribusikan dan merekam install yang berasal dari undangan user pada app Anda. Mengizinkan user yang ada untuk mengundang teman dan kontak mereka sebagai user baru bagi app Anda akan menjadi faktor pertumbuhan utama untuk app Anda.

 
Untuk detail lebih lanjut, lihat artikel Atribusi Undangan User, di sini.

Mengatur Kode Mata Uang

Anda dapat mengatur kode mata uang secara global menggunakan API di bawah ini. Selain itu, kode mata uang spesifik juga dapat digunakan untuk setiap event dalam aplikasi yang dikirim ke AppsFlyer. Kode mata uang global akan digunakan saat AFEventParamCurrency tidak dikirim sebagai bagian dari in-app event.

Nilai default adalah USD. Anda dapat melihat kode mata uang ISO yang dapat diterima di sini.

Gunakan API berikut untuk mengatur kode mata uang:

public void currencyCode(String currencyCode);

Contoh Penggunaan:

SwiftObjective-C
Appsflyertracker.shared().currencycode = "USD"

Validasi Pembelian Dalam-Aplikasi

 Catatan

Fungsi ini didukung untuk iOS 7 dan di atasnya.

SDK AppsFlyer dapat memberi informasipembelian in‐app dan memverifikasinya melalui server. Untuk mengukur penerimaan yang tervalidasi, Anda perlu memanggil metode validateAndTrackInAppPurchase di dalam callback  SKStoreKit:completeTransaction. Panggilan ini secara otomatis menghasilkan in‐app event af_purchase.

- (void) validateAndTrackInAppPurchase:(NSString *) productIdentifier
price:(NSString *) price
currency:(NSString *) currency
transactionId:(NSString *) tranactionId
additionalParameters:(NSDictionary *) params
success:(void (^)(NSDictionary *response)) successBlock
failure:(void (^)(NSError *error, id reponse)) failedBlock;

 Catatan

Parameter harga harus berisi total pendapatan yang terkait dengan event pembelian tervalidasi.


Panggilan ini memiliki dua blok callback, satu untuk ‘success’ dan satu lainnya untuk ‘failure’ (untuk alasan apa pun, termasuk kegagalan validasi). Saat panggilan berhasil, sebuah paket data dikembalikan beserta dengan data validasi penerimaan dari server Apple.  

 Penting

Untuk tujuan pengujian, kami menyarankan pengaturan bendera useReceiptValidationSandbox ke YES, karena ini akan mengarahkan permintaan ke server sandbox Apple.

#ifdef DEBUG
[AppsFlyerTracker sharedTracker].useReceiptValidationSandbox = YES;
#endif

 

 Contoh

Objective-CSwift
[[AppsFlyerTracker sharedTracker] validateAndTrackInAppPurchase:@"ProductIdentifier" price:@"price"
    currency:@"USD"
    transactionId:@"transactionID"
    additionalParameters:@{@"test": @"val" , @"test1" : @"val 1"}
    success:^(NSDictionary *result){
      NSLog(@"Purchase succeeded And verified!!! response: %@", result[@"receipt"]);
    } failure:^(NSError *error, id response) {
      NSLog(@"response = %@", response);
      if([response isKindOfClass:[NSDictionary class]]) {
        if([response[@"status"] isEqualToString:@"in_app_arr_empty"]){
          // retry with 'SKReceiptRefreshRequest' because
          // Apple has returned an empty response
          // <YOUR CODE HERE>
        }

      } else {
        //handle other errors
        return;
      }
  }];

 Penting!

Ketika AppsFlyer memvalidasi pembelian terhadap server Apple, dan jika balasannya berisi array in-app kosong, maka AppsFlyer akan mengembalikan {"status":"in_app_arr_empty"} ke callback kesalahan.

Jika Anda menerima bendera ini, Anda harus mengembalikan produk yang dibeli menggunakan Apple dengan cara mengirimkan permintaan penyegaran tanda terima. Untuk informasi lebih lanjut lihat dokumentasi Apple.

Setelah menyegarkan tanda terima, panggil validateAndTrackInAppPurchase sekali lagi.

Lihat kode di atas untuk mempelajari cara menangani kesalahan ini.

Untuk melihat daftar kemungkinan nilai balik untuk validasi penerimaan, silakan baca dokumentasi Apple di sini.

Penganoniman

AppsFlyer memberi Anda metode untuk menganonimkan identifier pengguna tertentu dari analisis AppsFlyer. Metode ini sesuai dengan persyaratan privasi terbaru dan sesuai kebijakan data dan privasi Facebook. Nilai defaultnya adalah NO, yang berarti penganoniman secara default tidak dilakukan.

Gunakan API ini saat inisialisasi SDK untuk menganonimkan instalasi,event dan sesi pengguna secara eksplisit:

SwiftObjective-C
AppsFlyerTracker.shared().deviceTrackingDisabled = true

Pengukuran dapat diulang dengan memanggil kembali deviceTrackingDisabled dan mengaturnya ke false.

 Peringatan

Penganoniman user berdampak KRUSIAL pada informasi atribusi Anda.
Gunakan opsi ini HANYA untuk wilayah yang secara hukum mencegah Anda mengumpulkan informasi pengguna.

Mengganti Waktu Antar Sesi

Secara default, setidaknya ada jeda selama 5 detik antara 2 peluncuran app agar terhitung sebagai 2 sesi terpisah (lebih lanjut tentang menghitung sesi).

Namun, Anda dapat menggunakan API berikut untuk menentukan suatu nilai sebagai waktu minimum yang diperlukan antar-sesi:

SwiftObjective-C
AppsFlyerTracker.shared().minTimeBetweenSessions = <your_custom_time_in_seconds>
Perlu diperhatikan bahwa mengatur nilai tinggi ke waktu kustom antar-peluncuran dapat berdampak buruk pada API yang bergantung pada data sesi, seperti deep linking.

Sesi Latar Belakang untuk Aplikasi Utilitas

Tidak tersedia di iOS. 
 

Ekstensi Aplikasi iOS dan WatchKit

Ekstensi aplikasi ini memerlukan hak akses untuk menggunakan Internet:

  1. Silakan buka file info.plist ekstensi aplikasi Anda
  2. Pada NSExtension / NSExtensionAttributes atur bendera RequestsOpenAccess ke YES.

Tambahkan kode berikut ke UIViewController ekstensi aplikasi viewDidLoad:

SwiftObjective-C
override func viewDidLoad() {  
    super.viewDidLoad()
    AppsFlyerTracker.shared().appsFlyerDevKey = "MY_APPSFLYER_KEY"

    // MY_APP_ID below stands for you app ID on iTunes Connect. Should be 9 or 10 digits.
    AppsFlyerTracker.shared().appleAppID = "MY_APP_ID"
        
    AppsFlyerTracker.sharedTracker().trackAppLaunch()
  }

Untuk menerima data atribusi pada ekstensi aplikasi, ikuti instruksi di sini dan terapkan pada UIViewController aplikasi Anda, bukan pada AppDelegate.

Opt-Out

Dalam beberapa kasus ekstrem, Anda mungkin diharuskan untuk mematikan semua fungsi SDK karena pemenuhan hukum dan privasi. Tindakan ini dapat dilakukan dengan isStopTracking API. Setelah API dipanggil, SDK kami tidak akan lagi berkomunikasi dengan server dan berhenti berfungsi.

Ada beberapa skenario berbeda untuk berhenti mengirim data user. Kami menyarankan anda untuk mengikuti instruksi yang sesuai dan relevan untuk app Anda.

 Peringatan

Gunakan API ini hanya jika Anda ingin sepenuhnya mengabaikan user ini dari setiap dan semua atribusi install dan perekaman event. Penggunaan API ini berdampak KRITIS pada atribusi, pengumpulan data, dan mekanisme deep linking.

SwiftObjective-C
AppsFlyerTracker.shared().isStopTracking = true

 Penting

Jangan panggil trackAppLaunch jika isStopTracking diatur ke true

Mengumpulkan Nama Device

SDK AppsFlyer mengizinkan Anda untuk mengumpulkan Nama Perangkat untuk analisis internal Anda. Dalam aturan standar, fitur ini dinonaktifkan. Gunakan API berikut untuk mengaktifkan:

SwiftObjective-C
AppsFlyerTracker.shared().shouldCollectDeviceName = false

 Penting

Nama Perangkat dianggap Data Pribadi di wilayah tertentu. Kumpulkan informasi ini hanya jika Anda diizinkan secara hukum dan telah menerima persetujuan secara eksplisit dari pengguna untuk melakukannya.

Mengatur Data Kustom Tambahan

parameter setAdditionalData diperlukan untuk integrasi dengan beberapa platform partner eksternal di level SDK, termasuk Segment, Adobe, dan Urban Airship. Gunakan API ini hanya jika artikel integrasi platform secara khusus menyatakan bahwa API  setAdditionalData diperlukan.
Berikut ini adalah contoh kode untuk pengimplementasian setAdditionalData pada iOS menggunakan Objective-C atau Swift

Objective-CSwift
NSDictionary* CustomDataMap = [[NSDictionary alloc] initWithObjectsAndKeys:@"value_of_param_1", @"custom_param_1", nil];
  
[[AppsFlyerTracker sharedTracker] setAdditionalData:CustomDataMap];

Menyelesaikan Masalah Penggabungan URL Deep Link

Jika menggunakan OneLink yang mendukung Link App Android dan menggabungkan keduanya dengan Link Universal Pihak Ke-3, Anda dapat menggunakan setResolveDeepLinkURLs API untuk memberi tahu SDK AppsFlyer domain klik pemicu app yang harus diselesaikan oleh SDK, dan juga untuk mengekstrak OneLink yang mendasarinya. Cara ini akan memungkinkan Anda untuk mempertahankan tautan langsung dan atribusi sembari menggabungkan OneLink dengan Link Universal pihak ke-3. Anda harus memanggil API ini sebelum inisialisasi SDK.

Objective-CSwift
[AppsFlyerTracker sharedTracker].resolveDeepLinkURLs = @[@"example.com",@"click.example.com"];

10. Menguji Integrasi Anda

Untuk informasi lebih lanjut tentang cara menguji integrasi Anda, klik di sini.

Sekarang Anda dapat mulai mengukur hasil media source yang Anda gunakan.

11. Mengirimkan Aplikasi ke App Store

Anda dapat melihat instruksi cara mengirimkan aplikasi Anda ke App Store di sini.

Apakah artikel ini membantu?
10 dari 18 menganggap ini berguna

Komentar

0 komentar

Harap login untuk memberikan komentar.

Artikel dalam bagian ini