日本語

ディープリンク

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.
}

ディファードディープリンクは、ユーザーがアプリをデバイスにインストールしていない場合に使用されます。トラッカーURLをクリックしたユーザーはアプリストアにリダイレクトされます。ユーザーがアプリを初めて起動すると、SDKはdeep_linkのコンテンツを読み取ります。

Adjust SDKはデフォルトでディファードディープリンクを開きます。追加設定の必要はありません。

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

Adjust SDKがディファードディープリンクを開くかどうかを決めることができます。これを行うには、Configオブジェクトにコールバックメソッドを追加します。

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

// Evaluate the deeplink to be launched.
config.setOnDeeplinkResponseListener(newOnDeeplinkResponseListener() {
    @Override
    public boolean launchReceivedDeeplink(Uri deeplink) {
        // ...
        if (shouldAdjustSdkLaunchTheDeeplink(deeplink)) {
            return true;
        } else {
            return false;
        }
    }
});

Adjust.onCreate(config);

SDKは、ディープリンクの情報を受け取ると、リスナーを使用してそれを届けます。SDKにはbooleanが返されます。返された値は、SDKがアクティビティを起動するかどうかを表します。trueが返された場合、SDKは対応するスキーム名を持つアクティビティを起動します。falseが返された場合、SDKはアクティビティを起動しません。

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

注意:
appWillOpenUrl(Uri) は、Android SDKバージョン4.14.0では推奨されていません。代わりにappWillOpenUrl(Uri, Context)を使用してください。

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

ユーザーをリアトリビュートするには、アプリ内でAdjust SDKにもう1つのコールをする必要があります。アプリがディープリンクのコンテンツを受け取る時に、appWillOpenUrl(Uri, Context)メソッドにコールを追加してください。その後、Adjust SDKはディープリンク内で新しいアトリビューションデータを探します。SDKが新しい情報を見つけると、リアトリビューションのためにAdjustバックエンドにその情報を送信します。

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がリンクをresolve(解析し、変換すること)するように設定しなければなりません。これを行うには、AdjustLinkResolutionクラスのresolveLinkメソッドを呼び出します。その後、Adjust SDKはカスタムリンクをフォローして、ディープリンクを開いたときにそれを解析します。これにより、メール計測キャンペーンとのインタラクションを記録できます。

resolveLinkWithUrlメソッドでは、以下のパラメーターが使用できます。

  • url - アプリを起動したディープリンク
  • resolveUrlSuffixArray - 解析される必要のある、設定済みキャンペーンのカスタムドメイン
  • adjustLinkResolutionCallback - 最終URLを含むコールバック

このメソッドは、resolveUrlSuffixArrayのドメインに対してディープリンクを確認します。一致するものがない場合、そのままディープリンクURLを転送します。一致するものがあった場合、リンクをresolve(解析し変換すること)しようとし、結果として使用されるディープリンクを返します。その後、callbackパラメーターにこれが保管され、返されたディープリンクを使ってユーザーをリアトリビュートできます。これを行うには、ディープリンクをAdjust.appWillOpenUrlメソッドに渡してください。

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