adjust-icon

SDK v5移行ガイド

事前準備

SDK v5にアップデートする前に、以下を行ってください。

  1. Adjust SDK v5は、 SDKシグネチャーの検証をネイティブでサポートしています。現在、SDKシグネチャーライブラリを使用している場合は、まずシグネチャーライブラリをアプリから削除する必要があります。

  2. SDK v5の最小サポート対象APIバージョンが更新されました。以前のバージョンをターゲットにしている場合は、まずアプリをアップデートする必要があります。

    • iOS: 12.0
    • Android: 21

SDKをインストール

SDK v5の使用を開始するには、XCodeプロジェクトにdependencyとしてSDK v5を追加する必要があります。pubspec.yamlファイルに以下のdependencyを追加します:

pubspec.yaml
dependencies:
adjust_sdk: ^5.0.0

変更内容

v5 SDKをインストールしたら、新しいAPIを使用するために既存のAdjustコードを更新する必要があります。

初期化メソッド

SDK v4では、初期化メソッドはAdjust.startです。SDK v5ではAdjust.initSdkに変更されています。

Adjust.start(adjustConfig); // v4
Adjust.initSdk(adjustConfig); // v5

設定

このセクションでは、SDK設定の変更について説明します。

SDKを無効化・有効化する

SDK v4では、bool値でAdjust.setEnabledを呼び出すことで、SDKを有効化・無効化することができます。

Adjust.setEnabled(false); // disable SDK
Adjust.setEnabled(true); // enable SDK

より明確にするため、SDK v5では、この機能は別々のコマンドに分割されています。

  • SDKを無効化するには、Adjust.disableを呼び出します。
  • SDKを有効化するには、Adjust.enableを呼び出します。
Adjust.disable();
Adjust.enable();

バックグラウンドで情報を送信する

SDK v4では、adjustConfigインスタンスのsendInBackgroundプロパティをtrueに設定し、アプリがバックグラウンドで動作している間にSDKがAdjustに情報を送信できるようにする必要があります。

adjustConfig.sendInBackground = true;

SDK v5では、adjustConfigインスタンスのisSendingInBackgroundEnabledプロパティをtrueに設定し、アプリがバックグラウンドで動作している間にSDKがAdjustに情報を送信できるようにする必要があります。

adjustConfig.isSendingInBackgroundEnabled = true;

プリインストールアプリ計測

SDK v4では、 adjustConfigインスタンスのpreinstallTrackingEnabledプロパティをtrueに設定し、プリインストールアプリの計測を有効化することができます。

adjustConfig.preinstallTrackingEnabled = true;

SDK v5でプリインストールアプリの計測を有効化するには、 adjustConfigインスタンスのisPreinstallTrackingEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isPreinstallTrackingEnabled = true;

AdServices情報の読み取りを無効化する

SDK v4でAdjust SDKがAdServices情報を読み取らないようにするには、adjustConfigインスタンスのallowAdServicesInfoReadingプロパティをfalseに設定します。

adjustConfig.allowAdServicesInfoReading = false;

SDK v5でAdjust SDKがAdServices情報を読み取らないようにするには、 adjustConfigインスタンスのisAdServicesEnabledプロパティをfalseに設定する必要があります。

adjustConfig.isAdServicesEnabled = false;

IDFAの読み取りを無効化する

SDK v4でAdjust SDKがデバイスのIDFAを読み取らないようにするには、 adjustConfigインスタンスのallowIdfaReadingプロパティをfalseに設定する必要があります。

adjustConfig.allowIdfaReading = false;

SDK v5でAdjust SDKがデバイスのIDFAを読み取らないようにするには、 adjustConfigインスタンスのisIdfaReadingEnabledプロパティをfalseに設定する必要があります。

adjustConfig.isIdfaReadingEnabled = false;

アトリビューションにコストデータを有効化する

SDK v4でデバイスのアトリビューション情報のコストデータを有効化するには、 adjustConfigインスタンスのneedsCostプロパティをtrueに設定する必要があります。

adjustConfig.needsCost = true;

SDK v5でデバイスのアトリビューション情報のコストデータを有効化するには、adjustConfigインスタンスのisCostDataInAttributionEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isCostDataInAttributionEnabled = true;

LinkMeを有効化する

