iOS SDKのダウンロード&インテグレーションガイド(v4.3.7) - AppsFlyer SDK Integration - iOS

現在のバージョン:4.3.7

AppsFlyerのSDKはアプリのインストールとイベント計測機能を提供しています。非常に堅牢(現在まで80億以上のSDKのインテグレーションが行わています)で、セキュリティ度が高く、軽量でとても埋め込みが簡単です。

インストール、アップデートそしてセッション(以下の必須のステップをたどる必要があります)を測定することができます。またインストールに留まらないアプリ実装後のアプリ内イベント(アプリ内購入、ゲームレベル等)を計測し、ROIとユーザーエンゲージメントレベルを評価することができます。

計測に最低限必要なステップは以下に説明されています。任意のオプション機能についてもそれ以降のセクションで説明しています。

iOS SDKはiOSのバージョンが6およびそれ以上(9を含む)の全てのiOSデバイス(iPhone、iPod、iPad)に対応しています。

以下のセクションがインテグレーションガイドでカバーされています。

  • iOS SDKダウンロード
  • 本バージョンでの更新点
  • SDKのアプリへの埋め込み(必須)
  • SDKの初期化およびインストールイベント(計測に最低限必要な手順)
  • アプリ内イベントの計測API(任意)
  • 上級インテグレーション
  • SDK導入テストの実施

 iOS SDKダウンロード

  • iOS SDKをstatic libraryとしてダウンロードするためには、こちらをクリックしてください。
  • iOS SDKをframeworkとしてダウンロードするにはこちらをクリックしてください。

1.  このバージョンでの更新点

  • プッシュ通知の測定 – セクション12

2.  アプリへのSDKの埋め込み(必須)

AppsFlyer SDKはframeworkとstatic libraryで利用可能です。

2.1 AppsFlyer SDK Framework

Frameworkを実装する最もシンプルな方法はcocoapodsを利用する方法です。

  • pod ファイルに次の行を追加します
pod ‘AppsFlyerFramework’

pod ‘AppsFlyerFramework’

cocoapodsを利用しない場合は、以下の手順を行ってください。

  • Xcodeで、“Build Phases” >> “Link Binary with Libraries” を開き >> “+” サインをクリックし新しいlibraryを追加します

  • “Add Other” をクリックし、“AppsFlyerLib.framework” を追加します

  • 以下のヘッダーを追加します。
#import "AppsFlyerLib/AppsFlyerTracker.h"

2.2 AppsFlyer SDK Static Library

Static libraryを追加する最もシンプルな方法はcocoapodsを利用する方法です

  • podファイルに次の行を追加します。
pod 'AppsFlyer-SDK'

cocoapods を利用しない場合は、以下の手順を行ってください:

  • ヘッダーファイルとライブラリファイルをプロジェクトに追加します。

AppsFlyer SDK のコンポーネント(libAppsFlyerLib.a & AppsFlyerTracker.h)はこちら

  • AppsFlyerヘッダーインポートを追加します。
#import "AppsFlyerTracker.h"
  • framework をプロジェクトに追加し“Optional” として設定します。アプリ申請に関する説明 はこちら

2.3 IDFA

注:AppsFlyer では、AdSupport.framework が含まれている場合に限り、IDFA を収集します。

  • framework をプロジェクトに追加します。

3.  SDKの初期化およびインストールイベント(計測に最低限必要な手順)

これはアプリインストールを計測し始めるために最低限必要な手順ですのでご注意ください。

アプリケーションを初めて起動するときに、SDKを初期化する必要があります。次のトラッキング イベントを送信する前に、必ずSDKを初期化してください。

3.1 SDKの初期化

SDK を初期化するには、次のコードを“didFinishLaunchingWithOptions” ファンクションに追加します:

[AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"[Dev_Key]";
[AppsFlyerTracker sharedTracker].appleAppID = @"REPLACE THIS WITH YOUR App_ID";

注:数字のみを入力し、”ID”は含めないようにしてください。例:App IDがid123456789であれば、以下のように表示されます。

[AppsFlyerTracker sharedTracker].appleAppID = @"123456789";

[Dev_Key] を独自の Dev_Key に置き換えます(独自の Dev_Key はアカウントへログインし、AppsFlyer 管理画面から“Settings” > “Integrate the SDK into...“ から取得できます)。例:a4kGpVyxm8iGgzvzT8NPaV

3.2 コードの追加

 “applicationDidBecomeActive” ファンクションの AppDelegate.m ソースファイルに、次のコードを追加します:

#import "AppsFlyerTracker.h"
-(void)applicationDidBecomeActive:(UIApplication *)application 
}
     // Track Installs, updates & sessions(app opens) (You must include this API to enable tracking)
     [[AppsFlyerTracker sharedTracker] trackAppLaunch];}

4.  アプリ内イベントの計測 API (任意)

この API は AppsFlyer がインストール後のアプリ内イベントの計測を可能にします。これらのイベントは広告主によって定義され、イベント名に加えて任意のイベント値が含まれます。

これらのイベントによって、ロイヤル ユーザーがどのようにアプリを発見し、特定のキャンペーンやメディアから成果に至ったかをトラッキングできます。ROI (投資収益率) や LTV (ライフタイム バリュー) を計測するために、計測したいアプリ内イベントを慎重に定義するのをおすすめします。

シンタックス:

- (void) trackEvent:(NSString *)eventName withValues:(NSDictionary*)values

eventName は、イベントの名前を定義する任意の文字列です。

Values はリッチイベントを構成するイベントパラメータです。

収益(revenue)をアプリ内リッチイベントの一部として計測:‘af_revenue” (constant)

AFEventParamRevenue

イベントパラメータは収益をアプリ内リッチイベントの一部として計測します。正または負の任意の数値を設定できます。 

注:“af_price” 

AFEventParamPrice

はイベントの説明的なパラメータであり、収益として計測するためのものでなく、収益額や LTV 計測に反映されませんので注意ください。 

例1:「レベル達成」アプリイベント

 [[AppsFlyerTracker sharedTracker] trackEvent: AFEventLevelAchieved withValues:@{        
    AFEventParamLevel: @9,
    AFEventParamScore : @100 }]; 

これはイベントタイプ “af_level_achieved” を以下のイベントバリューと一緒に生成します:

{af_level: 9 , af_score: 100}

例2:購入イベント

 [[AppsFlyerTracker sharedTracker] trackEvent:AFEventPurchase withValues: @{

    AFEventParamContentId:@"1234567",
    AFEventParamContentType : @"category_a",
    AFEventParamRevenue: @200,
    AFEventParamCurrency:@"USD"}];

これはイベントタイプ “af_purchase” を以下のイベントバリューと共に生成します:

{af_content_id: “1234567” , af_content_type: “category_a”, af_revenue: 200, af_currency: “USD”}

 上記の購入イベントは$200 の収益を含み、これは収益として管理画面に反映されます。

注:アプリ内イベントの名前は45文字以下である必要があります。45文字以上のイベントネームは管理画面に表示されず、ローデータレポート、PullおよびPush APIにのみ表示されます。

iOSアプリ内リッチイベント詳細についてはこちらをご参照ください。

5.  上級インテグレーション

以下の API は任意であり、AppsFlyer SDK の上級インテグレーションの一部です。

5.1 通貨コードの設定(任意)

AppsFlyer 側に送信される各リッチアプリ内イベントに使用される各通貨コードに加えて、以下の API を用いてグローバル通貨コードを設定できます。グローバル通貨コードは、“af_currency”(AFEventParamCurrency) がアプリ内イベントデータとして送信されない場合に適用されます。

USD (米国ドル) が既定値です。使用できる ISO 通貨コードはこちらです。

通貨コードを設定するには、以下の API を用いてください:

 [[AppsFlyerTracker sharedTracker].currencyCode = @"GBP"];

5.2 AppsFlyer の独自 ID を取得 (任意)

アプリの新規インストールに対して、それぞれ AppsFlyer 独自の ID が生成されます。AppsFlyer の独自ID は AppsFlyer がレポートや API で用いる主な ID です。

AppsFlyer の独自 ID を取得するには以下の API を用いてください:

