ディープリンク

Adjust SDKでは、ディープリンクを使用してユーザーをアプリ内の特定のページに誘導することができます。また、ディープリンクとそのコンテンツを収集して後ほど利用することも可能です。

ディープリンクは2種類あります。

  • ダイレクト​ :ダイレクトディープリンクは、ユーザーがアプリをすでにデバイスにインストールしている場合に使用されます。この場合、ディープリンクはユーザーをリンクで指定された画面にリダイレクトします。
  • ディファード​ :ディファードディープリンクは、ユーザーがアプリをデバイスにインストールしていない場合に使用されます。この場合、ディープリンクは、アプリをインストールするためにユーザーをまずApp Storeに送り、アプリをインストールして起動した後に、SDKがユーザーをリンクで指定された画面にリダイレクトします。

ディープリンクURLは、ユーザーがリンクURLからアプリを起動した後、SDKを使うことでアクセスが可能になります。

ダイレクトディープリンク

ユーザーがすでにデバイスにアプリをインストールしている場合、ユーザーがディープリンクを含むリンクをクリックすると起動します。その後、ディープリンク情報を解析して後ほど利用することができます。これを行うには、一意のスキーム名を選択するようにしてください。

ユーザーがディープリンクをクリックしたときに、特定のアクティビティが起動するように設定できます。

  1. AndroidManifest.xml ファイル内のアクティビティに一意のスキーム名を割り当てます。
  2. アクティビティ定義にintent-filterセクションを追加します。
  3. 任意のスキーム名で android:schemeプロパティ値を割り当てます。

例えば、MainActivityというアクティビティを開くには、以下のように設定できます:

<activity     android:name=".MainActivity"     android:configChanges="orientation|keyboardHidden"     android:label="@string/app_name"     android:screenOrientation="portrait">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="adjustExample" />
    </intent-filter>
</activity>

ユーザーがリンクURLをクリックしたときにアプリを開くには、そのスキーム名をdeep_linkパラメーターとしてAdjustリンクに追加します。追加情報を含まないリンクURLは次のようになります。https://app.adjust.com/abc123?deep_link=adjustExample%3A%2F%2F

重要:
deep_link パラメーターは URLエンコードする必要があります。

上記の例に従って設定すると、ユーザーがリンクURLを操作した時にアプリが起動します。アプリが開くと、MainActivityアクティビティが起動します。MainActivityクラス内でdeep_linkパラメーターの内容に関する情報を受け取ると、SDKがパラメーターのコンテンツをデコードします。

deep_linkパラメーターコンテンツの配信場所を設定できます。これを行うには、アクティビティにandroid:launchModeプロパティを設定してください。これはAndroidManifest.xmlファイルで確認できます。android:launchMode プロパティの詳細については、Androidの公式ドキュメント を参照してください。

SDKは、アクティビティの Intent オブジェクト内でディープリンク情報を提供します。これを行うには、アクティビティの onCreate または onNewIntent メソッドを使用します。アプリを起動してこれらのメソッドのいずれかをトリガーすると、ディープリンクのコンテンツにアクセスできるようになります。その後、アプリの他の場所でこの情報を使用できます。

これらのメソッドからディープリンクのコンテンツを抽出する方法は以下の通りです。

Java

onCreateメソッドを使用する場合

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Intent intent = getIntent();
    Uri data = intent.getData();
// data.toString()-> This is your deep_link parameter value.
}

onNewIntentメソッドを使用する場合

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

Uri data = intent.getData();
// data.toString()-> This is your deep_link parameter value.
}

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

Adjust SDKは、デフォルトでディファードディープリンクを開きます。追加の設定は必要ありません。この動作を無効化または変更するには、ディファードディープリンクコールバックを設定する必要があります。

ディファードディープリンクのコールバック

Adjust SDKがディファードディープリンクを受け取った時に、デリゲート関数を呼び出すように設定することができます。このデリゲート関数は、ディープリンクを 文字列​ の引数で受け取ります。

ディープリンクを開く場合は、デリゲート関数でtrueを返してください。ファイルを開かない場合は、 falseを返します。

Java
Javascript
AdjustConfig config = new AdjustConfig(this, appToken, environment);

// Evaluate the deeplink to be launched.
config.setOnDeeplinkResponseListener(new OnDeeplinkResponseListener() {
            @Override
            public boolean launchReceivedDeeplink(Uri deeplink) {
                Log.d("example", "Deferred deep link callback called!");
                Log.d("example", "Deep link URL: " + deeplink);

                return true;
            }
        });

Adjust.onCreate(config);

ディープリンクを使用したリアトリビューション

Adjustはディープリンクを使ったリエンゲージメントキャンペーンをサポートしています。詳しくは、アトリビューションデータをディープリンクに追加する方法をご覧ください。

ユーザーをリアトリビュートするには、アプリ内でAdjust SDKにもう1つのコールをする必要があります。アプリがディープリンクのコンテンツを受け取る時に、appWillOpenUrl(Uri, Context)メソッドにコールを追加してください。

Java
Javascript

onCreateメソッドを使用する場合

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Intent intent = getIntent();
    Uri data = intent.getData();
Adjust.appWillOpenUrl(data,getApplicationContext());
}

onNewIntentメソッドを使用する場合

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);

Uri data = intent.getData();
Adjust.appWillOpenUrl(data,getApplicationContext());
}

リンクのresolution(解析と変換)

一部のEメールサービスプロバイダーESPは、マーケティングキャンペーンに独自のカスタムトラッキングドメインを使用しています。カスタムドメインでクリックを計測する場合は、SDKを設定してリンクを解析する必要があります。これを行うには、 AdjustLinkResolution クラスの resolveLink メソッドを呼び出します。Adjust SDKはカスタムリンクをたどって、ディープリンクを開いた時にそれを解析します。これにより、Eメールトラッキングキャンペーンとのやり取りを記録することが可能です。

resolveLinkWithUrlメソッドは以下のパラメーターを受け取ります。

  • url - アプリケーションを開いたディープリンク。
  • resolveUrlSuffixArray - 解析する必要がある設定済みキャンペーンのカスタムドメイン。
  • adjustLinkResolutionCallback - 最終URLを含むコールバック。

このメソッドは、 resolveUrlSuffixArray内のドメインに対してディープリンクを確認します。一致するものが見つからない場合、ディープリンクURLをそのまま転送します。一致するものが見つかった場合、リンクの解析を試み、結果のディープリンクを返します。その後、これを callbackパラメーターに保存します。その後、返されたディープリンクを使用してユーザーをリアトリビュートできます。これを行うには、ディープリンクをAdjust.appWillOpenUrlメソッドにパスします。

注意:
URLの解析を試みると、Adjust SDKは最大10のリダイレクトをフォローアップします。フォローした最新のURLを callback URLとして返します。リダイレクトが10以上ある場合、SDKは 10番目 のリダイレクトURLを返します。
Java
AdjustLinkResolution.resolveLink(url, 
                                 new String[]{"example.com"},
                                 new AdjustLinkResolution.AdjustLinkResolutionCallback() {
    @Override
    public void resolvedLinkCallback(Uri resolvedLink) {
        Adjust.appWillOpenUrl(resolvedLink,getApplicationContext());
    }
});