SDK v4でAdjust LinkMeを有効化するには、 adjustConfigインスタンスのlinkMeEnabledプロパティをtrueに設定します。

adjustConfig.linkMeEnabled = true;

SDK v5でAdjust LinkMeを有効化するには、 adjustConfigインスタンスのisLinkMeEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isLinkMeEnabled = true;

デバイスIDを1回だけ読み取る

SDK v4では、adjustConfigインスタンスのreadDeviceInfoOnceEnabledプロパティをtrueに設定し、SDKがデバイスIDを1回だけ読み取るように指示することができます。

adjustConfig.readDeviceInfoOnceEnabled = true;

SDK v5でSDKがディープリンクを開くには、 adjustConfigインスタンスのisDeviceIdsReadingOnceEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isDeviceIdsReadingOnceEnabled = true;

オフラインモード

SDK v4では、bool引数でAdjust.setOfflineModeを呼び出すことで、SDKでオフラインモードを有効化・無効化することができます。

Adjust.setOfflineMode(true);
Adjust.setOfflineMode(false);

より明確にするため、SDK v5では、この機能は別々のコマンドに分割されています。

  • SDKをオフラインモードに設定するには、Adjust.switchToOfflineModeを呼び出します。
  • SDKをオンラインモードに戻すには、Adjust.switchBackToOnlineModeを呼び出します。
Adjust.switchToOfflineMode(); // Put the SDK in offline mode
Adjust.switchBackToOnlineMode(); // Put the SDK back in online mode

イベントバッファリング

SDK v4はイベントのバッファリングをサポートしています。この機能は、リクエストイベント、広告収益、Pushトークン、その他の情報をローカルバッファに保存し、後日送信します。

adjustConfig.eventBufferingEnabled = true;

SDK v5では、この設定はご利用いただけません。

カスタムユーザーエージェント文字列

SDK v4は、adjustConfigインスタンスのuserAgentプロパティにユーザーエージェント文字列を割り当てることで、カスタムユーザーエージェントの設定をサポートしています。

adjustConfig.userAgent = 'custom-user-agent';

SDK v5では、この設定はご利用いただけません。

既知のデバイスかどうかを設定する

SDK v4では、adjustConfigインスタンスのisDeviceKnownメソッドを呼び出して、既知のデバイスかどうかをSDKに手動で通知することができます。

adjustConfig.isDeviceKnown = true;

SDK v5では、この設定はご利用いただけません。

SDKの起動開始を遅延させる

SDK v4では、 adjustConfigインスタンスのdelayStartプロパティを遅延するように設定することで、SDKの起動を遅らせることができます。最大 10秒 の遅延を設定できます。

adjustConfig.delayStart = 10;

この設定は、 Adjust.checkForNewAttStatusメソッドを含むSDK v5では削除されています。このメソッドを呼び出すと、SDKは遅延を解除し、機能を継続します。

Android最終アトリビューション

SDK v4では、adjustConfigインスタンスのfinalAndroidAttributionEnabledプロパティをtrueに設定して、最終的なAndroidでのアトリビューションを送信することができます。

adjustConfig.finalAndroidAttributionEnabled = true;

この設定はSDK v5では削除されました。現在では、Androidプラットフォームでは最終的なアトリビューションのみがアトリビューションコールバックを通じて提供されるようになっています。

AdjustEvent の変更

SDK v4では、サブスクリプションと購入のためにreceiptadjustEventadjustEvent.receiptプロパティに送信できます。

adjustEvent.receipt = 'receipt';

購入認証に必要がなくなったため、このクラスのプロパティはSDK v5で削除されました。

記録機能

このセクションでは、Adjustに情報を送信する機能の変更点について説明します。

セッションコールバックパラメーター

SDK v4では、Adjust.addSessionCallbackParameterメソッドにキーと値のペアをパスすることでセッションパラメーターを追加し、Adjust.removeSessionCallbackParameterメソッドを使用して個々のパラメーターを削除することができます。

Adjust.addSessionCallbackParameter('key', 'value');
Adjust.removeSessionCallbackParameter('key');
Adjust.resetSessionCallbackParameters();

SDK v5では、セッションパラメーターはグローバルパラメーターに改名されています。

