-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathindex.mdoc
431 lines (332 loc) · 17.9 KB
/
index.mdoc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
---
title: iOS SDK連携ガイド
description: iOS SDKを使用して、iOSアプリでAdjustの機能にアクセスしましょう。
category-title: iOS SDK
slug: ja/sdk/ios
sidebar-position: 2
versions:
- label: v5
value: v5
default: true
- label: v4
value: v4
redirects:
v4: /ja/sdk/ios/v4
---
Adjust iOS SDKを実装することで、アトリビューションやイベントなどのさまざまなデータをWebアプリで記録できます。このガイドでは、Adjust SDKをアプリに実装する方法を紹介します。
{% callout type="important" %}
Adjust SDKはiOS 12以降のバージョンに対応しています。
{% /callout %}
1. プロジェクトにSDKを追加する {% #add-the-sdk-to-your-project %}
---
iOSアプリでAdjust SDKを使うには、Xcodeプロジェクトに追加する必要があります。
Swift Package Managerを使ってSDKを追加するには、以下の手順に従ってください。
1. **File --> Swift Packages --> Add Package Dependency** を選択します。
1. 表示されたボックスに、SDKのGitHubのアドレスを入力します。 `https://github.com/adjust/ios_sdk`
1. **Version** ドロップダウンで、使用したいAdjust SDKのバージョンを選択します。最新のパージョンは[リリースページ](https://github.com/adjust/ios_sdk/releases)からご確認ください。
### その他のインストール方法 {% #alternative-installation-methods %}
{% tabs %}
{% tab title="Cocoapods" sync="cocoapods" %}
Cocoapodsを使ってSDKを追加するには、`Podfile`で使用したいバージョンを指定します。
```rb
# Get pod from repository
pod 'Adjust', '~> {% $versions.ios.v5 %}'
```
アプリでWeb viewを使用している場合は、以下のようにAdjust Web Bridgeを追加します。
```rb
pod 'Adjust/AdjustWebBridge', '~> {% $versions.ios.v5 %}'
```
{% /tab %}
{% tab title="Carthage" sync="carthage" %}
Carthageを使ってSDKを追加するには、以下を`Cartfile`に追加します。
```text
github "adjust/ios_sdk"
```
{% /tab %}
{% /tabs %}
2. Adjust SDKを実装する {% #integrate-the-adjust-sdk %}
---
Adjust SDKを`Xcode`プロジェクトに追加したら、それをアプリで実装する必要があります。
プロジェクトファイルに関連するimport statement(インポートステートメント)を追加します。
{% tabs %}
{% tab title="Swift" sync="swift" %}
Adjust SDKをインポートするには、以下をbridging headerファイルに追加します。
```swift
import AdjustSdk
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
Adjust SDKをインポートするには、以下を`AppDelegate.h`ファイルに追加します。
```objc
#import <AdjustSdk/AdjustSdk.h>
```
{% /tab %}
{% /tabs %}
3. iOS frameworksを追加する {% #add-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シグネチャーを設定する {% #set-up-sdk-signature %}
---
Adjust SDKとAdjustのサーバー間の通信を保護するためにSDKシグネチャーライブラリを使用する場合は、[AdjustヘルプセンターのSDKシグネチャーガイド](https://help.adjust.com/ja/article/sdk-signature)の手順に従ってください。
5.(オプション)Adjust Web Bridgeを設定する {% #set-up-web-bridge %}
---
アプリがWeb viewを使用している場合、Adjust Web Bridgeを設定してWeb view内のアクティビティを記録する必要があります。
### `AdjustBridge`をアプリに実装する {% #integrate-adjustbridge-into-your-app %}
プロジェクトナビゲータにて:
1. View Controllerのソースファイルを開きます。
1. ファイルの最上部に`import`ステートメントを追加します。
1. Web View Delegateの`viewDidLoad`または`viewWillAppear`メソッドの`AdjustBridge`に以下のコールを追加します。
{% tabs %}
{% tab title="Swift" sync="swift" %}
```swift
import AdjustSdk
func viewWillAppear(_ animated: Bool) {
let webView = WKWebView(frame: view.bounds)
// add var adjustBridge: AdjustBridge? on your interface
adjustBridge.loadWKWebViewBridge(webView)
}
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
```objc
#import <AdjustSdk/AdjustSdk.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];
}
// Your code here
```
{% /tab %}
{% /tabs %}
#### `AdjustBridge`をWeb viewに実装する {% #integrate-adjustbridge-into-your-web-view %}
Web viewでJavascriptを使用するには、bridgeを設定する必要があります。Adjust iOSのWeb bridgeを初期化するには、以下のJavascriptコードを追加してください。
{% tabs %}
{% tab title="Javascript" sync="js" %}
```js
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig(yourAppToken, environment);
Adjust.initSdk(adjustConfig);
```
{% /tab %}
{% /tabs %}
6. Adjust SDKを初期化する {% #initialize-the-adjust-sdk %}
---
Adjust SDKを初期化するには、configオブジェクトを作成する必要があります。このオブジェクトには、Adjust SDKの動作をコントロールする設定オプションが含まれています。最小限の設定を行うために、以下の引数をパスします。
* `appToken`: [アプリトークン](https://help.adjust.com/ja/article/app-settings#view-your-app-token)。
* `environment`: SDKを実行したい環境。`ADJEnvironmentSandbox`に設定します。
ConfigオブジェクトでAdjust SDKを初期化:
1. アプリデリゲートの`didFinishLaunching`または`didFinishLaunchingWithOptions`メソッド内のconfigオブジェクトを宣言します。
1. Configオブジェクトの`logLevel`プロパティを`ADJLogLevelVerbose`(verbose)に設定します。デバイス情報を取得するには、verboseロギングを有効化する必要があります。
1. Configオブジェクトを引数として`initSdk`メソッドにパスします。
{% tabs %}
{% tab title="Swift" sync="swift" %}
```swift
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
}
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
```objc
#import <AdjustSdk/AdjustSdk.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *yourAppToken = @"{YourAppToken}";
NSString *environment = ADJEnvironmentSandbox;
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:appToken
environment:environment];
// Your code here
[Adjust initSdk:myAdjustConfig];
// Your code here
return YES;
}
```
{% /tab %}
{% tab title="Javascript" sync="js" %}
```js
var yourAppToken = yourAppToken;
var environment = AdjustConfig.EnvironmentSandbox;
var adjustConfig = new AdjustConfig(yourAppToken, environment);
Adjust.initSdk(adjustConfig);
```
{% /tab %}
{% /tabs %}
### iMessageアプリを設定する {% #set-up-your-imessage-app %}
{% callout type="important" %}
iMessageの拡張機能は、アプリとは異なるバンドル識別子を持ち、別のメモリースペースで実行されます。同じトークンで両方を設定した場合、SDKはミックスデータを返します。AdjustダッシュボードでiMessageアプリ用に別のアプリを作成し、Adjust SDKを初期化する際にそのトークンを使用する必要があります。{% callout /%}
アプリがiMessageをターゲティングしている場合、いくつか追加の設定を行う必要があります。
* ソースからAdjust SDKを追加した場合、`ADJUST_IM=1`プリプロセッサマクロをiMessageプロジェクトの設定に追加してください。
* Adjust SDKをフレームワークとして追加した場合、 **ビルドフェーズ** プロジェクト設定で **新規コピーファイルフェーズ(New Copy Files Phases)** を追加します。`AdjustSdkIm.framework`をフレームワークフォルダーにコピーするように設定してください。
#### セッションを記録する {% #record-sessions %}
Adjust SDKはiMessageアプリのiOSシステム通知を受け取りません。アプリがフォアグラウンドに入った、またはフォアグラウンドから離れたことをAdjust SDKに通知するには、`trackSubsessionStart`と`trackSubsessionEnd`メソッドを呼び出す必要があります。
`didBecomeActiveWithConversation:`メソッド内で`trackSubsessionStart`へのコールを追加します。
{% tabs %}
{% tab title="Swift" sync="swift" %}
```swift
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()
}
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
```objc
-(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];
}
```
{% /tab %}
{% /tabs %}
`willResignActiveWithConversation:`メソッド内で`trackSubsessionEnd`へのコールを追加します。
{% tabs %}
{% tab title="Swift" sync="swift" %}
```swift
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()
}
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
```objc
-(void)willResignActiveWithConversation:(MSConversation *)conversation {
// 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];
}
```
{% /tab %}
{% /tabs %}
7. Adjust SDKを設定する {% #configure-the-adjust-sdk %}
---
Configオブジェクトと初期化ロジックを追加したら、Adjust SDKを設定してアプリの様々な部分に関する情報を記録することができます。[設定ガイド](/ja/sdk/ios/configuration)と[機能ガイド](/ja/sdk/ios/features)を参照し、記録したいデータを正確に設定してください。
8. Adjust SDKをテストする {% #test-the-adjust-sdk %}
---
アプリの情報を記録するようにAdjust SDKを設定したら、次はテストを行います。Adjustは、アプリのテストに役立つ[テストコンソール](https://help.adjust.com/ja/article/testing-console)と[デバイスAPI](https://help.adjust.com/ja/article/device-api)を提供しています。
[テストガイド](https://help.adjust.com/ja/article/test-the-adjust-sdk)に従って、Adjustがアプリから想定どおりの値を受け取ることを確認してください。
9. 本番用にアプリをビルドする {% #build-your-app-for-production %}
---
テストが終わったら、本番用にアプリをビルドできます。そのためには、configオブジェクトを更新する必要があります。
以下の値を更新します。
* `environment`: `ADJEnvironmentProduction`に設定します。
* `logLevel`: [ログレベル](/ja/sdk/ios/configuration#set-your-logging-level)を選択するか、configプロジェクトに`allowSuppressLogLevel`引数をパスしてログを完全に無効化します。
{% tabs %}
{% tab title="Swift" sync="swift" %}
```swift
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
}
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
```objc
#import <AdjustSdk/AdjustSdk.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *yourAppToken = @"{YourAppToken}";
NSString *environment = ADJEnvironmentSandbox;
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:appToken
environment:environment
suppressLogLevel:YES];
[adjustConfig setLogLevel:ADJLogLevelVerbose];
//...
[Adjust initSdk:adjustConfig];
//...
return YES;
}
```
{% /tab %}
{% /tabs %}
`Xcode`のビルドフラグを使用して、debug buildと本番ビルドのどちらを作成するかに応じて、動的に設定を更新することができます。
{% tabs %}
{% tab title="Swift" sync="swift" %}
```swift
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
}
```
{% /tab %}
{% tab title="Objective-C" sync="objc" %}
```objc
#import <AdjustSdk/AdjustSdk.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSString *yourAppToken = @"{YourAppToken}";
#if DEBUG
NSString *environment = ADJEnvironmentSandbox;
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:appToken
environment:environment];
[adjustConfig setLogLevel:ADJLogLevelVerbose];
#else
NSString *environment = ADJEnvironmentProduction;
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:appToken
environment:environment];
[adjustConfig setLogLevel:ADJLogLevelSuppress];
#endif
//...
[Adjust initSdk:adjustConfig];
//...
return YES;
}
```
{% /tab %}
{% /tabs %}
{% /callout %}