Skip to content

Latest commit

 

History

History
1081 lines (705 loc) · 66.3 KB

README.md

File metadata and controls

1081 lines (705 loc) · 66.3 KB

概要

こちらはAdjust™のUnity SDKです。iOS、Android、Windows Store 8.1、Windows Phone 8.1、Windows 10をサポートしています。Adjust™については、adjust.comをご覧ください。

:バージョン4.12.0以降より、Adjust Unity SDKはUnity 5以降のバージョンと互換性があります。

:バージョン4.19.2以降より、Adjust Unity SDKはUnity 2017.1.1以降のバージョンと互換性があります。

:バージョン4.21.0以降より、Adjust Unity SDKはUnity 2017.4.1以降のバージョンと互換性があります。

Read this in other languages:English中文日本語한국어

目次

クイックスタート

ディープリンク

イベントトラッキング

カスタムパラメータ

追加機能

テストとトラブルシューティング

ライセンス

クイックスタート

基本的な連携方法

Adjust SDKをUnityプロジェクトに連携させるステップをご説明します。

SDKダウンロード

リリースページより最新バージョンをダウンロードしてください。

プロジェクトにSDKを追加

Unityエディターでプロジェクトを開き、Assets → Import Package → Custom Package と進み、ダウンロードしたUnityパッケージファイルを選択してください。

アプリにSDKを実装

Assets / Adjust / Adjust.prefabにあるプレハブを1番目のシーンに追加してください。

プレハブのInspector menuで、Adjustスクリプトのパラメータを編集してください。ここでは以下のオプションの設定ができます。

{YourAppToken} にアプリトークンを入力してください。 この手順は管理画面で確認できます。

EnvironmentにSandbox 又はProductionのどちらかを設定してください。これはテスト用アプリか本番用アプリかによって異なります。

**重要:**この値はアプリのテスト中のみSandbox に設定してください。アプリストアに提出する前にProduction に更新されていることを必ず確認してください。テストを再度実施する場合は、Sandbox に戻してください。また、Adjust管理画面ではデフォルトでアプリの本番環境(プロダクション)のトラフィックを表示しているため、サンドボックスモードでテスト中に生成されたトラフィックを表示したい場合は、管理画面内でサンドボックス・モードに切り替えてください。

この環境設定は、本番環境からのトラフィックとテスト端末からのトラフィックをレポート画面で区別するために利用されます。正しく計測するために、環境設定には常に注意してください。

アプリのAwake イベントでAdjust SDKを自動で起動したくない場合、Start Manuallyを選択します。このオプションが選択されている場合、ソースコード上でAdjust SDKの初期化、および起動を行う必要があります。AdjustConfigオブジェクトをパラメータとしてAdjust.start メソッドをコールし、Adjust SDKを起動してください。

例えばメニューボタンを利用したシーンなど、これらのオプションのサンプルは、Assets/Adjust/ExampleGUI/ExampleGUI.unityで確認できます。

このシーンのソースはAssets / Adjust / ExampleGUI / ExampleGUI.csにあります。

Adjustロギング

Log Level に設定する値を次のいずれかに変更すると、記録するログの粒度を調節できます。

-Verbose- 全てのログを有効にする

  • Debug - verboseログを無効にする
  • Info - debugログを無効にする(デフォルト)
  • Warn - infoログを無効にする
  • Error - warningログを無効にする
  • Assert - errorログを無効にする
  • Suppress - 全てのログを無効にする

Adjust SDKをマニュアルで初期化していて、全てのログ出力を非表示にしたい場合、ログレベルをSupressに設定してAdjustConfigオブジェクトのコンストラクタを使います。これによってBoolean値のパラメータが開きますので、Supressログレベルがサポートされるべきかどうかを入力してください。

String appToken = "{YourAppToken}";
AdjustEnvironment environment = AdjustEnvironment.Sandbox;

AdjustConfig config = new AdjustConfig(appToken, environment, true);
config.setLogLevel(AdjustLogLevel.Suppress);

Adjust.start(config);

アプリのターゲットがWindowsベースで、コンパイル時のログをライブラリからreleased モードで見るには、debug モードでテストされている間アプリへのログ出力をリダイレクトする必要があります。

SDKを開始する前に、AdjustConfigインスタンスのsetLogDelegateメソッドをコールしてください。

//...
adjustConfig.setLogDelegate(msg=> Debug.Log(msg));
//...
Adjust.start(adjustConfig);

Google Play 開発者サービス

2014年8月1日以降、Google Playストア内のアプリは、デバイスの特定のためにGoogle広告 IDの使用が義務付けられています。Adjust SDKでGoogle 広告 IDを使うためには、Google Play 開発者サービスgoogle_play_servicesを連携させる必要があります。連携を行うには、google-play-services_lib フォルダ(Android SDKの一部)をUnityプロジェクトのAssets/Plugins/Android フォルダにコピーしてください。

Android SDKをダウンロードするには主に2つの方法があります。Android SDK Manager が入ったツールをお使いの場合は、Android SDK toolのダウンロードとインストールができるクイックリンクが提供されています。インストールが完了したら、SDK_FOLDER/extras/google/google_play_services/libproject/ フォルダのライブラリをご覧ください。

Android SDK Managerの入ったツールをお使いでない場合は、公式ページから単独SDKAndroid SDKをダウンロードしてください。次に、Google が提供するSDK Readme.txt の指示に従ってAndoird SDKツールをダウンロードしてください。これは、Android SDKフォルダ内にあります。

更新:Android SDKの最新バージョンでは、GoogleはSDKのルートフォルダ内のGoogle Play 開発者サービスフォルダの構造を変更しています。新バージョンはこのように表示されます。

