Adjust iOS SDKを実装することで、アトリビューションやイベントなどのさまざまなデータをWebアプリで記録できます。このガイドでは、Adjust SDKをアプリに実装する方法を紹介します。
1. プロジェクトにSDKを追加する
iOSアプリでAdjust SDKを使うには、Xcodeプロジェクトに追加する必要があります。
Swift Package Managerを使ってSDKを追加するには、以下の手順に従ってください。
- File —> Swift Packages —> Add Package Dependency を選択します。
- 表示されたボックスに、SDKのGitHubのアドレスを入力します。
https://github.com/adjust/ios_sdk
- Version ドロップダウンで、使用したいAdjust SDKのバージョンを選択します。最新のパージョンはリリースページからご確認ください。
その他のインストール方法
Cocoapodsを使ってSDKを追加するには、Podfile
で使用したいバージョンを指定します。
# Get pod from repositorypod 'Adjust', '~> 5.2.0'
アプリでWeb viewを使用している場合は、以下のようにAdjust Web Bridgeを追加します。
pod 'Adjust/AdjustWebBridge', '~> 5.2.0'
2. Adjust SDKを実装する
Adjust SDKをXcode
プロジェクトに追加したら、それをアプリで実装する必要があります。
プロジェクトファイルに関連するimport statement(インポートステートメント)を追加します。
Adjust SDKをインポートするには、以下をbridging headerファイルに追加します。
import AdjustSdk
3. iOS frameworksを追加する
Adjust SDKは、特定のデバイス情報にアクセスするためにフレームワークに依存しています。この情報を読み取れるようにするには、フレームワークを追加してそれらを オプション として表示します。
Framework | 説明 | 注意 |
---|---|---|
AdSupport.framework | デバイスのIDFAにアクセスできるようにします。また、iOS 14以前のデバイスでLAT情報にアクセスできるようになります。 | アプリが「子供向け」カテゴリーをターゲットにしている場合、このフレームワークは追加しないでください。 |
AdServices.framework | ASAアトリビューションを処理します。 | |
StoreKit.framework | SKAdNetworkフレームワークにアクセスできるようにします。 | iOS14以降のデバイスでAdjust SDKがSKAdNetworkとの通信を処理するために必要です。 |
AppTrackingTransparency.framework | Adjust SDKがユーザーのATT同意ダイアログをラップし、iOS 14以降のデバイスで同意レスポンスにアクセスできるようにするために必要です。 | アプリが「子供向け」カテゴリーをターゲットにしている場合、このフレームワークは追加しないでください。 |
WebKit.framework | アプリでWeb viewを使用できるようにします。 | アプリがWeb viewを使用している場合にのみ必要です。 |
4. SDKシグネチャーを設定する
Adjust SDKとAdjustのサーバー間の通信を保護するためにSDKシグネチャーライブラリを使用する場合は、AdjustヘルプセンターのSDKシグネチャーガイドの手順に従ってください。
5.(オプション)Adjust Web Bridgeを設定する
アプリがWeb viewを使用している場合、Adjust Web Bridgeを設定してWeb view内のアクティビティを記録する必要があります。
AdjustBridge
をアプリに実装する
プロジェクトナビゲータにて:
- View Controllerのソースファイルを開きます。
- ファイルの最上部に
import
ステートメントを追加します。 - Web View Delegateの
viewDidLoad
またはviewWillAppear
メソッドのAdjustBridge
に以下のコールを追加します。
import AdjustSdk
func viewWillAppear(_ animated: Bool) { let webView = WKWebView(frame: view.bounds)
// add var adjustBridge: AdjustBridge? on your interface adjustBridge.loadWKWebViewBridge(webView)}
AdjustBridge
をWeb viewに実装する
Web viewでJavascriptを使用するには、bridgeを設定する必要があります。Adjust iOSのWeb bridgeを初期化するには、以下のJavascriptコードを追加してください。
var yourAppToken = yourAppToken;var environment = AdjustConfig.EnvironmentSandbox;var adjustConfig = new AdjustConfig(yourAppToken, environment);Adjust.initSdk(adjustConfig);
6. Adjust SDKを初期化する
Adjust SDKを初期化するには、configオブジェクトを作成する必要があります。このオブジェクトには、Adjust SDKの動作をコントロールする設定オプションが含まれています。最小限の設定を行うために、以下の引数をパスします。
appToken
: アプリトークン。environment
: SDKを実行したい環境。ADJEnvironmentSandbox
に設定します。
ConfigオブジェクトでAdjust SDKを初期化:
- アプリデリゲートの
didFinishLaunching
またはdidFinishLaunchingWithOptions
メソッド内のconfigオブジェクトを宣言します。 - Configオブジェクトの
logLevel
プロパティをADJLogLevelVerbose
(verbose)に設定します。デバイス情報を取得するには、verboseロギングを有効化する必要があります。 - Configオブジェクトを引数として
initSdk
メソッドにパスします。
import AdjustSdk
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let yourAppToken = "{YourAppToken}" let environment = ADJEnvironmentSandbox let adjustConfig = ADJConfig(appToken: yourAppToken, environment: environment)
Adjust.initSdk(adjustConfig) //... return true }
iMessageアプリを設定する
アプリがiMessageをターゲティングしている場合、いくつか追加の設定を行う必要があります。
- ソースからAdjust SDKを追加した場合、
ADJUST_IM=1
プリプロセッサマクロをiMessageプロジェクトの設定に追加してください。 - Adjust SDKをフレームワークとして追加した場合、 ビルドフェーズ プロジェクト設定で 新規コピーファイルフェーズ(New Copy Files Phases) を追加します。
AdjustSdkIm.framework
をフレームワークフォルダーにコピーするように設定してください。
セッションを記録する
Adjust SDKはiMessageアプリのiOSシステム通知を受け取りません。アプリがフォアグラウンドに入った、またはフォアグラウンドから離れたことをAdjust SDKに通知するには、trackSubsessionStart
とtrackSubsessionEnd
メソッドを呼び出す必要があります。
didBecomeActiveWithConversation:
メソッド内でtrackSubsessionStart
へのコールを追加します。
func didBecomeActive(with conversation: MSConversation) { // Called when the extension is about to move from the inactive to active state. // This will happen when the extension is about to present UI. // Use this method to configure the extension and restore previously stored state.
Adjust.trackSubsessionStart()}
willResignActiveWithConversation:
メソッド内でtrackSubsessionEnd
へのコールを追加します。
func willResignActive(with conversation: MSConversation) { // Called when the extension is about to move from the active to inactive state. // This will happen when the user dismisses the extension, changes to a different // conversation or quits Messages.
// Use this method to release shared resources, save user data, invalidate timers, // and store enough state information to restore your extension to its current state // in case it is terminated later.
Adjust.trackSubsessionEnd()}
7. Adjust SDKを設定する
Configオブジェクトと初期化ロジックを追加したら、Adjust SDKを設定してアプリの様々な部分に関する情報を記録することができます。設定ガイドと機能ガイドを参照し、記録したいデータを正確に設定してください。
8. Adjust SDKをテストする
アプリの情報を記録するようにAdjust SDKを設定したら、次はテストを行います。Adjustは、アプリのテストに役立つテストコンソールとデバイスAPIを提供しています。
テストガイドに従って、Adjustがアプリから想定どおりの値を受け取ることを確認してください。
9. 本番用にアプリをビルドする
テストが終わったら、本番用にアプリをビルドできます。そのためには、configオブジェクトを更新する必要があります。
以下の値を更新します。
environment
:ADJEnvironmentProduction
に設定します。logLevel
: ログレベルを選択するか、configプロジェクトにallowSuppressLogLevel
引数をパスしてログを完全に無効化します。
import AdjustSdk
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let yourAppToken = "{YourAppToken}" let environment = ADJEnvironmentProduction let adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment, suppressLogLevel: true) adjustConfig?.logLevel = ADJLogLevel.verbose //... Adjust.initSdk(adjustConfig) //... return true}
Xcode
のビルドフラグを使用して、debug buildと本番ビルドのどちらを作成するかに応じて、動的に設定を更新することができます。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let yourAppToken = "{YourAppToken}"
#if DEBUG let environment = ADJEnvironmentSandbox let adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment) adjustConfig?.logLevel = ADJLogLevel.verbose
#else let environment = ADJEnvironmentProduction let adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment) adjustConfig?.logLevel = ADJLogLevel.suppress #endif //... Adjust.initSdk(adjustConfig) //... return true}