Adjust.addGlobalCallbackParameter('key', 'value');
Adjust.removeGlobalCallbackParameter('key');
Adjust.removeGlobalCallbackParameters();

セッションパートナーパラメーター

SDK v4では、Adjust.addSessionPartnerParameterメソッドにキーと値のペアをパスすることでセッション パートナー パラメーターを追加し、Adjust.removeSessionPartnerParameterメソッドを使用して個々のパラメーターを削除することができます。

Adjust.addSessionPartnerParameter('key', 'value');
Adjust.removeSessionPartnerParameter('key');
Adjust.resetSessionPartnerParameters();

SDK v5では、セッション パートナー パラメーターはグローバル パートナー パラメーターに改名されました。

Adjust.addGlobalPartnerParameter('key', 'value');
Adjust.removeGlobalPartnerParameter('key');
Adjust.removeGlobalPartnerParameters();

サブスクリプション情報を送信する

このセクションでは、Adjust SDKのサブスクリプション送信に関する変更について説明します。

App Storeのサブスクリプション

SDK v4では、 AdjustAppStoreSubscriptionオブジェクトを設定することで新しいサブスクリプションを設定できます。このオブジェクトは、 pricecurrencytransactionIdreceiptの4つの引数で初期化されます。

AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription(
price,
currency,
transactionId,
receipt);

SDK v5では、購入認証に receipt 引数が不要になったため、引数をパスする必要はありません。

AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription(
price,
currency,
transactionId);

App Storeでの購入

SDK v4では、 AdjustAppStorePurchaseオブジェクトを設定することで新しい購入を設定できます。このオブジェクトは3つの引数receiptproduct IDtransaction IDで初期化されます。

AdjustAppStorePurchase purchase = new AdjustAppStorePurchase(receipt, productId, transactionId);

SDK v5では、購入認証に receipt 引数が不要になったため、引数をパスする必要はありません。

AdjustAppStorePurchase purchase = new AdjustAppStorePurchase(productId, transactionId);

Play ストア サブスクリプション

SDK v4では、 setPurchaseTimeメソッドにタイムスタンプをパスすることで、ユーザーがサブスクリプションを購入した日付を記録できます。

adjustPlayStoreSubscription.setPurchaseTime('purchase-time');

SDK v5では、ユーザーがサブスクリプションを購入した日を記録するには、 adjustPlayStoreSubscriptionインスタンスのpurchaseTimeプロパティにタイムスタンプを割り当てる必要があります。

adjustPlayStoreSubscription.purchaseTime = 'purchase-time';

このセクションでは、Adjust SDKのサブスクリプション送信に関する変更について説明します。

SDK v4では、Adjust.appWillOpenUrlメソッドにディープリンク情報をパスすることができます。

Adjust.appWillOpenUrl('url');

SDK v5では、Adjust.processDeeplinkに改名されています。ディープリンクを作成するための新しいAdjustDeeplinkクラスが追加されました。ディープリンクを処理するには、ディープリンクURLでAdjustDeeplinkオブジェクトをインスタンス化し、 Adjust.processDeeplinkメソッドにパスしてください。

Adjust.processDeeplink(new AdjustDeeplink('url'));

SDK v4では、SDKがディープリンクを開けるようにするには、 adjustConfigインスタンスのlaunchDeferredDeeplinkプロパティをtrueに設定することができます。

adjustConfig.launchDeferredDeeplink = true;

SDK v5でSDKがディープリンクを開けるようにするには、 adjustConfigインスタンスのisDeferredDeeplinkOpeningEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isDeferredDeeplinkOpeningEnabled = true;

SDK v4では、 urlprocessDeeplinkメソッドにパスすることで、短縮されたディープリンクを解決できます。

