iOSクイックスタート

ネイティブiOSプラットフォーム用のTUNE SDKには、アプリケーションセッションおよびイベントロギング機能が用意されています。TUNE iOS SDKはiOSプロジェクトに組み込むことができるフレームワークの形式で利用可能です。iPhone、iPad、およびiPod Touchの各デバイス、およびiOSバージョン6.0以降のAutomatic Reference Counting (ARC) プロジェクトと非ARCプロジェクトの両方に対応しています。

セッションおよびイベントを開始するには、まずiOS用TUNE SDKをお使いのモバイルアプリに統合します。「measureSessionメソッドを開始した後に、TUNEを利用してアプリ内イベントを計測可能です(購入、ゲームレベル、およびその他のユーザーエンゲージメントなど)。

このクイックスタートに従い、TUNE SDKをすぐに実装できます。古いMobileAppTracker (MAT) SDKバージョンからアプリをアップグレードする場合は、MobileAppTracker SDK 2.xから3.x.xへの移行またはTUNE SDK3.x.xから4.x.xへの移行をご参照ください。Xcode 6.0以上でSwiftプログラミング言語で書かれたiOSアプリ用TUNE SDKを実装する場合、SwiftプロジェクトにTUNE iOS Objective-C SDKを含めるをご覧ください。

サポートするTMCソリューション

iOS用のTUNE SDKは、次のTUNE Marketing Consoleソリューションをサポートしています:

  • Attribution Analytics
  • In-App Marketing - 追加のSDK設定が必要で、v4.0.0以上でサポートされます。
  • App Store Analytics

SDKをダウンロードする

iOS用TUNE SDKのサイズは、プロジェクトiOSのターゲットが6.0(最も古いサポート対象)の場合、最大で1MBです。TUNE SDKをダウンロードする前に、アプリをTUNEプラットフォームへ追加してください。

TUNEプラットフォームに追加したら、直接SDKをダウンロードしてインストールするか、またはTune CocoaPodをインストールします。

またTUNE SDKは、セッションおよびイベント計測のためのライブラリのオープンソース・フレームワークとしても提供しています。オープンソースSDKにアクセスするには、GitHubをご覧ください。

実装

インストール

TUNE iOS SDKをインストールするには2つの方法があります。Cocoapodsを使うか、または以下の手順に従って手動でインストールするかです。

Cocoapodsを使ってのインストール

CocoaPodsを使用している場合、次のようにpod 「Tune」target..do..endブロックの中のプロファイルに追加し、pod installを実行します。

target '<your_project_target>' do 
    pod 'Tune'
end

$(inherited)がXcodeプロジェクトのBuild Settingsの「Other Linker Flags」に設定されていない場合、追加します。

手動でインストール

手動でインストールする場合は、以下の手順に従います:

  1. Tune.frameworkフォルダを解凍して、ソースツリーにコピーします。
  2. Tune.frameworkをXcode® projectに追加します。
  3. Project Navigatorのトップで、プロジェクト名をクリックします。
    1. Generalタブを一番下までスクロールダウンして、(Linked Frameworks and Libraries)を確認します。
    2. 新しいフレームワークを追加するには、「+」印をクリックして、次にAdd Other…をクリックします。
    3. Tune.frameworkフォルダをブラウズ、選択し、次にOpenをクリックします。
  4. 以下のフレームワークをプロジェクトに追加します:
    1. AdSupport.framework
    2. CoreSpotlight.framework
    3. CoreTelephony.framework
    4. iAd.framework
    5. libz.dylib/libz.tbd
    6. MobileCoreServices.framework
    7. QuartzCore.framework
    8. Security.framework
    9. StoreKit.framework
    10. SystemConfiguration.framework
    11. UserNotifications.framework (only on Xcode 8 to support iOS 10+)
  5. 次のフラグをXcodeプロジェクトのBuild Settingsの「Other Linker Flags」に追加します。
-ObjC -lz

コード変更

アプリがBuild Settings内のEnable Modules (CとObjective-C) がYESとなっていることを確認します。

AppDelegate.mで、Tuneをインポートし初期化します。

@import Tune;
 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Account Configuration info - must be set
    [Tune initializeWithTuneAdvertiserId:@"your_advertiser_ID"
                       tuneConversionKey:@"your_conversion_key"];
 
    // Register this class as a deeplink listener to handle deferred deeplinks and Tune Universal Links.
    // This class must conform to the TuneDelegate protocol, implementing the tuneDidReceiveDeeplink: and tuneDidFailDeeplinkWithError: callbacks.
    [Tune registerDeeplinkListener:self];
 
    // Uncomment this line to enable auto-measurement of successful in-app-purchase (IAP) transactions as "purchase" events
    //[Tune automateIapEventMeasurement:YES];
 
    return YES;
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Attribution will not function without the measureSession call included
    [Tune measureSession];
}

// Capturing Universal Links
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray * _Nullable))restorationHandler {
    // Check if Tune will handle the Universal Link. If so, the deeplink will be handled in your tuneDidReceiveDeeplink: or tuneDidFailDeeplinkWithError: callback
    BOOL handledByTune = [Tune handleContinueUserActivity:userActivity restorationHandler:restorationHandler];
    
    // If handledByTune is false, handle the routing yourself
    if (!handledByTune) {
        ...
    }
    return YES;
}

