Dalam panduan ini Anda akan mempelajari cara untuk mendapatkan data konversi menggunakan SDK iOS, serta contoh penggunaannya.

Sebelum Anda memulai:

Untuk mendapatkan data konversi, pertama Anda harus mengintegrasikan SDK.

Mendapatkan data konversi di SDK iOS

#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>

@interface AppDelegate ()
@end
@implementation AppDelegate
    // ...
    -(void)onConversionDataSuccess:(NSDictionary*) installData {
    // Invoked when conversion data resolution succeeds
}
-(void)onConversionDataFail:(NSError *) error {
    // Invoked when conversion data resolution fails
    NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
    // ..
}

extension AppDelegate: AppsFlyerLibDelegate {

    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        // Invoked when conversion data resolution succeeds
    }

    func onConversionDataFail(_ error: Error!) {
        // Invoked when conversion data resolution fails
    }
}

onConversionDataSuccess

onConversionDataSuccess diterapkan di AppsFlyerLibDelegate.
Itu onConversionDataSuccess metode ini dipanggil kapan pun:

  • Seorang pengguna membuka aplikasi
  • Seorang pengguna memindahkan aplikasi ke latar depan

Saat dipanggil, onConversionDataSuccess mengembalikan NSDictionary (yang dipanggil installData di contoh) yang memuat data atribusi untuk penginstalan itu. installData disinggahkan untuk pertama kalinya onConversionDataSuccess dipanggil dan akan identik pada panggilan berturut-turut.

onConversionDataFail

onConversionDataFail diterapkan di AppsFlyerLibDelegate.
Jika karena alasan apa pun SDK gagal mengambil data konversi, onConversionDataFail is invoked.

Mengakses data atribusi

Anda bisa mendapatkan jenis konversi dengan memeriksa nilai af_status pada onConversionDataSuccesspayload-nya. Hal ini dapat berupa salah satu dari nilai berikut:

  • Organic
  • Non-organic

Contoh

Berikut ini adalah contoh implementasi:

#import "AppDelegate.h"
#import <AppsFlyerLib/AppsFlyerLib.h>
#import <UserNotifications/UserNotifications.h>
@interface AppDelegate ()
@end
@implementation AppDelegate
    // ...
-(void)onConversionDataSuccess:(NSDictionary*) installData {
    // Business logic for Non-organic install scenario is invoked
    id status = [installData objectForKey:@"af_status"];
    if([status isEqualToString:@"Non-organic"]) {
        id sourceID = [installData objectForKey:@"media_source"];
        id campaign = [installData objectForKey:@"campaign"];
        NSLog(@"This is a Non-organic install. Media source: %@  Campaign: %@",sourceID,campaign);
    }

    else if([status isEqualToString:@"Organic"]) {
        // Business logic for Organic install scenario is invoked
        NSLog(@"This is an Organic install.");
    }

}
-(void)onConversionDataFail:(NSError *) error {
    NSLog(@"%@",error);
}
// ...
@end
import UIKit
import AppsFlyerLib
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, AppsFlyerLibDelegate {
    // ...
}

extension AppDelegate: AppsFlyerLibDelegate {

    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        if let status = installData["af_status"] as? String {
            if (status == "Non-organic") {
                // Business logic for Non-organic install scenario is invoked
                if let sourceID = installData["media_source"],
                let campaign = installData["campaign"] {
                    print("This is a Non-organic install. Media source: \(sourceID)  Campaign: \(campaign)")
                }
            }
            else {
                // Business logic for organic install scenario is invoked
            }
        }
    }

    func onConversionDataFail(_ error: Error!) {
        // Logic for when conversion data resolution fails
        if let err = error{
            print(err)
        }
    }
}

Tautan Github

Tautan langsung tertunda/deferred deep linking (Metode lama)

Saat aplikasi dibuka melalui deferred deep linking (penautan langsung tertunda), onConversionDataSuccesspayload mengembalikan data deep linking, serta data atribusi.