Adjust SDKが必要とするGoogle Play 開発者サービスのライブラリの一部、つまり、basementのみを追加することができるようになりました。これを行うためには、play-services-basement-x.y.z.aar ファイルをAssets/Plugins/Androidフォルダに追加してください。

Google Play 開発者サービスのライブラリバージョン15.0.0では、Googleは、Google 広告 IDの取得に必要なクラスをplay-services-ads-identifier パッケージに移行しました。バージョン15.0.0以降のライブラリを使用している場合は、このパッケージをアプリに追加してください。追加が完了したら、Adjust SDKがGoogle 広告 IDを正しく取得しているかテスト確認を行ってください。使用されているUnity の開発環境 (IDE)のバージョンによっては、いくつかの乖離が発生することが分かっています。

Google 広告 IDのテスト

Adjust SDKがGoogle 広告 IDを取得しているかどうかを確認するには、sandbox モードでSDKを設定し、ログレベルをverboseにして起動してください。その後、アプリでセッションまたはイベントをトラッキングし、verboseログに記録されたパラメータリストをチェックします。gps_adid パラメータが表示されていれば、SDKはGoogle 広告 IDを正常に読み込んでいます。

Google 広告 IDの取得の際に問題が発生した場合は、Githubリポジトリでissueを開くか、support@adjust.comにお問い合わせください。

Proguardの設定

Proguardをお使いの場合は、以下をProguardファイルに追加してください。

-keep public class com.adjust.sdk.** { *; }
-keep class com.google.android.gms.common.ConnectionResult {
    int SUCCESS;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {
    com.google.android.gms.ads.identifier.AdvertisingIdClient$Info getAdvertisingIdInfo(android.content.Context);
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {
    java.lang.String getId();
    boolean isLimitAdTrackingEnabled();
}
-keep public class com.android.installreferrer.**{ *; }

Google インストールリファラ

AdjustがAndroidアプリのインストールをアトリビュートするには、Googleのインストールリファラの情報が必要です。** Google Play リファラAPI を使用するか、broadcastレシーバでGoogle Play Store インテント**を受信するよう設定すると、アプリが情報を取得できます。

GoogleはGoogle Play リファラ APIを導入しました。インストールリファラの情報を取得し、アトリビューションプロバイダがクリックインジェクション(不正な広告クリック)を阻止する上で、Google Play Storeインテントよりも信頼性が高く安全です。暫定的にGoogle Play StoreインテントはAPIと並行して存在しますが、将来的には廃止される予定です。アプリでこれをサポートすることを強く推奨します。

Adjustのポストビルドプロセスにより、Google Play Storeインテントを受信します。いくつかの追加手順を実行するだけで、新しいGoogle Play リファラAPIをサポートできます。

Google Play リファラ APIのサポートを追加するには、Mavenリポジトリからinstall referrer libraryをダウンロードし、AARファイルをPlugins/Android フォルダに入れてください。

HuaweiリファラAPI

v4.21.1以降より、Adjust SDKはHuawei App Galleryバージョン10.4以降のHuawei端末へのインストール計測をサポートしています。HuaweiリファラAPIの使用を開始するために連携手順を追加で設定する必要はありません。

ポストビルドプロセス

アプリのビルドプロセスが完了するには、Adjust Unityのパッケージでポストビルドプロセスが実行されます。アプリ内でAdjust SDKが正しく動作するようにするためです。

このプロセスは、AdjustEditor.csOnPostprocessBuild メソッドで実行されます。Unity IDEコンソールの出力ウィンドウに、ログメッセージが書き込まれます。

iOSポストビルドプロセス

iOSポストビルドプロセスを適切に実行するためには、Unity 5以降を使用し、iOS build support をインストールしてください。iOSポストビルドプロセスは、生成したXcodeプロジェクト内で次のような変更を実行します。

  • iAd.framework を追加します(Apple Search Adsのトラッキングに必要)
  • AdSupport.framework を追加します(IDFAの読み取りに必要)
  • CoreTelephony.framework を追加します(接続されているネットワーク機器の種類の読み取りに必要) -その他のLinkerフラグ -ObjCを追加します(AdjustのObjective-Cカテゴリがビルド中に認識されるために必要) -Objective-C exceptionsを有効化します

iOS 14のサポート(Assets/Adjust/Toggle iOS 14 Support)を有効にした場合、iOSのポストビルドプロセスでは、Xcodeプロジェクトに2つのフレームワークが追加されます。

  • AppTrackingTransparency.framework を追加します(ユーザーにトラッキングへの同意を求め、その同意に関するステータスを取得する必要がある)
  • StoreKit.framework を追加します(SKAdNetworkフレームワークとの通信に必要)

Androidポストビルドプロセス

Androidポストビルドプロセスは、Assets/Plugins/Android/にあるAndroidManifest.xml ファイルの変更を実行します。また、Android プラグインフォルダにAndroidManifest.xmlファイルがあるかどうかを確認します。ファイルがない場合は、互換性のあるマニフェストファイルAdjustAndroidManifest.xml からコピーを作成してください。すでにAndroidManifest.xml ファイルがある場合は、次の内容を確認し、変更してください。

  • INTERNET のパーミッションを追加します (インターネット接続に必要)
  • ACCESS_WIFI_STATE のパーミッションを追加します (Play Store経由でアプリを公開しない場合に必要)
  • ACCESS_NETWORK_STATE のパーミッションを追加します(接続されているネットワーク機器の種類の読み取りに必要)
  • BIND_GET_INSTALL_REFERRER_SERVICE のパーミッションを追加します (新しいGoogle install リファラAPI が機能するのに必要)
  • Adjustのブロードキャストレシーバーを追加します (Google Play Storeインテント経由でインストールリファラ情報を取得するのに必要)。詳しくは、公式のAndroid SDK READMEを参照してください。

**注意:**独自のブロードキャストレシーバを使用してINSTALL_REFERRERインテントを処理している場合には、manifest fileにAdjustブロードキャストレシーバを追加する必要はありません。これを削除し、代わりに独自のレシーバー内にAdjustブロードキャストレシーバへのコールを追加してください。詳しくは、Androidガイドをご覧ください。

SDKシグネチャー

担当のアカウントマネージャーがAdjust SDKシグネチャーを有効化する必要があります。この機能を使用する場合は、Adjustのサポート(support@adjust.com)にお問い合わせください。

アカウントでSDKシグネチャーが有効になっており、Adjust管理画面のアプリシークレットにアクセスできる場合は、全てのシークレットパラメータ(secretId, info1, info2, info3, info4)をAdjustConfigインスタンスのsetAppSecretメソッドに追加してください。

AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}");

adjustConfig.setAppSecret(secretId,info1, info2, info3, info4);

Adjust.start(adjustConfig);

これでSDKシグネチャーがアプリに実装されました。

ディープリンク

ディープリンクの概要

Adjustでは、iOSとAndroidのプラットフォームでのみディープリンクをサポートしています。

ディープリンクを有効にした状態でAdjustトラッカーURLをご利用の場合、ディープリンクURLとそのコンテンツに関する情報を取得できます。同じURLをユーザーがクリックした際、ユーザーのデバイスにアプリがインストールされてる場合はスタンダードディープリンクが作動し、インストールされていない場合はディファードディープリンクが作動します。

スタンダードディープリンクの場合、Androidプラットフォームにはディープリンクのコンテンツを取得できる仕組みがあります。ただし、ディファードディープリンクに対する自動サポートはありません。ディファードディープリンクのコンテンツを取得するには、Adjust SDKを使用してください。

ディープリンクの実装はネイティブレベルで設定する必要があります。Xcodeプロジェクト(iOS向け)やAndroid Studio / Eclipseプロジェクト(Android向け)で設定してください。

スタンダードディープリンク

スタンダードディープリンクに関する情報は、Unity C#コードでは配信できません。ディープリンクの取り扱いをアプリで有効化すると、ネイティブレベルでディープリンクの情報が得られます。AndroidアプリやiOSアプリでディープリンクを有効化する方法は、こちらのとおりです。

ディファードディープリンク

ディファードディープリンクのコンテンツ情報を取得するには、AdjustConfig オブジェクトにcallbackメソッドを設定してください。これにより、URLのコンテンツが配信される1つのstringパラメータを受信します。メソッド setDeferredDeeplinkDelegateをコールしてconfigオブジェクトでこのメソッドを実装してください。

// ...

private void DeferredDeeplinkCallback(string deeplinkURL) {
   Debug.Log("Deeplink URL: " + deeplinkURL);

   // ...
}

AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}");

adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback);

Adjust.start(adjustConfig);

ディファードディープリンクでは、AdjustConfig オブジェクトで設定できる追加機能があります。Adjust SDKがディファードディープリンクの情報を取得すると、SDK側でそのURLを開くかどうかを決めることができます。このオプションを設定するには、configオブジェクトで setLaunchDeferredDeeplinkメソッドをコールしてください。

// ...

private void DeferredDeeplinkCallback(string deeplinkURL) {
   Debug.Log ("Deeplink URL: " + deeplinkURL);

   // ...
}

AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}");

adjustConfig.setLaunchDeferredDeeplink(true);
adjustConfig.setDeferredDeeplinkDelegate(DeferredDeeplinkCallback);

Adjust.start(adjustConfig);

何も設定されていない場合、Adjust SDKはデフォルトで常にディープリンクを起動します

アプリでディープリンクを有効化するには、サポートするプラットフォームごとにスキームを設定してください。

Androidアプリでのディープリンク処理

ネイティブレベルでAndroidアプリのディープリンクを設定するには、公式Android SDK READMEの手順をご確認ください。

この設定はネイティブのAndroid Studio もしくは Eclipseプロジェクトで行ってください。

iOSアプリでのディープリンク処理

この設定はネイティブのXcodeプロジェクトで行ってください。

ネイティブレベルでiOSアプリのディープリンクを設定するには、ネイティブのXcodeプロジェクトを使用し、公式iOS SDK READMEの手順をご確認ください。

イベントトラッキング

イベントのトラッキング

Adjustを使ってアプリ内のイベントをトラッキングすることができます。例えば、ボタンのタップを毎回トラッキングされたい場合は、管理画面のcreate a new event tokenにてイベントトークンを作成します。仮にそのイベントトークンをabc123とします。クリックをトラッキングするため、ボタンのクリックハンドラーメソッドに以下のような記述を追加します。

AdjustEvent adjustEvent = new AdjustEvent("abc123");
Adjust.trackEvent(adjustEvent);

収益(課金)のトラッキング

ユーザーがアプリ内でアイテムを購入をした際に収益が発生する場合は、それらを課金イベントとしてトラッキングできます。例えば、1回のタップで1ユーロセントの収益があると仮定すると、その収益イベントは以下のようになります。

AdjustEvent adjustEvent = new AdjustEvent("abc123");
adjustEvent.setRevenue(0.01,"EUR");
Adjust.trackEvent(adjustEvent);

通貨トークンを設定すると、Adjustはopenexchange APIを使用して、計測された売り上げを設定されたレポート通貨に自動換算します。通貨換算についての詳細はこちらをご覧ください

アプリ内購入をトラッキングする場合は、購入手続きが完了し、アイテムが購入された場合にのみtrackEventをコールするようにしてください。こうすることで、実際には発生しなかった収益をトラッキングするのを防ぐことができます。