// Capturing deeplinks for iOS >= 9.0
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options {
    // When the app is opened due to a deep link, call the Tune deep link setter
    [Tune handleOpenURL:url options:options];
    // Take care of the routing yourself here
    ...
    return YES;
}

// Capturing deeplinks for iOS < 9.0
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    // When the app is opened due to a deep link, call the Tune deep link setter
    [Tune handleOpenURL:url sourceApplication:sourceApplication];
    // Take care of the routing yourself here
    ...
    return YES;
}

// TuneDelegate protocol deeplink callbacks
// For more information, please see https://developers.tune.com/sdk/implementing-a-deferred-deep-link/#code-platform-ios 
- (void)tuneDidReceiveDeeplink:(NSString *)deeplink {
    NSLog(@"Tune deferred deeplink = %@", deeplink);
    
    // Handle opening deeplink
    ...
}

- (void)tuneDidFailDeeplinkWithError:(NSError *)error {
    NSLog(@"Tune failed to receive deferred deep link: error = %@", error);
}

 

Smartwhereでロケーションとプロキシミティを有効にする

TUNE Marketing Console (TMC)とSmartwhereの連携により、TUNEプラットフォームでできることが実世界まで広がります。次のような機能が利用できます。

  • 店舗の訪問アトリビューション
  • アプリユーザーが実際に訪れた場所に基づくオーディエンスセグメントの作成
  • プロキシミティによるエンゲージメント

Smartwhereは、TUNE iOS SDKのバージョン4.13.3に含まれていますが、デフォルトでは有効になっていません。Smartwhereを有効にするには、AppDelegateでTuneを初期化した後、次のコールを行います。

[Tune enableSmartwhereIntegration];

以前にSmartwhereを実装していた場合は、新しいSDKに置き換え、AppDelegateから次の行を削除します。(これらのヘッダーは、Tuneに含まれます):

#import <SmartWhere/SmartWhere.h>

Smartwhereの詳細については、Smartwhere IntegrationSmartwhere In Store Event Tracking の記事をご参照ください。

 

ユニバーサルリンクの実装

iOS 9のリリースで、AppleはUniversal Links(ユニバーサルリンク)を導入して、アプリ内のコンテンツを見つけられるようになりました。ユニバーサルリンクを使用すると、ユーザーをWebからアプリへ簡単にディープリンクすることができます。ユニバーサルリンクをサポートするようにアプリとWebブラウザを構成する方法は、iOSユニバーサルリンクの実装をご参照ください。

 

留意事項

  • your_advertiser_ID」と「your_conversion_key」の値は、TUNEにモバイルアプリを追加したときに生成されるAdvertiser IDとConversion Keyです。Advertiser IDおよびConversion Keyの詳細は、Advertiser IDおよびConversion Keyを見つけるをご参照ください。
  • ディファードディープリンク機能は、iOS用TUNE SDKバージョン3.15.0以降で利用可能です。延期ディープリンクの詳細は、ディファードディープリンクを実装するをご覧ください。
  • アプリに既存ユーザー(既にアプリをインストールしている人)がいる場合、TUNEはそのユーザーを既存ユーザーとしてフラグを付けて、マーケティングパートナーにアトリビュートする事を防ぐいくつかのオプションを用意しています。既存ユーザーの移行の詳細については、SDK実装前の既存ユーザーの扱いをご覧ください。
  • MAT SDK v3.9以降ではアプリ内購入イベントの自動計測をサポートしています。この機能は対応するTUNE seetterからオプションで有効にすることができます。自動計測を有効にすると、重複するイベントの計測を避けるために「購入」イベントを明示的に計測をする必要はありません。詳細はIAPイベント計測をご参照ください。
  • MAT SDK v3.10.0以降では、AdSupport.frameworkをインポートすると、自動的に広告用識別子 (Identifier for Advertising:IFA) を収集します。IFAの収集により、iOSのイベントアトリビューションが改善されます。モバイルアプリでIFAを使用する場合、iTunes Connectでアプリを提出するときに、その利用目的を指定します。IFAを収集しない場合、AppleのIFA削除の影響ご確認ください。
  • MAT SDK v3.10.0以上では自動的にユーザーデバイスのジオロケーションを収集し位置情報をベースにしたユーザーセグメントを改善します。CoreLocationフレームワークが存在し、アプリが位置情報へのアクセスを既に許可されている場合にのみ、収集されます。TUNE SDKはエンドユーザーに位置情報アクセス許可をリクエストしません。詳細はロケーション自動計測をご参照ください。
  • SDK v3.11.0以降では、対応するTUNE setterを使ってIFAとデバイス位置情報自動収集機能を管理します。

 

テストおよびトラブルシューティング

モバイルアプリでTUNE SDK実装をテストするには、テスト環境を作らず、TUNEプラットフォームから直接行うことが可能です。モバイルアプリのテストをご覧ください。

 

イベントを計測する

モバイルアプリにTUNE SDKを実装してセッションを開始すると、registration(登録)やpurchase(購入)といった様々なアプリ内イベントを計測するよう設定できます。

アプリ内イベントのログと分析により、アプリの機能と広告戦略の両方を効率的に最適化できます。最も重要なのは、モバイルアプリでのユーザーの行動を理解することで、コストと継続率、エンゲージメント、および顧客生涯価値 (LTV) の比較が可能になります。これにより、効果的で収益性の高い広告キャンペーンを構築することが可能になります。

カスタムイベントを作成するには、Event Builder(イベントビルダー)の記事をご覧ください。

アプリ内イベント