Adjust.processDeeplink('url').then((resolvedLink) {
// resolvedLink is the unshortened link
};

SDK v5では、ディープリンクurlで初期化されたAdjustDeeplinkオブジェクトを送信する必要があります。これが、短縮されていない元のディープリンクを返します。

Adjust.processAndResolveDeeplink(new AdjustDeeplink('url')).then((resolvedLink) {
// resolvedLink is the unshortened link
};

プライバシー機能

このセクションでは、Adjust SDKのプライバシー機能の変更点について説明します。

児童オンラインプライバシー保護法(COPPA)コンプライアンス

SDK v4では、adjustConfigインスタンスのcoppaCompliantEnabledプロパティをtrueに設定して、COPPAコンプライアンスを有効にすることができます。

adjustConfig.coppaCompliantEnabled = true;

SDK v5では、COPPAコンプライアンスを有効にするには、adjustConfigインスタンスのisCoppaComplianceEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isCoppaComplianceEnabled = true;

Playストアの子供向けアプリ

SDK v4では、 adjustConfigインスタンスのplayStoreKidsAppEnabledプロパティをtrueに設定して、アプリをPlay Storeの子供向けアプリとしてマークすることができます。このプロパティはSDKの初期化中に読み込まれるため、SDKを初期化したら値を更新することはできません。

adjustConfig.playStoreKidsAppEnabled = true;

SDK v5では、コンプライアンスを有効にするには、adjustConfigインスタンスのisPlayStoreKidsComplianceEnabledプロパティをtrueに設定する必要があります。

adjustConfig.isPlayStoreKidsComplianceEnabled = true;

データレジデンシーとURL戦略を設定する

SDK v4では、URL戦略とデータレジデンシーのドメインはadjustConfigクラスの定数として定義されています。

adjustConfig.setUrlStrategy(AdjustConfig.DataResidencyEU);

SDK v5では、選択したドメインまたはドメインを配列としてパスする必要があります。以下も設定してください。

  • useSubdomainsbool):ドメインをAdjustドメインとして扱うかどうかを指定します。trueの場合、SDKはドメインにAdjust固有のサブドメインを追加します。falseの場合、SDKはプレフィックスを追加せずに、指定されたドメインをそのまま使用します。
  • isDataResidencybool):ドメインをデータレジデンシーに使用するかどうか。
adjustConfig.setUrlStrategy(['eu.adjust.com'], true, true);

SDK v5でURL戦略を設定する方法については、以下の表をご確認ください。

インド URL戦略
adjustConfig.setUrlStrategy(['adjust.net.in', 'adjust.com'], true, false);
中国 URL戦略
adjustConfig.setUrlStrategy(['adjust.world', 'adjust.com'], true, false);
中国限定 URL設定
adjustConfig.setUrlStrategy(['adjust.cn'], true, false);
EU URL戦略
adjustConfig.setUrlStrategy(['eu.adjust.com'], true, true);
トルコURL戦略
adjustConfig.setUrlStrategy(['tr.adjust.com'], true, true);
US URL戦略
adjustConfig.setUrlStrategy(['us.adjust.com'], true, true);

サードパーティーとの共有に関する変更

このセクションでは、SDK v5でのサードパーティ共有機能の変更について説明します。

サードパーティとの共有をグローバルに無効化する

SDK v4では、Adjust.disableThirdPartySharingメソッドを呼び出すことで、サードパーティとの情報共有をグローバルに無効化することができます。

Adjust.disableThirdPartySharing();

この機能はSDK v5では削除されました。SDK v5では、Adjust.trackThirdPartySharingメソッドを使用してサードパーティとのデータ共有を有効化または無効化できます。

AdjustThirdPartySharing thirdPartySharing = new AdjustThirdPartySharing(false);
Adjust.trackThirdPartySharing(thirdPartySharing);

広告収益

このセクションでは、SDK v5でのディープリンクに関する変更点を説明します。

広告収益の記録

SDK v4では、 sourcepayloadを引数としてパスし、 trackAdRevenueメソッドを呼び出すことで広告収益を記録できます。

Adjust.trackAdRevenue('source', 'payload');

SDK v4の更新されたメソッドを使用すると、 sourceで新しいAdjustAdRevenueオブジェクトを作成し、このオブジェクトをtrackAdRevenueNewメソッドにパスすることで広告収益を記録できます。

AdjustAdRevenue adRevenue = new AdjustAdRevenue('source');
adRevenue.setRevenue(6, 'CAD');
Adjust.trackAdRevenueNew(adRevenue);

SDK v5では、 sourceで新しいAdjustAdRevenueオブジェクトを作成し、このオブジェクトをtrackAdRevenueメソッドにパスすることで広告収益を記録する必要があります。