収益の重複排除

収益を重複してトラッキングするのを防止するため、随意でトランザクションIDを追加することができます。SDKに最新10件のトランザクションIDが記憶され、トランザクションIDが重複する場合、その収益イベントは除外されます。これは、アプリ内購入のトラッキングに特に便利です。

AdjustEvent adjustEvent = new AdjustEvent("abc123");

adjustEvent.setRevenue(0.01,"EUR");
adjustEvent.setTransactionId("transactionId");

Adjust.trackEvent(adjustEvent);

アプリ内購入の検証

Adjustのサーバーサイドのレシート検証ツールAdjust's Purchase Verificationを使って、アプリ内購入を確認できます。

カスタムパラメータ

カスタムパラメータの概要

Adjust SDKがデフォルトで収集するローデータに加えて、Adjust SDKを使用してカスタム値(ユーザーID、製品IDなど)を必要な数だけトラッキングし、イベントまたはセッションに追加できます。カスタムパラメータはローデータとして転送されます。Adjust管理画面には表示されません

コールバックパラメータで収集したデータは社内用に、パートナーパラメータは、外部のパートナー(アドネットワークなど)に対して共有する場合に使用してください。値(製品IDなど)を社内と外部のパートナーのためにトラッキングする場合、コールバックとパートナーパラメータの両方を使用するよう推奨します。

イベントパラメータ

イベントコールバックパラメータ

[管理画面]に表示されたイベントにコールバックURLを登録すると、該当イベントが発生する度にそのURLに対してGETリクエストが送信されます。オブジェクトにキーと値の組を入れ、それを trackEventメソッドに渡すこともできます。カスタムパラメータはコールバックURLに追加されます。

例えば、コールバックURLに http://www.example.com/callbackと登録した場合、次のようにイベントをトラッキングします。

AdjustEvent adjustEvent = new AdjustEvent("abc123");

adjustEvent.addCallbackParameter("key","value");
adjustEvent.addCallbackParameter("foo","bar");

Adjust.trackEvent(adjustEvent);

この場合、Adjustは以下のGETリクエストを送信します。

http://www.example.com/callback?key=value&foo=bar

Adjustは数多くのプレースホルダー(パラメータ)をサポートしています。例えば広告IDを取得する際、iOSは{idfa} 、Androidは{gps_adid} がパラメータとなります。この例を使用して、得られるコールバック内でプレースホルダーを現在のデバイスのIDFAやgps_adid(Google Play開発者サービス 広告ID)に置き換えます。詳しくはリアルタイムコールバックプレースホルダーの全リストをご覧ください。

**注:**Adjustは、カスタムパラメータを保存せず、コールバックへの追加だけを行います。イベントにコールバックが登録されていない場合は、これらのパラメータを取得しません。

イベントパートナーパラメータ

管理画面でパラメータを有効にすると、ネットワークパートナーにパラメータが送信されます。モジュールパートナーやそれらの拡張連携についてご覧ください。

これはコールバックパラメータと同様に機能します。AdjustEventインスタンスで addPartnerParameterメソッドをコールして追加してください。

AdjustEvent adjustEvent = new AdjustEvent("abc123");

adjustEvent.addPartnerParameter("key","value");
adjustEvent.addPartnerParameter("foo","bar");

Adjust.trackEvent(adjustEvent);

スペシャルパートナーとの連携方法の詳細については、[スペシャルパートナーガイド][スペシャルパートナー]をご覧ください。

イベントコールバックID

トラッキングしたいイベントごとにカスタマイズしたストリングIDを追加できます。イベントコールバック時にこのIDを報告し、どのイベントが正常にトラッキングされたかを知らせます。AdjustEvent インスタンスでsetCallbackId メソッドをコールして、IDを設定してください。

AdjustEvent adjustEvent = new AdjustEvent("abc123");

adjustEvent.setCallbackId("Your-Custom-Id");

Adjust.trackEvent(adjustEvent);

セッションパラメータ

セッションパラメータはローカルに保存され、Adjust SDK イベントとセッションごとに送信されます。これらのパラメータは、追加される度に保存されます(したがって、再度追加する必要はありません)。同じパラメータを再度追加しても、何も起こりません。

Adjust SDKの起動前にセッションパラメータを送信することが可能です。したがって、SDK ディレイスタートを使用すると、追加の値(アプリのサーバーからの認証トークンなど)を取得することができ、SDKの初期化タイミングで全ての情報を一度に送信できます。

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

Adjust SDKのセッションごとに送信されるイベントコールバックパラメータを保存できます。

セッションコールバックパラメータの仕組みは、イベントコールバックパラメータのインターフェイスに似ています。キーとその値をイベントに追加する代わりに、Adjust インスタンスの addSessionCallbackParameter メソッドへのコールで追加されます。

adjustEvent.addCallbackParameter("foo", "bar");

セッションコールバックパラメータは、イベントコールバックパラメータに統合されます。全ての情報が1つにまとめられて送信されますが、イベントコールバックパラメータは、セッションコールバックパラメータより優先されます。セッションコールバックパラメータと同じキーを持つイベントパートナーパラメータが追加された場合、イベントに追加されたパラーメータの値が表示されます。