(NSString *) [AppsFlyerTracker sharedTracker] getAppsFlyerUID

5.3 顧客 ID の設定(任意)

独自の顧客 ID を設定すると、独自の固有 ID を、AppsFlyer ID や他のデバイスの ID と相互参照できる ようになります。この ID は、ポストバック API とともに AppsFlyer の CSV レポート上で確認でき、広告主 側の内部的な ID と相互参照することができます。

顧客 ID を設定する方法:

[[AppsFlyerTracker sharedTracker].customerUserID = @"YOUR_CUSTOM_DEVICE_ID"]; 

【重要】

  • この設定を実装したあとに発生したイベントのみに顧客IDが付与されるため、顧客 ID の設定は、できる限り最初の段階で設定することをおすすめします。
  • MixpanelやSwrveなどのアナリティクスツールとのAppsFlyer連携を利用する場合には、顧客IDはこのAPIを用いて設定する必要があります。
  • この設定を実装あとに発生したイベントのみに顧客 ID が付与されるため、顧客 ID の設定は、できる限り最初の段階で設定することをおすすめします。
  • MixpanelやSwrveなどのアナリティクスツールとのAppsFlyer連携を利用する場合には、顧客 ID はこの API を用いて設定する必要があります。

顧客IDについてのより詳しい情報はこちらをご参照ください。

5.4コンバージョンデータの取得(Get Conversion Data(任意)

AppsFlyer を使うことで、リアルタイムで直接 SDK レベルでユーザーのアトリビューションデータにアクセスできます。このデータをもとに、ユーザーがインストール後にアプリ初期起動で表示するランディングページをカスタマイズすることが可能です。

この機能の詳細はこちらを参照ください。.

5.5 App Extension Supportの有効化

App Extensionはインターネットに接続する許可を必要とします。

  1. App Extensionの”info.plist”ファイルにアクセスします。
  2. NSExtension / NSExtensionAttributesでRequestsOpenAccess flagをYESに設定します。App Extension ViewController ViewDidLoadでAppsFlyerLibを初期化します。
 [AppsFlyerTracker sharedTracker].appsFlyerDevKey = @"YOUR_DEV_KEY_HERE";
[AppsFlyerTracker sharedTracker].appleAppID = @"APP_ID_HERE"; 
[AppsFlyerTracker sharedTracker].delegate = self;
[[AppsFlyerTracker sharedTracker] trackAppLaunch];

コンバージョンデータを受け取るには:

  1. App Extension ViewController.hにアクセスします。
  2. Appsflyerヘッダーファイルをインポートします。
#import "AppsFlyerTracker.h"
  1. <AppsFlyerTrackerDelegate>をinterface declarationに追加する。Extension ViewController.mに以下のメソッドを追加する。
-(void)onConversionDataReceived:(NSDictionary*) installData {
    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 none organic install. Media source: %@  Campaign: %@",sourceID,campaign);      
  } else if([status isEqualToString:@"Organic"]) {      
      NSLog(@"This is an organic install.");      
  }
 }
-(void)onConversionDataRequestFailure:(NSError *) error {  
  NSLog(@"%@",error);
}
- (void) onAppOpenAttribution:(NSDictionary*) attributionData {  
  NSLog(@"attribution data: %@", attributionData);
}
- (void) onAppOpenAttributionFailure:(NSError *)error {
  NSLog(@"%@",error);
 }

5.6ユーザーメールアドレスの設定 (任意)

AppsFlyer は、デバイスに紐付く複数のメールアドレスをレポートすることができます。デベロッパーはユーザーからメールアドレスを取得し、AppsFlyer にそれを好きな暗号化メソッドで報告できます。以下の暗号化メソッドが利用可能です: Sha1、MD5、plain

例:

 [[AppsFlyerTracker sharedTracker] setUserEmails:@[@"email1@domain.com", @"email2@domain.com"] withCryptType:EmailCryptTypeSHA1];

5.7リターゲティング・アトリビューションのディープリンクを記録(任意)

AppsFlyer ではディープリンクとユニバーサルリンクを経由した起動を記録し、リターゲティング・アトリビューション広告の成果を分析できます。