AdjustAdRevenue adRevenue = new AdjustAdRevenue('source');
adRevenue.setRevenue(6, 'CAD');
Adjust.trackAdRevenue(adRevenue);

特定のソースの広告収益を送信する

SDK v4では、広告収益ソースはadjustConfigクラスの定数として定義されています。SDK v5では、広告収益ソースは文字列としてパスされる必要があります。

AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdRevenueSourceAppLovinMAX);
AdjustAdRevenue adRevenue = new AdjustAdRevenue('applovin_max_sdk');

SKAdNetworkとATT

このセクションでは、SDK v5におけるSKAdNetworkとApp Tracking Transparency(ATT)機能の変更点について説明します。

SKAdNetworkの通信を無効化する

SDK v4では、adjustConfig.deactivateSKAdNetworkHandlingメソッドを呼び出すことで、SDKがSKAdNetworkと通信しないようにすることができます。

adjustConfig.deactivateSKAdNetworkHandling();

SDK v5では、SKAdNetworkとの通信を無効にするには、adjustConfigインスタンスのisSkanAttributionEnabledプロパティをfalseに設定する必要があります。

adjustConfig.isSkanAttributionEnabled = false;

Conversion valueのアップデートを受信する

SDK v4では、 adjustConfigskad4conversionValueUpdatedCallbackプロパティを使用してconversion valueの更新を受信できます。SKAN4より前は、 conversionValueUpdatedCallbackプロパティを使用できました。

// pre-SKAN4 callback
adjustConfig.conversionValueUpdatedCallback = (num? conversionValue) {
};
// SKAN4 callback
adjustConfig.skad4ConversionValueUpdatedCallback = (num? conversionValue, String? coarseValue, bool? lockWindow) {
};

SDK v5では、 adjustConfigオブジェクトのskanUpdatedCallbackプロパティにコールバック関数を割り当てる必要があります。

config.skanUpdatedCallback = (Map<String, String> skanUpdateData) {
print('[Adjust]: Received SKAN update information!');
if (skanUpdateData["conversion_value"] != null) {
print('[Adjust]: Conversion value: ' + skanUpdateData["conversion_value"]!);
}
if (skanUpdateData["coarse_value"] != null) {
print('[Adjust]: Coarse value: ' + skanUpdateData["coarse_value"]!);
}
if (skanUpdateData["lock_window"] != null) {
print('[Adjust]: Lock window: ' + skanUpdateData["lock_window"]!);
}
if (skanUpdateData["error"] != null) {
print('[Adjust]: Error: ' + skanUpdateData["error"]!);
}
};

Conversion valueを更新する

SDK v4では、以下のいずれかのメソッドを使用して、更新されたconversion valueをAdjustに送信できます:

Adjust.updateConversionValue(6);
Adjust.updateConversionValueWithErrorCallback(6).then((error) {
// error is present in case it happened
});
Adjust.updateConversionValueWithErrorCallbackSkad4(6, 'coarse-value', true).then((error) {
// error is present in case it happened
});

SDK v5でconversion valueを更新するには、以下の引数でupdateSkanConversionValueメソッドを使用します:

  • conversionValueint):更新されたconversion value
  • coarseValuestring):更新された粗いconversion value
  • lockWindowbool):コンバージョン期間が終了する前にポストバックを送信するかどうか
Adjust.updateSkanConversionValue(6, 'coarse-value', true).then((error) {
// error is present in case it happened
});

App Tracking Transparency認証ラッパー

SDK v4では、Adjust.requestTrackingAuthorizationWithCompletionHandlerメソッドを使用して、ユーザーのATT認証ステータスの変更を処理することができます。

Adjust.requestTrackingAuthorizationWithCompletionHandler().then((status) {
print('[Adjust]: Authorization status update!');
switch (status) {
case 0:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusNotDetermined');
break;
case 1:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusRestricted');
break;
case 2:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusDenied');
break;
case 3:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusAuthorized');
break;
}
});

より明確にするため、SDK v5ではAdjust.requestAppTrackingAuthorizationに改名されました。

Adjust.requestAppTrackingAuthorization().then((status) {
print('[Adjust]: Authorization status update!');
switch (status) {
case 0:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusNotDetermined');
break;
case 1:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusRestricted');
break;
case 2:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusDenied');
break;
case 3:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusAuthorized');
break;
}
});