Adjust インスタンスのremoveSessionCallbackParameter` メソッドに指定のキーを渡すことで、特定のセッションコールバックパラメータを削除できます。

AdjustEvent.addCallbackParameter("foo", "bar");

セッションコールバックパラメータから全てのキーと値を削除するには、Adjust インスタンスのresetSessionCallbackParameters メソッドを使ってリセットすることができます。

Adjust.resetSessionCallbackParameters();

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

SDKをトリガーするイベントやセッションごとにセッションコールバックパラメータが送信されるのと同様に、セッションパートナーパラメータも用意されています。

これらは[管理画面]で連携を有効化した全てのネットワークパートナーに送信されます。

セッションコールバックパラメータの仕組みは、イベントコールバックパラメータに似ています。キーとその値をイベントに追加する代わりに、Adjust インスタンスの addSessionPartnerParameter メソッドへのコールで追加されます。

adjustEvent.addCallbackParameter("foo", "bar");

セッションパートナーのパラメータは、イベントパートナーのパラメータに統合されます。ただし、イベントパートナーのパラメータは、セッションパートナーのパラメータより優先されます。セッションパートナーパラメータと同じキーを持つイベントパートナーパラメータが追加された場合、イベントに追加されたパラメータの値が表示されます。

Adjust インスタンスのremoveSessionPartnerParameter` メソッドに指定のキーを渡すことで、特定のセッションパートナーパラメータを削除できます。

Adjust.removeSessionPartnerParameter("foo");

セッションパートナーパラメータから全てのキーと値を削除するには、Adjust インスタンスのresetSessionPartnerParameters メソッドを使ってリセットすることができます。

Adjust.resetSessionPartnerParameters();

###ディレイスタート

Adjust SDKのスタート(初期化)を遅らせると、アプリがユニークIDなどのセッションパラメータを取得しインストール時にコールバックとして送信する時間を確保できます。

AdjustConfig インスタンスの setDelayStart メソッドで、遅らせる時間を秒単位で設定してください。

adjustConfig.setDelayStart(5.5);

この例では、Adjust SDKは初期化時のインストールセッションと新しいイベントを5.5秒間遅らせます。5.5秒後に(または、その時間内に Adjust.sendFirstPackages() がコールされると)、全てのセッションパラメータがディレイインストールセッションとイベントに追加され、Adjust SDKは通常どおり作動します。

ディレイスタートに設定できる最長時間は10秒です。

##追加機能

Adjust SDKをプロジェクトに導入すると、次の追加機能を利用できます。

AppTrackingTransparencyフレームワーク

:この機能が存在するのはiOSプラットフォームのみです。

各パッケージが送信されるたびに、Adjustのバックエンドは、アプリ関連データへのアクセスに関するユーザーの許諾状況を表す、以下の4つの値のいずれかを受信します。

  • Authorized(承認)
  • Denied(拒否)
  • Not Determined(未決定)
  • Restricted(制限あり)

デバイスがアプリ関連データへのアクセスに対するユーザーの許諾状況の承認リクエスト(ユーザーのデバイストラッキングに使用)を受信した後は、返されるステータスはAuthorizedあるいはDeniedになります。

デバイスがアプリ関連データへのアクセスの承認リクエスト(ユーザーあるいはデバイスのトラッキングに使用)を受信する前は、返されるステータスはNot Determinedになります。

アプリのトラッキングデータの使用が制限されている場合は、返されるステータスはRestrictedになります。

表示されるポップアップダイアログのカスタマイズを希望しない場合のために、このSDKには、ユーザーがポップアップダイアログに応答した後に、更新ステータスを受信するメカニズムが組み込まれています。新しい許諾ステータスをバックエンドに簡単かつ効率的に伝達するために、Adjust SDKはアプリのトラッキング承認メソッドのラッパーを提供しています。次の項目の説明をご覧ください。

アプリトラッキング承認ラッパー(App-tracking authorisation wrapper)

:この機能が存在するのはiOSプラットフォームのみです。

Adjust SDKは、アプリトラッキング承認ラッパーを使用して、アプリ関連データへのアクセスに対するユーザーの許諾状況をリクエストすることができます。Adjust SDKには、requestTrackingAuthorizationWithCompletionHandler:メソッドに基づいて構築されたラッパーが用意されており、ユーザーの選択についての情報を取得するためのコールバックメソッドを定義することもできます。また、このラッパーを使用することで、ユーザーがポップアップダイアログに応答すると、その内容がコールバックメソッドで直ちに伝達されます。SDKは、ユーザーの選択をバックエンドにも通知します。「NSUInteger」の値はコールバックメソッドによって伝達されます。値の意味は次のとおりです。

  • 0: ATTrackingManagerAuthorizationStatusNotDetermined(承認ステータスは「未決定」)
  • 1: ATTrackingManagerAuthorizationStatusRestricted(承認ステータスは「制限あり」)
  • 2: ATTrackingManagerAuthorizationStatusDenied(承認ステータスは「拒否」)
  • 3: ATTrackingManagerAuthorizationStatusAuthorized(承認ステータスは「承認」)

このラッパーを使用するためには、次のように呼び出してください。

Adjust.requestTrackingAuthorizationWithCompletionHandler((status) =>
{
    switch (status)
    {
        case 0:
            // ATTrackingManagerAuthorizationStatusNotDetermined の場合
            break;
        case 1:
            // ATTrackingManagerAuthorizationStatusRestricted の場合
            break;
        case 2:
            // ATTrackingManagerAuthorizationStatusDenied の場合
            break;
        case 3:
            // ATTrackingManagerAuthorizationStatusAuthorizedの場合
            break;
    }
});

SKAdNetworkフレームワーク

:この機能が存在するのはiOSプラットフォームのみです。

Adjust iOS SDK v4.23.0以上を実装済みであり、アプリがiOS14で実行されている場合、SKAdNetworkとの通信はデフォルトでONに設定されますが、選択によりOFFにすることもできます。ONに設定すると、SDKの初期化時にSKAdNetworkのアトリビューションがAdjustによって自動的に登録されます。conversion value(コンバージョン値)を受信するためにAdjust管理画面でイベントを設定する場合、conversaion valueのデータはAdjustバックエンドからSDKに送信されます。その後、SDKによってconversion valueが設定されます。SKAdNetworkコールバックデータをAdjustで受信した後、このデータが管理画面に表示されます。