このような起動を記録するには、次のコードを app delegate から追加します:

// Reports app open from a Universal Link for iOS 9
- (BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler
{    
[[AppsFlyerTracker sharedTracker] continueUserActivity:userActivity restorationHandler:restorationHandler];
return YES;
}
// Reports app open from deeplink for iOS 8 or below
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
      sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
[[AppsFlyerTracker sharedTracker] handleOpenURL:url
      sourceApplication:sourceApplication];
return YES;
}

より詳細な情報はOneLink設定ガイドをご参照ください。

5.8 アプリ内購入イベントのレシート検証(任意)

注:この機能は iOS7 以上にて対応しています

NOTE:  This function is supported for iOS7 and above.

AppsFlyerのSDKはアプリ内購入のサーバー検証を提供しています。レシート検証の計測を設定するには、SKStoreKitのcompleteTransaction: callback内にあるvalidateAndTrackInAppPurchaseメソッドを呼び出す必要があります。この呼び出しは自動的にアプリ内イベント「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;

この呼び出しには、「success」と「failure」(検証エラーを含む何らかの理由)の 2 つのコールバックブロックが含まれています。「success 」の場合は、dictionary は Apple のサーバーから提供されるレシート検証データとともに返却されます。

【重要】テストを実行するためには、useReceiptValidationSandboxフラグを YESに設定することを推奨します。こうすることで、リクエストをApple sandboxサーバーにリダイレクトします。

[AppsFlyerTracker sharedTracker].useReceiptValidationSandbox = YES;

例:

[[AppsFlyerTracker sharedTracker] validateAndTrackInAppPurchase:product.productIdentifier price:product.price.stringValue
currency:@"USD"
transactionId:trans.transactionIdentifier
additionalParameters:@{@"test": @"val" , @"test1" : @"val 1"}
success:^(NSDictionary *result){
               NSLog(@"Purcahse succeeded And verified!!! response: %@", result[@"receipt"]);
} failure:^(NSError *error, id response) {
               NSLog(@"response = %@", response);
}];

5.9 HTTPSの設定(任意)

AppsFlyer の SDK は HTTPS でサーバー通信を行います。この機能を無効にしたい場合(推奨しないメソッドです)、「isHTTPS」プロパティを NO に設定します。規定値は YES です。

[AppsFlyerTracker sharedTracker].isHTTPS = YES;

5.10 エンドユーザーのオプトアウト(任意)

AppsFlyer には、AppsFlyer アナリティクスから特定のユーザーをオプトアウトするための方法があります。この方法は、最新のプライバシー要件に適合しており、Facebook のデータポリシーとプライバシーポリシーにも適合しています。既定値は NO で、計測が有効になっています。

セクション 4 の SDK 初期化の段階で、以下の API を用いてオプトアウトしてください。

[AppsFlyerTracker sharedTracker].deviceTrackingDisabled = YES;

5.11 ID for Advertisers – IDFA/IFA からの明示的なオプトアウト(任意)

AppsFlyerのSDKは、AdSupport.frameworkライブラリがプロジェクト内に含まれている場合に限り、IDFAを収集します。明示的にオプトインやオプトアウトを行う必要はありません。ただし、IDFAを明示的にオプトアウトしたい場合は、セクション4のSDKの初期化で、次のAPIを使用してください:

[AppsFlyerTracker sharedTracker].disableAppleAdSupportTracking = YES;

IDFAは、disableAppleAdSupportトラッキングがYESに設定された場合、AppsFlyerのサーバーで収集されることはありません。

5.12 プッシュ通知測定(任意)Push Notification Measurements (Optional)

AppsFlyerではプッシュ通知を広告キャンペーンの一部として測定することが可能です。

--(void) application:(UIApplication ​*)application didReceiveRemoteNotification:(NSDictionary *​)userInfo {
   [[AppsFlyerTracker sharedTracker] handlePushNotification:userInfo];
}

6. SDK 導入テストの実施

App Store にアプリを提出する前/後に SDK 導入をテストする方法は、こちらをご覧ください。

 

 

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
他にご質問がございましたら、リクエストを送信してください
Powered by Zendesk