コンバージョンデータ

このガイドでは、iOS SDKでコンバージョンデータを取得する方法と、使用例を紹介しています。

始める前に

コンバージョンデータを取得するには、まずSDKを実装する必要があります。

iOS SDKでのコンバージョンデータの取得

#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, AppsFlyerLibDelegate {
    // ...
    func onConversionDataSuccess(_ installData: [AnyHashable: Any]) {
        // Invoked when conversion data resolution succeeds
    }

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

onConversionDataSuccess

onConversionDataSuccessAppsFlyerLibDelegate で実装されます。
onConversionDataSuccess メソッドは、以下の時点で常に呼び出されます:

  • ユーザーがアプリを起動
  • ユーザーがアプリをフォアグラウンドに移動

呼び出されると、onConversionDataSuccessは、そのインストールの計測データを含む NSDictionary(例では installData)を返します。installData は、onConversionDataSuccessが初めて呼び出されたときにキャッシュされ、次の呼び出しで同一のものになります。

onConversionDataFail

onConversionDataFailAppsFlyerLibDelegate で実装されます。
何らかの理由でSDKがコンバージョンデータの取得に失敗した場合、onConversionDataFail が呼び出されます。

計測データへのアクセス

コンバージョンタイプは、onConversionDataSuccessのペイロードのaf_statusの値を確認することで取得できます。値は次のいずれかになります。

  • Organic
  • Non-organic

以下に実装例を示します。

#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 {
    // ...
    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)
        }
    }
}

ディファードディープリンク(従来の方法)

アプリがディファードディープリンクで起動された場合、onConversionDataSuccess のペイロードはディープリンクデータと計測データを返します。


このページは役に立ちましたか?