Adjust SDKがSKAdNetworkと自動的に通信しないようにしたい場合は、設定オブジェクトで次のメソッドを呼び出すことによって通信を無効化できます。

adjustConfig.deactivateSKAdNetworkHandling();

Pushトークン(アンインストールトラッキング)

Pushトークンは、オーディエンスビルダーやコールバックに使用されます。また、アンインストールや再インストールのトラッキングにも必要です。

Push通知トークンをAdjustに送信するには、アプリのPush通知トークンの取得時に(またはその値の変更のたびに)、Adjust インスタンスでsetDeviceToken メソッドをコールしてください。

Adjust.setDeviceToken("YourPushNotificationToken");

アトリビューションコールバック

アトリビューション情報の変更通知をアプリ内で受けるようにコールバックを設定できます。アトリビューションには複数の流入元が存在するため、この情報は非同期的に送ります。サードパーティに対してデータを共有する際は、[アトリビューションデータに関するポリシー] attribution_dataを必ずご確認ください。

アプリにこのコールバックを追加するには、次の手順に進んでください。

1.デリゲート Action<AdjustAttribution>の署名でメソッドを作成します。

  1. AdjustConfig オブジェクトを作成し、前に作成したメソッドでadjustConfig.setAttributionChangedDelegateをコールしてください。同じ署名でラムダ式を使うことも可能です。

  2. Adjust.prefab を使う代わりに、Adjust.csスクリプトが別のGameObject に追加されている場合は、その``GameObject の名前をAdjustConfig.setAttributionChangedDelegateの2番目のパラメータとして必ず渡してください。

コールバックがAdjustConfig インスタンスを使用しているため、Adjust.startをコールする前にadjustConfig.setAttributionChangedDelegate をコールする必要があります。

using com.adjust.sdk;

public class ExampleGUI : MonoBehaviour {
    void OnGUI() {
        if (GUI.Button(new Rect(0, 0, Screen.width, Screen.height), "callback")) {
            AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox);
            adjustConfig.setLogLevel(AdjustLogLevel.Verbose);
            adjustConfig.setAttributionChangedDelegate(this.attributionChangedDelegate);

            Adjust.start(adjustConfig);
        }
    }

    public void attributionChangedDelegate(AdjustAttribution attribution) {
        Debug.Log("Attribution changed");

        // ...
    }
}

このコールバック関数は、SDKが最後のアトリビューションデータを取得した時に作動します。コールバック関数内でattribution パラメータを確認することができます。プロパティの概要は次のとおりです。

  • string trackerToken 最新アトリビューションのトラッカートークン
  • string trackerName 最新アトリビューションのトラッカー名
  • string network 最新アトリビューションのネットワークのグループ階層
  • string campaign 最新アトリビューションのキャンペーンのグループ階層
  • string adgroup 最新アトリビューションのアドグループのグループ階層
  • string creative 最新アトリビューションのクリエイティブのグループ階層
  • string clickLabel 最新アトリビューションのクリックラベル
  • string adid AdjustユニークID

広告収益のトラッキング

Adjust SDKを利用して、以下のメソッドを呼び出し広告収益情報をトラッキングできます。

Adjust.trackAdRevenue(source, payload);

