iOS向けAdjust SDKの使用を開始する Adjust iOS SDKを実装することで、アトリビューションやイベントなどのさまざまなデータをiOSアプリで計測できます。以下の手順に従って、Adjust SDKをアプリに実装してください。また、GitHub のAdjustのサンプルアプリもご覧ください。
Adjust SDKを使い始めるには、SDKをdependencyとしてプロジェクトに追加してください。
Adjust SDKはiOS 9以降のバージョンに対応しています。
全て展開する
Cocoapodsを使ってSDKを追加するには、Podfile
で使いたいバージョンを指定します。
// Get pod from repository
pod 'Adjust', '~> 4\.33\.3
'
// Get source directly from GitHub
pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :tag => '4\.33\.3
'
アプリでWeb viewを使用している場合は、以下のようにAdjust Web Bridgeを追加します。
pod 'Adjust/WebBridge', '~> 4\.33\.3
'
Carthageを使ってSDKを追加するには、以下をCartfile
に追加します。
Swift Package Managerを使ってSDKを追加するには、以下の手順に従ってください。
File をクリックします。Swift Packages を選択します。Add Package Dependency を選択します。表示されたボックスに、SDKのGitHubのアドレスを入力します。
https://github.com/adjust/ios_sdk
Version ドロップダウンで、使用したいAdjust SDKのバージョンを選択します。最新のパージョンはリリースページ からご確認ください。Adjust SDKはフレームワークとしてプロジェクトに追加することもできます。リリースページ には、次のアーカイブがあります。
AdjustSdkStatic.framework.zip
AdjustSdkDynamic.framework.zip
AdjustSdkTvDynamic.framework.zip
AdjustSdkTvStatic.framework.zip
AdjustSdkImDynamic.framework.zip
AdjustSdkWebBridgeDynamic.framework.zip
iOS 8リリースより、Appleはdynamic frameworks(embedded frameworks)を導入しています。iOS 8以降の端末をターゲットにしている場合は、Adjustの SDK dynamic frameworkが使用できます。staticかdynamic frameworksかを選択し、プロジェクトに追加してください。
リリースページからアーカイブをダウンロードします。 コンピューター上でアーカイブのzipファイルを解凍します。 .framework
フォルダーをXcodeプロジェクトにコピーします。tvOSアプリを作成している場合は、tvOS frameworkを使用できます。これは、AdjustSdkTvStatic.framework.zip
とAdjustSdkTvDynamic.framework.zip
のアーカイブにあります。
iMessageを作成している場合は、IM frameworkを使用できます。これは、AdjustSdkImDynamic.framework.zip
アーカイブにあります。
アプリでWeb viewを使用している場合は、Adjust Web Bridgeを使用できます。これは、AdjustSdkWebBridgeDynamic.framework.zip
アーカイブにあります。
全て展開する
PodレポジトリからAdjust SDKを追加した場合は、関連するimport statement(インポートステートメント)をプロジェクトにインポートする必要があります。
以下をAppDelegate.h
ファイルに追加します。
#import "Adjust.h"
// or #import <Adjust/Adjust.h>
Adjust Web Bridgeを使用している場合は、以下をAppDelegate.h
ファイルに追加します。
Adjust SDKをstaticまたはdynamic frameworkとして追加した場合、またはCarthageを使う場合は、次のインポートステートメントを使用します。
以下をAppDelegate.h
ファイルに追加します。
#import <AdjustSdk/Adjust.h>
Adjust Web Bridgeを使用している場合は、以下をAppDelegate.h
ファイルに追加します。
#import <AdjustSdkWebBridge/AdjustBridge.h>
tvOSアプリでAdjust SDKを使用している場合は、以下をAppDelegate.h
ファイルに追加します。
#import <AdjustSdkTv/Adjust.h>
iMessageアプリでAdjust SDKを使用している場合は、以下をAppDelegate.h
ファイルに追加します。
#import <AdjustSdkIm/Adjust.h>
特定のiOS frameworksをアプリに実装した場合、Adjust SDKは追加の情報を取得できます。Frameworkを追加してそれらを オプション とマークすることで、Adjust SDKで追加機能を有効化できます。
AdSupport.framework
SDKがIDFA値と(iOS 14以前の)LAT情報にアクセスするには、このframeworkが必要です。 アプリが「子供向け」カテゴリーをターゲットにしている場合は、このframeworkは実装しないでください。 AdServices.framework
このフレームワークは、Apple Search Ads アトリビューションを処理するのに必要です。 StoreKit.framework
iOS 14以降において、このframeworkはSKAdNetwork frameworkにアクセスし、SKAdNetworkとの通信をAdjust SDKで自動的に処理できるようにします。 AppTrackingTransparency.framework
iOS 14またはそれ以降において、このframeworkはSDKがトラッキングに対する同意を確認するダイアログをラップし、ユーザーの許諾状況を示す値にアクセスします。 アプリが「子供向け」カテゴリーをターゲットにしている場合は、このframeworkは実装しないでください。 WebKit.framework
このフレームワークを使用すると、アプリでWeb viewが使用できます。 アプリがWeb viewを使用している場合にのみ必要です。
全ての必要なframeworkを追加したら、アプリ内でAdjust SDKを初期化できます。これを行うには、アプリトークンを使ってADJConfig object とアプリを実行したい環境を初期化します。
テストを実施する際は、環境が
ADJEnvironmentSandbox
に設定されているようにしてください。また、アプリをApp Storeに提出する前にこれを
ADJEnvironmentProduction
に変更してください。
全て展開する
Project Navigator上で、アプリケーションデリゲートのソースファイルを開いてください。ファイルの最上部にimportの記述を追加し、didFinishLaunching
かdidFinishLaunchingWithOptions
のメソッド内に下記のAdjustコールを追加します。
#import "Adjust.h"// or #import <Adjust/Adjust.h>// or #import <AdjustSdk/Adjust.h>
// or #import <AdjustSdkTv/Adjust.h>
// or #import <AdjustSdkIm/Adjust.h>
// ...
NSString *yourAppToken = @"{YourAppToken}";
NSString *environment = ADJEnvironmentSandbox;
*adjustConfig = [ADJConfig configWithAppToken:yourAppToken
environment:environment];
[Adjust appDidLaunch:adjustConfig];
Adjust SDKをこのように初期化するようにしてください。このタイミング以外でAdjust SDKを初期化すると、予期せぬ動作が起こる可能性があります。詳細は
よくあるご質問 をご覧ください。
Adjust SDKをプロジェクトに追加した方法によっては、さらに行う必要があるステップがあります。
ソースからAdjust SDKを追加した場合、プリプロセッサマクロ(pre-processor macro)ADJUST_IM=1
がiMessageプロジェクトで設定されていることを確認してください。 FrameworkとしてAdjust SDKを追加した場合、 Build Phases プロジェクトの設定で New Copy Files Phase を追加します。AdjustSdkIm.framework
がFrameworks
フォルダにコピーされるように設定してください。 セッション計測 iMessageアプリでセッショントラッキングを設定するには、追加の手順を行う必要があります。標準のiOSアプリでは、Adjust SDKはiOSシステム通知に自動的に登録され、アプリ表示がフォアグラウンドかどうかを知ることができます。これはiMessageアプリの場合には該当しないため、アプリのView ControllerにtrackSubsessionStart
メソッドとtrackSubsessionEnd
メソッドへの呼び出しを追加する必要があります。これにより、アプリがフォアグラウンド表示かどうかをSDKに認識させることができます。
didBecomeActiveWithConversation:
のメソッド内にtrackSubsessionStart
へのコールを追加します。
-(void)didBecomeActiveWithConversation:(MSConversation *)conversation {
// 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`へのコールを追加します。
-(void)willResignActiveWithConversation:(MSConversation *)conversation {
// Called when the extension is about to move from the active to inactive state.
// This will happen when the user dissmises 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 stopped later.
[Adjust trackSubsessionEnd];
}
アプリとiMessageのエクステンションは、異なるメモリースペースで動作します。これはさまざまなバンドルIDがあるためです。よって、アプリとエクステンションの両方で同じアプリトークンを使ってAdjust SDKを初期化すると、問題が発生する可能性があります。2つの独立したインスタンスは、それぞれ別々にトラッキングします。Adjust SDKがAdjustのバックエンドに混合したデータを返す可能性があるため、これを回避するには、iMessageアプリ用に別のアプリをAdjust管理画面に作成し、新しいトークンを使って Adjust SDKの初期化を初期化してください。
Adjust Web bridgeをアプリに実装するには、以下の手順に従ってください。
AdjustBridge
をアプリに実装するProject Navigator上で、View Controllerのソースファイルを開いてください。ファイルの最上部にimport
の記述を追加し、次のコールをWeb View DelegateのviewDidLoad
メソッドまたはviewWillAppear
メソッド内のAdjustBridge
に追加します。
#import "AdjustBridge.h"
// or #import <AdjustSdkWebBridge/AdjustBridge.h>
- (void)viewWillAppear:(BOOL)animated {
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.bounds];
// add @property (nonatomic, strong) AdjustBridge *adjustBridge; on your interface
[self.adjustBridge loadWKWebViewBridge:webView];
// optionally you can add a web view delegate so that you can also capture its events
// [self.adjustBridge loadWKWebViewBridge:webView wkWebViewDelegate:(id<wknavigationdelegate>)self];
}
// ...
また、内包されているWebViewJavascriptBridge
を使用することもできます。これを使用するには、AdjustBridge
インスタンスのbridgeRegister
プロパティを設定してください。使用方法はライブラリのドキュメント をご覧ください。
AdjustBridge
をWeb viewに実装するWeb viewでJavascriptを使用するには、bridgeを設定する必要があります。Adjust iOSのWeb bridgeを初期化するには、以下のJavascriptコードを含めてください。
function setupWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {
return callback(WebViewJavascriptBridge);
}
if (window.WVJBCallbacks) {
return window.WVJBCallbacks.push(callback);
}
window.WVJBCallbacks = [callback];
var WVJBIframe = document.createElement('iframe');
WVJBIframe.style.display = 'none';
WVJBIframe.src = 'https://__bridge_loaded__';
document.documentElement.appendChild(WVJBIframe);
setTimeout(function() { document.documentElement.removeChild(WVJBIframe)}, 0)
}
setupWebViewJavascriptBridge(function(bridge) {
// ...
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig(yourAppToken, environment);
Adjust.appDidLaunch(adjustConfig);
// ...
});
Adjust SDKをこのように初期化するようにしてください。このタイミング以外でAdjust SDKを初期化すると、予期せぬ動作が起こる可能性があります。詳細は
よくあるご質問 をご覧ください。
全てのログを無効化したい場合は、
ADJConfig
インスタンスで
allowSuppressLogLevel
をtrueに設定し、
ADJLogLevelSuppress
の値を使って
setLogLevel
メソッドを呼び出します。
Verboseログを設定するには、ADJConfig
インスタンスでlogLevel
プロパティ を使用します。これを有効にするには、appDidLaunch
を呼び出す前に上記の手順を行ってください。
[adjustConfig setLogLevel:ADJLogLevelVerbose];
設定が完了しました。これでアプリの構築と実行が可能になります。ログを有効化して、問題がないかを確認してください。Adjust SDKを使ってユーザーのアトリビューションを開始することができます。