Before you begin
SDK v5にアップデートする前に、以下を行ってください。
- SDK v5はSDKシグネチャーの検証をネイティブにサポートします。現在SDKシグネチャーライブラリを使用している場合は、まずこれをアンインストールしてください。
- アプリが以下のバージョン以前のAPIバージョンを対象にしている場合、SDK v5を使用する前にアプリをアップデートする必要があります:
- iOS: 12.0
- tvOS: 12.0
Install the beta SDK
SDK v5の使用を開始するには、XCodeプロジェクトにdependencyとしてSDK v5を追加する必要があります。これを行うには、以下の手順に従ってください。
-
現在
Podfile
にある古いバージョンの SDK を全て削除します。 -
以下を
Podfile
ファイルに追加します:Podfile pod 'Adjust', :git => 'https://github.com/adjust/ios_sdk.git', :branch => 'v5' -
pod install
を実行してdependencyをインストールします。
Changes
v5 SDKをインストールしたら、新しいAPIを使用するために既存のAdjustコードを更新する必要があります。
Initialization method
SDK v4では、SDKはADJConfig
オブジェクトを設定し、[Adjust appDidLaunch]
メソッドにパスすることで初期化されます。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
Adjust.appDidLaunch(adjustConfig)
#import "Adjust.h"
NSString *yourAppToken = @"{YourAppToken}";NSString *environment = ADJEnvironmentSandbox;*adjustConfig = [ADJConfig configWithAppToken:yourAppToken; environment:environment];
[Adjust appDidLaunch:adjustConfig];
SDK v5では、このメソッドは[Adjust initSdk]
に改名されました。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
Adjust.initSdk(adjustConfig)
#import "Adjust.h"
NSString *yourAppToken = @"{YourAppToken}";NSString *environment = ADJEnvironmentSandbox;ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:yourAppToken environment:environment];
[Adjust initSdk:adjustConfig];
Signature setup
SDK v5には、 SDKシグネチャーライブラリが含まれています。これをテストするにはシグネチャーライブラリ連携ガイドの手順に従ってください。
シグネチャーの保護機能は、デフォルトで非アクティブになっています。これを有効化するには、シグネチャーの検証を有効化してください。
Configuration
このセクションでは、SDK設定の変更について説明します。
Disable and enable the SDK
SDK v4では、BOOL
値で[Adjust setEnabled]
を呼び出すことで、SDKを有効化・無効化することができます。
- SDKを無効化するには、
[Adjust setEnabled:NO]
を呼び出します。 - SDKを有効化するには、
[Adjust setEnabled:YES]
を呼び出します。
Adjust.setEnabled(false) //disable SDKAdjust.setEnabled(true) //enable SDK
[Adjust setEnabled:NO]; // disable SDK[Adjust setEnabled:YES]; // enable SDK
より明確にするため、SDK v5では、この機能は別々のコマンドに分割されています。
- SDKを無効化するには、
[Adjust disable]
を呼び出します。 - SDKを有効化するには、
[Adjust enable]
を呼び出します。
Adjust.disable() //disable SDKAdjust.enable() //enable SDK
[Adjust disable]; // disable SDK[Adjust enable]; // enable SDK
Send information in background
SDK v4では、[ADJConfig setSendInBackground]
メソッドにtrue
引数を付けて呼び出すことで、アプリがバックグラウンドで動作している間にSDKがAdjustに情報を送信することができます。
adjustConfig.setSendInBackground(true)
[adjustConfig setSendInBackground:YES];
SDK v5では、アプリがバックグラウンドで動作している間にSDKがAdjustに情報を送信できるようにするには、引数なしで[ADJConfig enableSendingInBackground]
メソッドを呼び出す必要があります。
adjustConfig.enableSendingInBackground()
[adjustConfig enableSendingInBackground];
Disable AdServices information reading
SDK v4では、[ADJConfig setAllowAdServicesInfoReading]
メソッドにfalse
引数を付けて呼び出すことで、Adjust SDKがAdServices情報を読み取らないようにすることができます。
adjustConfig.setAllowAdServicesInfoReading(false)
[adjustConfig setAllowAdServicesInfoReading:NO];
SDK v5では、Adjust SDKがAdServices情報を読み取らないようにするには、引数なしでdisableAdServices
メソッドを呼び出す必要があります。
adjustConfig.disableAdServices()
[adjustConfig disableAdServices];
Disable IDFA reading
SDK v4では、[ADJConfig setAllowIdfaReading]
メソッドにfalse
引数を付けて呼び出すことで、Adjust SDKがデバイスのIDFAを読み取らないようにすることができます。
adjustConfig.setAllowIdfaReading(false)
[adjustConfig setAllowIdfaReading:NO];
SDK v5では、Adjust SDKがデバイスのIDFAを読み取らないようにするには、引数なしでdisableIdfaReading
メソッドを呼び出す必要があります。
adjustConfig.disableIdfaReading()
[adjustConfig disableIdfaReading];
Enable cost data in attribution
SDK v4では、[ADJConfig setNeedsCost]
メソッドにtrue
引数をつけて呼び出すことで、デバイスのアトリビューション情報のコストデータを有効化することができます。
adjustConfig.setNeedsCost(true)
[adjustConfig setNeedsCost:YES];
SDK v5では、引数なしで[ADJConfig enableCostDataInAttribution]
メソッドを呼び出す必要があります。
adjustConfig.enableCostDataInAttribution()
[adjustConfig enableCostDataInAttribution];
Enable LinkMe
SDK v4では、[ADJConfig setLinkMeEnabled]
メソッドにtrue
引数を付けて呼び出すことで、Adjust LinkMeを有効化できます。
adjustConfig.setLinkMeEnabled(true)
[adjustConfig setLinkMeEnabled:YES];
SDK v5では、引数なしで[ADJConfig enableLinkMe]
メソッドを呼び出す必要があります。
adjustConfig.enableLinkMe()
[adjustConfig enableLinkMe];
Only read device IDs once
SDK v4では、[ADJConfig setReadDeviceInfoOnceEnabled]
メソッドにtrue
引数を付けて呼び出すことで、起動時に1回だけデバイス識別子を読み込むようにSDKに指示することができます。
adjustConfig.setReadDeviceInfoOnceEnabled(true)
[adjustConfig setReadDeviceInfoOnceEnabled:YES];
SDK v5では、引数なしで[ADJConfig enableDeviceIdsReadingOnce]
メソッドを呼び出す必要があります。
adjustConfig.enableDeviceIdsReadingOnce()
[adjustConfig enableDeviceIdsReadingOnce];
Offline mode
SDK v4では、BOOL
引数で[Adjust setOfflineMode]
を呼び出すことで、SDKでオフラインモードを有効化・無効化することができます。
Adjust.setOfflineMode(true) // put the SDK in offline modeAdjust.setOfflineMode(false) // put the SDK back in online mode
[Adjust setOfflineMode:YES]; // put the SDK in offline mode[Adjust setOfflineMode:NO]; // put the SDK back in online mode
より明確にするため、SDK v5では、この機能は別々のコマンドに分割されています。
- SDKをオフラインモードに設定するには、
[Adjust switchToOfflineMode]
を呼び出します。 - SDKをオンラインモードに戻すには、
[Adjust switchBackToOnlineMode]
を呼び出します。
Adjust.switchToOfflineMode() // put the SDK in offline modeAdjust.switchBackToOnlineMode() // put the SDK back in online mode
[Adjust switchToOfflineMode]; // put the SDK in offline mode[Adjust switchBackToOnlineMode]; // put the SDK back in online mode
Push tokens
SDK v4では、[Adjust setDeviceToken]
メソッドを使用してPushトークンを設定できます。
func application(_ app: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { Adjust.setDeviceToken(deviceToken)}
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { [Adjust setDeviceToken:deviceToken];}
このメソッドはSDK v5では[Adjust setPushToken]
に改名されています。
func application(_ app: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken pushToken: Data) { Adjust.setPushToken(pushToken)}
- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)pushToken { [Adjust setPushToken:pushToken];}
Event buffering
SDK v4はイベントのバッファリングをサポートしています。この機能は、リクエストイベント、広告収益、Pushトークン、その他の情報をローカルバッファに保存し、後日送信します。
Adjust.setEventBufferingEnabled(true)
[adjustConfig setEventBufferingEnabled:YES];
この設定はSDK v5では廃止されています。
Custom user agent string
SDK v4は、ユーザーエージェント文字列で[AdjustConfig setUserAgent]
を呼び出すことによるカスタムユーザーエージェントの設定をサポートしています。
adjustConfig.setUserAgent("user_agent_value")
[adjustConfig setUserAgent:@"user_agent_value"];
この設定はSDK v5では廃止されています。
Set an App Secret
SDK v4 supports setting an App Secret by calling setAppSecret
method on your ADJConfig
instance to sign the SDK traffic with.
adjustConfig.setAppSecret(secretId, info1: info1, info2: info2, info3: info3, info4: info4)
[adjustConfig setAppSecret:secretId info1:info1 info2:info2 info3:info3 info4:info4];
この設定はSDK v5では廃止されています。
Set whether a device is known
SDK v4では、[AdjustConfig setIsDeviceKnown];
メソッドを呼び出して、既知のデバイスかどうかをSDKに手動で通知することができます。
adjustConfig.setIsDeviceKnown(true)
[adjustConfig setIsDeviceKnown:YES];
この設定はSDK v5では廃止されています。
Delay SDK start
SDK v4では、[AdjustConfig setDelayStart];
を最大 10秒 遅延させて呼び出すことで、SDKの開始を遅延させることができます。
adjustConfig.setDelayStart(10)
[adjustConfig setDelayStart:10];
この設定はSDK v5では廃止されています。
Recording features
このセクションでは、Adjustに情報を送信する機能の変更点について説明します。
Session callback parameters
SDK v4では、[Adjust addSessionCallbackParameter]
メソッドにキーと値のペアをパスすることでセッションパラメーターを追加し、[Adjust removeSessionCallbackParameter]
メソッドを使用して個々のパラメーターを削除することができます。
Adjust.addSessionCallbackParameter("foo", value: "bar")Adjust.removeSessionCallbackParameter("foo")Adjust.resetSessionCallbackParameters()
[Adjust addSessionCallbackParameter:@"foo" value:@"bar"];[Adjust removeSessionCallbackParameter:@"foo"];[Adjust resetSessionCallbackParameters];
SDK v5では、セッションパラメーターはグローバルパラメーターに改名されています。SDK v5では、キーと値を位置引数として代入する代わりに、forKey
インスタンスメソッドを使用してキーに値を代入します。
Adjust.addGlobalCallbackParameter("bar", forKey: "foo")Adjust.removeGlobalCallbackParameter(forKey: "foo")Adjust.removeGlobalCallbackParameters()
[Adjust addGlobalCallbackParameter:@"bar" forKey:@"foo"];[Adjust removeGlobalCallbackParameterForKey:@"foo"];[Adjust removeGlobalCallbackParameters];
Session partner parameters
SDK v4では、[Adjust addSessionPartnerParameter]
メソッドにキーと値のペアをパスすることでセッション パートナー パラメーターを追加し、[Adjust removeSessionPartnerParameter]
メソッドを使用して個々のパラメーターを削除することができます。
Adjust.addSessionPartnerParameter("foo", value: "bar")Adjust.removeSessionPartnerParameter("foo")Adjust.resetSessionPartnerParameters()
[Adjust addSessionPartnerParameter:@"foo" value:@"bar"];[Adjust removeSessionPartnerParameter:@"foo"];[Adjust resetSessionPartnerParameters];
SDK v5では、セッション パートナー パラメーターはグローバル パートナー パラメーターに改名されました。SDK v5では、キーと値を位置引数として代入する代わりに、forKey
インスタンスメソッドを使用してキーに値を代入します。
Adjust.addGlobalPartnerParameter("bar", forKey: "foo")Adjust.removeGlobalPartnerParameter(forKey: "foo")Adjust.removeGlobalPartnerParameters()
[Adjust addGlobalPartnerParameter:@"bar" forKey:@"foo"];[Adjust removeGlobalPartnerParameterForKey:@"foo"];[Adjust removeGlobalPartnerParameters];
Send subscription information
SDK v4では、ADJSubscription
クラスを使ってAdjustに送信するサブスクリプション情報のペイロードを作成することができます。
let subscription = ADJSubscription( price: price, currency: currency, transactionId: transactionId, andReceipt: receipt)
ADJSubscription *subscription = [[ADJSubscription alloc] initWithPrice:price currency:currency transactionId:transactionId];
より明確にするため、SDK v5では、このクラスはADJAppStoreSubscription
に改名されました。
let subscription = ADJAppStoreSubscription( price: price, currency: currency, transactionId: transactionId)
ADJAppStoreSubscription *subscription = [[ADJAppStoreSubscription alloc] initWithPrice:price currency:currency transactionId:transactionId];
Event deduplication
SDK v4では、イベント重複排除はイベントtransaction ID
と組み合わされ、最大10個のユニークIDに制限されています。
let event = ADJEvent(eventToken: "eventToken")event.setTransactionId("deduplication_id")Adjust.trackEvent(event)
ADJEvent *event = [ADJEvent eventWithEventToken:@"event_token"];[event setTransactionId:@"deduplication_id"];[Adjust trackEvent:event];
SDK v5では、この機能はtransaction ID
から切り離され、イベント重複排除のためにdeduplicationId
という新しいIDフィールドが追加されました。ユーザーは、重複イベントを識別するためにリストに追加可能なdeduplicationId
の数にカスタム制限を設定できます。デフォルトでは、制限は 10 に設定されています。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
adjustConfig.setEventDeduplicationIdsMaxSize(20)Adjust.initSdk(adjustConfig)
let event = ADJEvent(eventToken: "event_token")event.setDeduplicationId("deduplication_id")Adjust.trackEvent(event)
NSString *yourAppToken = @"{YourAppToken}";NSString *environment = ADJEnvironmentSandbox;ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:yourAppToken environment:environment];
[adjustConfig setEventDeduplicationIdsMaxSize:20];[Adjust initSdk:adjustConfig];
ADJEvent *event = [[ADJEvent alloc] initWithEventToken:kEventToken3];[event setDeduplicationId:@"deduplication_id"];[Adjust trackEvent:event];
AdjustAttribution class
SDK v4では、AdjustAttribution
コールはadid
というプロパティを持ちます。SDK v5 では、AdjustAttribution
クラスからadid
プロパティが削除されました。デバイスのADIDを取得するには、[Adjust adidWithCompletionHandler]
ゲッターメソッドを使用してください。
Deep linking
Reattribution using deep links
SDK v4では、[Adjust appWillOpenUrl]
メソッドにディープリンク情報をパスすることができます。
func application( _ app: UIApplication, open incomingURL: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:] ) -> Bool {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers Adjust.appWillOpen(incomingURL)
return true}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)incomingURL options:(NSDictionary *)options {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers [Adjust appWillOpenUrl:incomingURL];
return YES;}
SDK v5では、わかりやすくするためにこれは[Adjust processDeeplink]
に改名されています。
func application( _ app: UIApplication, open incomingURL: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:] ) -> Bool {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers Adjust.processDeeplink(ADJDeeplink(deeplink: incomingURL))
return true}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)incomingURL options:(NSDictionary *)options {
// add your code below to handle deep link // (for example, open deep link content) // incomingURL object contains the deep link
// call the below method to send deep link to Adjust's servers [Adjust processDeeplink:[[ADJDeeplink alloc] initWithDeeplink:incomingURL]];
return YES;}
Deferred deep linking callback
SDK v4では、adjustDeepLinkResponse
メソッドを呼び出してディファード ディープリンク コールバックを処理できます。
func adjustDeeplinkResponse(_ deeplink: URL?) -> Bool { print("Deferred deep link callback called!") print(String(format: "Deferred deep link URL: %@", deeplink.absoluteString))
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return false instead. return true}
- (BOOL)adjustDeeplinkResponse:(NSURL *)deeplink { NSLog(@"Deferred deep link callback called!"); NSLog(@"Deferred deep link URL: %@", [deeplink absoluteString]);
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return NO; instead. return YES;}
より明確にするため、SDK v5では、このメソッドはadjustDeferredDeeplinkReceived
に改名されています。全ての引数は同じです。
func adjustDeferredDeeplinkReceived(_ deeplink: URL?) -> Bool { print("Deferred deep link callback called!") print(String(format: "Deferred deep link URL: %@", deeplink.absoluteString))
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return false instead. return true}
- (BOOL)adjustDeferredDeeplinkReceived:(NSURL *)deeplink { NSLog(@"Deferred deep link callback called!"); NSLog(@"Deferred deep link URL: %@", [deeplink absoluteString]);
// Allow Adjust SDK to open received deferred deep link. // If you don't want it to open it, return NO; instead. return YES;}
Privacy features
このセクションでは、Adjust SDKのプライバシー機能の変更点について説明します。
COPPA compliance
SDK v4では、ブーリアン値でADJConfig
インスタンスのsetCoppaCompliantEnabled
メソッドを呼び出すことで、アプリをCOPPAに準拠していることをマークできます。
adjustConfig.setCoppaCompliantEnabled(true)
[adjustConfig setCoppaCompliantEnabled:YES];
SDK v5では、このメソッドはenableCoppaCompliance
に改名されています。このメソッドは引数を取りません。
adjustConfig?.enableCoppaCompliance()
[adjustConfig enableCoppaCompliance];
Send ad revenue from a specific source
SDK v4では、広告収益ソースはADJConfig
クラスの定数として定義されています。SDK v5では、広告収益ソースは文字列としてパスされる必要があります。
let adRevenue = ADJAdRevenue(source: ADJAdRevenueSourceAppLovinMAX); //v4let adRevenue = ADJAdRevenue(source: "applovin_max_sdk") //v5
ADJAdRevenue *revenue = [[ADJAdRevenue alloc] initWithSource:ADJAdRevenueSourceAppLovinMAX]; // v4ADJAdRevenue *adRevenue = [[ADJAdRevenue alloc] initWithSource:@"applovin_max_sdk"]; // v5
v4 | v5 |
---|---|
ADJAdRevenueSourceAppLovinMAX | "applovin_max_sdk" |
ADJAdRevenueSourceAdMob | "admob_sdk" |
ADJAdRevenueSourceIronSource | "ironsource_sdk" |
ADJAdRevenueSourceAdMost | "admost_sdk" |
ADJAdRevenueSourceUnity | "unity_sdk" |
ADJAdRevenueSourceHeliumChartboost | "helium_chartboost_sdk" |
ADJAdRevenueSourceADX | "adx_sdk" |
ADJAdRevenueSourcePublisher | "publisher_sdk" |
ADJAdRevenueSourceTradplus | "tradplus_sdk" |
ADJAdRevenueSourceTopOn | "topon_sdk" |
ADJAdRevenueSourceMopub | "mopub" |
Set data residency and URL strategy
SDK v4では、URL戦略とデータレジデンシードメインはADJConfig
クラスの定数として定義されています。
[adjustConfig setUrlStrategy:ADJDataResidencyEU];
SDK v5では、選択したドメインを配列としてパスする必要があります。また、以下を設定することもできます:
useSubdomains
(BOOL
):ドメインをAdjustドメインとして扱うかどうか。true
の場合、SDKはAdjust固有のサブドメインをドメインにプレフィックスとします。false
の場合、SDKはプレフィックスを追加せずに、指定されたドメインをそのまま使用します。isDataResidency
(BOOL
):ドメインをデータレジデンシーに使用するかどうか。
NSArray *domain = [];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:YES];
SDK v5でURL戦略を設定する方法については、以下の表をご確認ください。
v4 | v5 - メインおよびフォールバックドメイン | v5 - サブドメインの使用 | v5 - データレジデンシー |
---|---|---|---|
ADJDataResidencyEU | "eu.adjust.com" | true | true |
ADJDataResidencyTR | "tr.adjust.com" | true | true |
ADJDataResidencyUS | "us.adjust.com" | true | true |
ADJUrlStrategyChina | "adjust.world" 、 "adjust.com" | true | false |
ADJUrlStrategyCn | "adjust.cn" 、 "adjust.com" | true | false |
ADJUrlStrategyCnOnly | "adjust.cn" | true | false |
ADJUrlStrategyIndia | "adjust.net.in" 、 "adjust.com" | true | false |
Examples
let domain = ["adjust.net.in", "adjust.com"]adjustConfig.setUrlStrategy(domain, useSubdomains: true, isDataResidency: false)
let domain = ["adjust.world", "adjust.com"]adjustConfig.setUrlStrategy(domain, useSubdomains: true, isDataResidency: false)
let domain = ["adjust.cn"]adjustConfig.setUrlStrategy(domain, useSubdomains: true, isDataResidency: false)
let domain = ["eu.adjust.com"]adjustConfig.setUrlStrategy(domain, useSubdomains: true, isDataResidency: true)
let domain = ["tr.adjust.com"]adjustConfig.setUrlStrategy(domain, useSubdomains: true, isDataResidency: true)
let domain = ["us.adjust.com"]adjustConfig.setUrlStrategy(domain, useSubdomains: true, isDataResidency: true)
NSArray *domain = [[NSArray alloc] initWithObjects:@"adjust.net.in", @"adjust.com", nil];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:NO];
NSArray *domain = [[NSArray alloc] initWithObjects:@"adjust.world", @"adjust.com", nil];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:NO];
NSArray *domain = [[NSArray alloc] initWithObjects:@"adjust.cn", nil];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:NO];
NSArray *domain = [[NSArray alloc] initWithObjects:@"eu.adjust.com", nil];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:YES];
NSArray *domain = [[NSArray alloc] initWithObjects:@"tr.adjust.com", nil];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:YES];
NSArray *domain = [[NSArray alloc] initWithObjects:@"us.adjust.com", nil];[adjustConfig setUrlStrategy:domain useSubdomains:YES isDataResidency:YES];
Disable third party sharing globally
SDK v4では、Adjust.disableThirdPartySharing()
メソッドを呼び出すことで、サードパーティとの情報共有をグローバルに無効化することができます。
Adjust.disableThirdPartySharing()
[Adjust disableThirdPartySharing];
この機能はSDK v5では削除されました。SDK v5では、[Adjust trackThirdPartySharing]
メソッドを使用してサードパーティとのデータ共有を有効化または無効化できます。
let adjustThirdPartySharing = ADJThirdPartySharing.initWithIsEnabled(false)Adjust.trackThirdPartySharing(adjustThirdPartySharing)
ADJThirdPartySharing *adjustThirdPartySharing = [[ADJThirdPartySharing alloc] initWithIsEnabled:@NO];[Adjust trackThirdPartySharing:adjustThirdPartySharing];
SKAdNetwork and ATT
このセクションでは、SDK v5におけるSKAdNetworkとApp Tracking Transparency(ATT)機能の変更点について説明します。
Disable SKAdNetwork communication
SDK v4では、[ADJConfig deactivateSKAdNetworkHandling]
メソッドを呼び出すことで、SDKがSKAdNetworkと通信しないようにすることができます。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
adjustConfig.deactivateSKAdNetworkHandling()
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:@"{YourAppToken}" environment:ADJEnvironmentSandbox];
[adjustConfig deactivateSKAdNetworkHandling];
より明確にするため、SDK v5では、このメソッドは[ADJConfig disableSkanAttribution]
に改名されています。
let yourAppToken = "{YourAppToken}"let environment = ADJEnvironmentSandbox as? Stringlet adjustConfig = ADJConfig( appToken: yourAppToken, environment: environment)
adjustConfig.disableSkanAttribution()
ADJConfig *adjustConfig = [[ADJConfig alloc] initWithAppToken:@"{YourAppToken}" environment:ADJEnvironmentSandbox];
[adjustConfig disableSkanAttribution];
Check for authorization status change
SDK v4では、[Adjust checkForNewAttStatus]
メソッドを使ってSDKにユーザーのATTステータスを読み込ませ、Adjustのサーバーに情報を転送することができます。
Adjust.checkForNewAttStatus()
[Adjust checkForNewAttStatus];
このメソッドはSDK v5では廃止されています。
Listen for conversion value updates
SDK v4では、adjustConversionValueUpdated
メソッドを使用してSKAdNetworkのアップデートを受信することができます。
func adjustConversionValueUpdated(_ conversionValue: NSNumber) { print("Conversion value updated callback called!") print(String(format: "Conversion value: %@", conversionValue))}
func adjustConversionValueUpdated(_ fineValue: NSNumber, coarseValue: String, lockWindow: NSNumber) { print("Conversion value updated callback called!") print(String(format: "Conversion value: %@", fineValue)) print(String(format: "Coarse value: %@", coarseValue)) print(String(format: "Lock window: %@", lockWindow))}
- (void)adjustConversionValueUpdated:(NSNumber *)conversionValue { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value: %@", conversionValue);}
- (void)adjustConversionValueUpdated:(NSNumber *)fineValue coarseValue:(NSString *)coarseValue lockWindow:(NSNumber *)lockWindow { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value: %@", conversionValue); NSLog(@"Coarse value: %@", coarseValue); NSLog(@"Lock window: %@", lockWindow);}
SDK v5では、これら2つのメソッドは、型付けされていない辞書を返す単一のadjustSkanUpdatedWithConversionData
メソッドに置き換えられました。現在サポートされているキーは以下の通りです:
conversion_value
: The updated conversion value.coarse_value
: The updated coarse conversion valuelock_window
: Whether to send the postback before the conversion window endserror
: Any error message returned by the update.
func adjustSkanUpdated(withConversionData data: [String: String]) { print("Conversion value updated callback called!") print(String(format: "Conversion value dictionary: \n%@", data.description))}
- (void)adjustSkanUpdatedWithConversionData:(NSDictionary<NSString *, NSString *> *)data { NSLog(@"Conversion value updated callback called!"); NSLog(@"Conversion value dictionary: \n%@", data.description);}
Update conversion values
SDK v4では、updateConversionValue
メソッドを使ってAdjustに更新されたconversion valueを送ることができます。このメソッドはAppleが廃止したupdateConversionValue
メソッドをラップするため、SDK v5では削除されています。
SDK v5でconversion valueを更新するには、以下の引数で[Adjust updateSkanConversionValue]
メソッドを使用します:
conversionValue
(NSInteger
):更新されたconversion valuecoarseValue
(NSString
):更新された粗いconversion valuelockWindow
(BOOL
):コンバージョン期間が終了する前にポストバックを送信するかどうか
Adjust.updateSkanConversionValue( 1, coarseValue: SKAdNetwork.CoarseConversionValue.low, lockWindow: false) { error in if let error { print(String(format: "An error occurred during completion: %@", error)) }}
[Adjust updateSkanConversionValue:1 coarseValue:SKAdNetworkCoarseConversionValueLow lockWindow:NO withCompletionHandler:^(NSError *_Nullable error) { NSLog(@"An error occurred during completion: %@", error);}];
App Tracking Transparency authorization wrapper
SDK v4では、[Adjust requestTrackingAuthorizationWithCompletionHandler]
メソッドを使用してユーザーのATT認証ステータスの変更を処理できます。
Adjust.requestTrackingAuthorization() { status in switch status { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break case 1: // ATTrackingManagerAuthorizationStatusRestricted case break case 2: // ATTrackingManagerAuthorizationStatusDenied case break case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break default: break }}
[Adjust requestTrackingAuthorizationWithCompletionHandler:^(NSUInteger status) { switch (status) { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break; case 1: // ATTrackingManagerAuthorizationStatusRestricted case break; case 2: // ATTrackingManagerAuthorizationStatusDenied case break; case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break; }}];
より明確にするため、SDK v5では、これは[Adjust requestAppTrackingAuthorizationWithCompletionHandler]
に改名されました。
Adjust.requestAppTrackingAuthorization { status in switch status { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break case 1: // ATTrackingManagerAuthorizationStatusRestricted case break case 2: // ATTrackingManagerAuthorizationStatusDenied case break case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break default: break }}
[Adjust requestAppTrackingAuthorizationWithCompletionHandler:^(NSUInteger status) { switch (status) { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break; case 1: // ATTrackingManagerAuthorizationStatusRestricted case break; case 2: // ATTrackingManagerAuthorizationStatusDenied case break; case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break; }}];
Get device information
SDK v4では、全てのデバイス情報ゲッターメソッドは同期的に実行されます。SDK v5では、これらのメソッドは非同期に実行されるように変更されまています。非同期処理の完了時に情報を処理するコールバック関数を追加することができます。
Adjust.adid() { adid in // add your completion handler};
Adjust.idfa() { idfa in // add your completion handler};
Adjust.idfv() { idfv in // add your completion handler};
Adjust.sdkVersion() { sdkVersion in // add your completion handler};
Adjust.isEnabled() { isEnabled in // add your completion handler};
Adjust.attribution() { attribution in // add your completion handler}
[Adjust adidWithCompletionHandler:^(NSString * _Nullable adid) { // add your completion handler}];
[Adjust idfaWithCompletionHandler:^(NSString * _Nullable idfa) { // add your completion handler}];
[Adjust idfvWithCompletionHandler:^(NSString * _Nullable idfv) { // add your completion handler}];
[Adjust sdkVersionWithCompletionHandler:^(NSString * _Nullable sdkVersion) { // add your completion handler}];
[Adjust isEnabledWithCompletionHandler:^(BOOL isEnabled) { // add your completion handler}];
[Adjust attributionWithCompletionHandler:^(ADJAttribution * _Nullable attribution) { // add your completion handler}
Plugins
Adjust SDKは機能を拡張するプラグインをサポートしています。このセクションでは、SDK v5でのプラグインに関する変更点を説明します。
Removed plugins
SDK v5では以下のプラグインが削除されました:
- Criteo
- Trademob
- Sociomantic