Adjust SDKに渡す必要があるメソッドパラメータは次のとおりです。

  • source - 広告収益情報のソースを指定するstringオブジェクト
  • payload -広告収益のJSONをstring形態で格納するstring`オブジェクト

現在Adjustでは以下のsource パラメータ値のみをサポートしています。

サブスクリプション計測

:この機能はSDK v4.22.0以降のみ利用可能です。

App StoreとPlay Storeのサブスクリプションをトラッキングし、それぞれの有効性をAdjust SDKで確認できます。サブスクリプションの購入が完了したら、次のようにAdjust SDKを呼び出します。

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

AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription(
    price,
    currency,
    transactionId,
    receipt);
subscription.setTransactionDate(transactionDate);
subscription.setSalesRegion(salesRegion);

Adjust.trackAppStoreSubscription(subscription);

Play Storeサブスクリプションの場合:

AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription(
    price,
    currency,
    sku,
    orderId,
    signature,
    purchaseToken);
subscription.setPurchaseTime(purchaseTime);

Adjust.trackPlayStoreSubscription(subscription);

App Storeサブスクリプションのためのサブスクリプション トラッキング パラメータ:

Play Storeサブスクリプションのサブスクリプション トラッキング パラメータ:

注: Adjust SDKが提供するサブスクリプション計測APIでは、全てのパラメータが string 値として渡されることを想定しています。上記で説明したパラメータは、サブスクリプションをトラッキングする前にAPIがサブスクリプションオブジェクトに渡すように要求するパラメータです。Unityにはアプリ内購入で取り扱っている様々なライブラリがありますが、各ライブラリはサブスクリプションの購入が正常に完了した時点で、上記の情報を何らかの形で返す必要があります。アプリ内課金で使用しているライブラリから取得したレスポンスの中で、これらのパラメータが配置されている場所を特定し、その値を抽出して文字列値としてAdjust APIに渡す必要があります。

イベント計測と同様に、コールバックやパートナーのパラメータをサブスクリプションオブジェクトに付与できます。

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

AdjustAppStoreSubscription subscription = new AdjustAppStoreSubscription(
    price,
    currency,
    transactionId,
    receipt);
subscription.setTransactionDate(transactionDate);
subscription.setSalesRegion(salesRegion);

// コールバックパラメータの追加
subscription.addCallbackParameter("key","value");
subscription.addCallbackParameter("foo","bar");

// パートナーパラメータの追加
subscription.addPartnerParameter("key","value");
subscription.addPartnerParameter("foo","bar");

Adjust.trackAppStoreSubscription(subscription);

Play Storeサブスクリプションの場合:

AdjustPlayStoreSubscription subscription = new AdjustPlayStoreSubscription(
    price,
    currency,
    sku,
    orderId,
    signature,
    purchaseToken);
subscription.setPurchaseTime(purchaseTime);

// コールバックパラメータの追加
subscription.addCallbackParameter("key","value");
subscription.addCallbackParameter("key","bar");

// パートナーパラメータの追加
subscription.addPartnerParameter("key","value");
subscription.addPartnerParameter("foo","bar");

Adjust.trackPlayStoreSubscription(subscription);

セッションとイベントのコールバック

イベントとセッションの両方、もしくはどちらかを計測し、成功か失敗かの通知を受け取れるようコールバックを設定できます。

トラッキングに成功したイベントへのコールバック関数を次のように追加してください。

// ...

AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox);
adjustConfig.setLogLevel(AdjustLogLevel.Verbose);
adjustConfig.setEventSuccessDelegate(EventSuccessCallback);

Adjust.start(adjustConfig);

// ...

public void EventSuccessCallback(AdjustEventSuccess eventSuccessData) {
    // ...
}

トラッキングに失敗したイベントへのコールバック関数を次のように追加してください。

// ...

AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox);
adjustConfig.setLogLevel(AdjustLogLevel.Verbose);
adjustConfig.setEventFailureDelegate(EventFailureCallback);

Adjust.start(adjustConfig);

// ...

public void EventFailureCallback(AdjustEventFailure eventFailureData) {
    // ...
}

トラッキングに成功したセッションの場合

// ...

AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox);
adjustConfig.setLogLevel(AdjustLogLevel.Verbose);
adjustConfig.setSessionSuccessDelegate(SessionSuccessCallback);

Adjust.start(adjustConfig);

// ...

public void EventSuccessCallback(AdjustEventSuccess eventSuccessData) {
    // ...
}

トラッキングに失敗したセッションの場合

// ...

AdjustConfig adjustConfig = new AdjustConfig("{Your App Token}", AdjustEnvironment.Sandbox);
adjustConfig.setLogLevel(AdjustLogLevel.Verbose);
adjustConfig.setSessionFailureDelegate(SessionFailureCallback);

Adjust.start(adjustConfig);

// ...

public void SessionFailureCallback (AdjustSessionFailure sessionFailureData) {
    // ...
}

コールバック関数は、SDKがサーバーにパッケージ送信を試みた後でコールされます。コールバック内でコールバック用のレスポンスデータオブジェクトを確認することができます。セッションのレスポンスデータのプロパティ概要は次のとおりです。

  • string Message サーバーからのメッセージまたはSDKのエラーログ
  • string Timestamp サーバーからのタイムスタンプ
  • string Adid Adjustが提供するユニークデバイスID -Dictionary JsonResponse サーバーからのレスポンスのJSONオブジェクト

どちらのイベントレスポンスデータオブジェクトも以下を含みます。

  • string EventToken トラッキングしたパッケージがイベントだった場合、そのイベントトークン
  • string CallbackId イベントオブジェクトにカスタム設定されたコールバックID

失敗したイベントとセッションのオブジェクトには以下を含みます。

  • bool WillRetry 後に再送を試みる予定であるかどうかを示します。

ユーザーアトリビューション

アトリビューションコールバックと同様に、このコールバックは、アトリビューション値に変化があるたびに作動します。ユーザーの現在のアトビリューション値に関する情報にアクセスする場合はAdjustインスタンスの次のメソッドをコールしてください。

AdjustAttribution attribution = Adjust.getAttribution();

:現在のアトリビューションに関する情報は、バックエンドがアプリのインストールをトラッキングして、アトリビューションコールバックがトリガーされた後でのみ利用できます。SDKが初期化され最初のアトリビューションコールバックが作動する前にユーザーのアトリビューション値にアクセスすることはできません。

デバイスID

Adjust SDKがデバイスIDを受信するように設定できます。

IDFAを取得するには、Adjust インスタンスの関数getIdfa `をコースしてください。

string idfa = Adjust.getIdfa();

Google Play 開発者サービス広告ID

