要件
新規アプリを作成する
Adjustダッシュボードでアプリを作成 します。
Adjustダッシュボードは、各アプリに対してアプリID(例:com.example.app)とアプリスキーム(例:example://)をそれぞれ1つのみサポートしている点にご注意ください。リリース用とデバッグ用で異なるアプリIDやアプリスキームを使用している場合は、デバッグ用に別のアプリを作成してください。
アプリのプラットフォーム設定 でAndroidを追加します。アプリIDがまだ作成されていない場合、またはアプリIDが不明な場合は、 I don’t have an app ID yet のチェックボックスを選択します。このガイドの残りの部分に従って、必要なデータポイントを全て収集したら、ダッシュボードのプラットフォーム設定に戻って設定を完了してください。
ブランドドメインを設定する
Adjustダッシュボードで、Adjustのgo.linkドメイン(例:brandname.go.link)を使用してブランドドメインを設定 します。組織でエンタープライズドメイン を使用している場合は、その設定も行ってください。
iOSアプリとAndroidアプリがAdjustで別のアプリを使用している場合は、Adjustダッシュボードで両方のアプリに対して同じブランドドメイン(brandname.go.link)を選択するようにしてください。
本番ビルドとデバッグビルドで別々のアプリを使用している場合は、デバッグ用アプリ用に別のブランドドメイン(brandnamedebug.go.link)を作成してください。また、Adjust上でiOSとAndroidのデバッグアプリを別々に管理している場合は、Adjustダッシュボードで両方のデバッグアプリに対して同じブランドドメインを選択していることを確認してください。
次のセクションでAndroid Studioで設定するブランドドメインをメモしておいてください。
アプリIDとアプリスキームを確認する
ディープリンクを設定するには、 アプリID と アプリスキーム を特定する必要があります。この設定は通常、以下のいずれかの設定と一致します。値を確認するには、以下の例を参考にしてください。
この設定では、アプリIDはビルドGradleファイルで定義され、アプリスキームはアプリレベルのAndroidManifest.xmlにハードコーディングされています。
applicationId = "com.example.app"
これは、リリースビルドとdebug buildが異なるアプリに共通する設定です。アプリIDとアプリスキームはいずれも、ビルドGradleファイルで動的に定義されます。
applicationId = "com.example.app"
manifestPlaceholders[ "appScheme" ] = "example"
// Debug App ID: com.example.app.debug
applicationIdSuffix = ".debug"
manifestPlaceholders[ "appScheme" ] = "exampleDebug"
Adjustダッシュボードで設定を行うためにアプリIDとアプリスキームをメモしておきます。これらのファイルを確認した後にアプリスキームが見つからない場合は、次のセクションで作成します。
アプリレベルのAndroidManifest.xmlファイルを開き、以下のそれぞれに対してインテントフィルターを追加します。
Android アプリリンク
リリースAdjustブランドドメイン(brandname.go.link)
エンタープライズドメイン(click.brandname.com)(該当する場合)
デバッグAdjustブランドリンク(brandnamedebug.go.link)(該当する場合)
アプリスキーム
アプリスキームがまだない場合は、これも追加します。これはhttpまたはhttps以外にする必要があります。
リリースアプリスキーム(example://)
デバッグアプリスキーム(exampleDebug://)(該当する場合)
以下に、既存のタスクが存在する場合に、ディープリンクが常にそのタスク内でアプリを開くようにするための2つの方法を示します。アプリの現在のメインアクティビティのローンチモード設定に対応するアプローチを選択してください。
メインアクティビティアプローチ
メインアクティビティがすでにsingleTaskまたはsingleInstanceの場合は、これを使用してください。
メインアクティビティはディープリンクを直接受け取ります。
専用ディープリンクアクティビティ アプローチ メインアクティビティが
singleTop、standard 、または起動モードを指定していない場合はこれを使用します。
別のsingleTaskアクティビティがディープリンクインテントを受け取り、メインのアクティビティに転送して完了します。
これらのオプションを使用することで、メインアクティビティの起動モードを変更することなく、ディープリンクが正しく動作するようになります。戦勝については、Androidの起動モードに関するドキュメント を参照してください。
<!-- Use this approach if MainActivity is already singleTask or singleInstance -->
android:name = ".MainActivity"
android:launchMode = "singleTask"
<!-- Your existing LAUNCHER intent-filter -->
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
<!-- Add this intent filter for your Adjust branded domain -->
< intent-filter android:autoVerify = "true" >
< action android:name = "android.intent.action.VIEW" />
< category android:name = "android.intent.category.DEFAULT" />
< category android:name = "android.intent.category.BROWSABLE" />
android:host = "brandname.go.link" />
<!-- Add this intent filter for your app scheme -->
< action android:name = "android.intent.action.VIEW" />
< category android:name = "android.intent.category.DEFAULT" />
< category android:name = "android.intent.category.BROWSABLE" />
< data android:scheme = "example" />
<!-- Use this approach if MainActivity is singleTop, standard, or doesn't specify a launch mode -->
android:name = ".MainActivity"
android:launchMode = "singleTop"
<!-- Your existing LAUNCHER intent-filter -->
< action android:name = "android.intent.action.MAIN" />
< category android:name = "android.intent.category.LAUNCHER" />
<!-- Add this new activity to your manifest to receive deep links -->
android:name = ".DedicatedDeepLinkActivity"
android:launchMode = "singleTask"
android:theme = "@android:style/Theme.Translucent.NoTitleBar" >
<!-- Add this intent filter for your Adjust branded domain -->
< intent-filter android:autoVerify = "true" >
< action android:name = "android.intent.action.VIEW" />
< category android:name = "android.intent.category.DEFAULT" />
< category android:name = "android.intent.category.BROWSABLE" />
android:host = "brandname.go.link" />
<!-- Add this intent filter for your app scheme -->
< action android:name = "android.intent.action.VIEW" />
< category android:name = "android.intent.category.DEFAULT" />
< category android:name = "android.intent.category.BROWSABLE" />
< data android:scheme = "example" />
重要 メインのアクティビティには`android:taskAffinity=""`を設定しないでください。タスクアフィニティ が空の場合、`DatedDeepLinkActivity`は既存のアプリタスクを見つけることができず、 2つ目のアプリインスタンスが起動します。
Adjustダッシュボードで、収集したデータポイントを使用して、アプリのAndroidプラットフォームの設定 を完了します。
データポイント 例 要件 リリースアプリID com.example.app 必須 デバッグアプリID com.example.app.debug デバッグアプリIDがリリースアプリIDと異なる場合に必要です。 リリースアプリスキーム example:// Android アプリリンクがサポートされていないユースケースに必要です。 デバッグアプリスキーム exampleDebug:// デバッグアプリスキームがリリースアプリスキームと異なる場合に必要です。
Android アプリリンクで ディープリンク を設定するには、リリースおよびdebug buildのSHA-256証明書のフィンガープリントも取得 する必要があります。