Google 広告ID(gps_adid)は、バックグラウンドでのスレッドでしか読み込みできないという制約があります。Adjust インスタンスのgetGoogleAdId メソッドをAction` デリゲートでコールすると、この条件以外でも取得できるようになります。

Adjust.getGoogleAdId((string googleAdId) => {
    // ...
});

Google 広告 IDを変数 googleAdId変数として利用できます。

Amazon広告ID

Amazon広告 IDを取得する必要がある場合は、Adjust インスタンスでgetAmazonAdIdメソッドをコールしてください。

string amazonAdId = Adjust.getAmazonAdId();

AdjustデバイスID

Adjustのバックエンドでは、アプリがインストールされている各デバイスに対してユニークなAdjustデバイスID(adid )を生成します。このIDを取得するには、Adjust インスタンスの以下のこのメソッドをコールしてください。

String adid = Adjust.getAdid();

adidに関する情報は、Adjustのバックエンドがアプリのインストールを計測した後でのみ利用できます。Adjust SDKが初期化され、アプリのインストールが正常に計測されrまで、adidにアクセスすることができません。

プリインストールトラッカー

Adjust SDKで、アプリがプリインストールされている(端末購入時にあらかじめインストールされている状態)デバイスのユーザーを認識するには、次の手順で設定を行なってください。

  1. [管理画面]で新しいトラッカーを作成してください。
  2. AdjustConfigのデフォルトトラッカーを設定してください。
AdjustConfig adjustConfig = new AdjustConfig(appToken, environment);
AdjustConfig adjustConfig = new AdjustConfig(appToken, environment);
Adjust.start(adjustConfig);

{TrackerToken}にステップ2で作成したトラッカートークン(たとえば{abc123})を入れてください。

管理画面にはトラッカーURL(http://app.adjust.com/など)が表示されますが、ソースコード内には、このURL全体ではなく、6文字または7文字のトークンのみを入力してください。

  1. アプリをビルドして実行してください。ログ出力に次のような行が表示されるはずです。

    Default tracker: 'abc123'
    

オフラインモード

オフラインモードは、後から送信する計測データを保持しつつ、Adjustサーバーへの送信を一時停止します。Adjust SDKがオフラインモード中の場合、全ての情報がファイルに保存されるため、イベントを多く発生させすぎないようご注意ください。

trueパラメータでsetOfflineMode を呼び出すと、オフラインモードを有効にできます。

Adjust.setOfflineMode(true);

falseパラメータでsetOfflineMode with false を呼び出すと、オフラインモードを解除できます。Adjust SDKがオンラインモードに戻った時、保存されていた情報は正しいタイムスタンプでAdjustのサーバーに送信されます。

この設定はセッション間で記憶されません。つまり、オフラインモード時にアプリを終了しても、次にSDKが起動した時にはオンラインモードとしてアプリが起動します。

トラッキングの無効化

setEnabledfalseパラメータを渡すことで、Adjust SDKが行うデバイスアクティビティの計測を全て無効にできます。この設定はセッション間で記憶されますが、最初のセッションの後でしか有効化できません。

Adjust.setEnabled(false);

Adjust SDKが現在有効かどうかは、 isEnabledメソッドで確認できます。enabled パラメータをtrueに設定して setEnabledを呼び出すと、Adjust SDKをいつでも有効にできます。

イベントバッファリング

アプリでイベント計測を多用している場合は、一部のネットワークリクエストを遅らせて、1分間ごとにまとめて送信したほうがいい場合があります。AdjustConfig インスタンスでイベントのバッファリングを有効にしてください。

AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}");

adjustConfig.setEventBufferingEnabled(true);

Adjust.start(adjustConfig);

何も設定されていない場合、イベントバッファリングはデフォルトで無効になっています。

バックグラウンドでのトラッキング

Adjust SDKは、アプリがバックグラウンドにある間は、ネットワークリクエストをデフォルトで一時停止するようになっています。この設定はAdjustConfig インスタンスで変更できます。

AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", "{YourEnvironment}");

adjustConfig.setSendInBackground(true);

Adjust.start(adjustConfig);

GDPR 忘れられる権利

EUの一般データ保護規制(GDPR)第17条に基づいて、ユーザーが「忘れられる権利(right to be forgotten)」を行使した場合は、Adjustに通知することができます。次のメソッドを呼び出して、ユーザーの申請をAdjustバックエンドに伝えるようAdjust SDKに指示してください。

```Adjust.gdprForgetMe();

この情報を受け取ると、Adjustは該当ユーザーのデータを消去し、Adjust SDKはユーザーのトラッキングを停止します。以降、そのデバイスからのリクエストはAdjustに送信されません。

テスト段階でこのメソッドを利用した場合も、消去処理は永続的なものであることに注意してください。元に戻すことはできません。

特定のユーザーに対してサードパーティーとの共有を無効にする

ユーザーがマーケティングを目的とするパートナーとのデータ共有を拒否する権利を行使した一方、統計目的でのデータ共有を許可した場合、Adjustに通知できるようになりました。

次のメソッドを呼び出して、ユーザーの選択(データ共有を無効にする)をAdjustバックエンドに伝えるようAdjust SDKに指示してください。

Adjust.disableThirdPartySharing();

この情報を受け取ると、Adjustは特定のユーザーに関してパートナーとのデータ共有をブロックし、Adjust SDKは通常通り機能します。

テストとトラブルシューティング

iOSデバッグ情報

ポストビルドスクリプトを使っていても、プロジェクトがすぐに使える状態で実行できるとは限りません。

必要であれば、dSYMファイルを無効化してください。Project Navigator からUnity-iPhone プロジェクトを選択し、Build Settings タブをクリックしてdebug information を検索してください。Debug Information Format またはDEBUG_INFORMATION_FORMAT オプションがあるはずです。これをDWARF with dSYM File からDWARFに変更してください。

ライセンス

ライセンス契約

ファイルmod_pbxproj.pyは、ApacheライセンスVer.2.0(以下「ライセンス」)に基づいて使用が許諾されています。 このファイルを使用するためには、本ライセンスの規約に従ってください。 本ライセンスのコピーはhttp://www.apache.org/licenses/LICENSE-2.0で入手できます。

Adjust SDKはMITライセンスを適用しています。

Copyright (c) 2012-2020 Adjust GmbH, http://www.adjust.com

以下に定める条件に従い、本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」) の複製を取得する全ての人に対し、 ソフトウェアを無制限に扱うことを無償で許可します。 これには、ソフトウェアの複製を 使用、複写、変更、マージ、掲載、流通、サブライセンス、および/または販売する権利、 また、ソフトウェアを提供する相手に同じ許可を与える 権利も無制限に含まれます。

上記の著作権表示ならびに本許諾表示を、ソフトウェアの全ての 複製または重要な部分に記載するものとします。

本ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。 ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証を含みますが、それに限定されたものではありません。 いかなる場合でも、 作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用 またはその他の取り扱いによって生じる一切の請求、損害、その他の義務について 何らの責任も負わないものと します。