アプリのマーケティングツール Adjust にディープリンクを設定するのに手間取ったので、まとめてみる
やりたいこと
おすすめの記事を SNS などで拡散
アプリを持っていないユーザーにはインストールしてもらい
すでにユーザーの場合はアプリでその記事を表示させたい
- アプリを持っていないユーザーにはインストール後の初回起動で対象のページが表示される( deferred deepLink )
- アプリをすでにインストールしているユーザーには、直接対象のページを表示させる( ユニバーサルリンク )
前提
カスタムスキーマとユニバーサルリンクが設定されていること(この辺りの説明はしない)
設定方法( Adjust コンソール)
プラットフォームの設定
アプリID
にはストアの ID を入れる。テストアプリだったり公開前なら適当な値で OK
IOS BUNDLE ID
には正しい値をいれないと、ユニバーサルリンクが効かないので注意
なので、スキーマごとに別々の
BUNDLE ID
でビルドしている場合、それぞれに Adjust のアプリ設定が必要になる
Universal Linking
を選択する
APP PREFIX
にはプロビジョニングファイルの先頭の文字列を入れる。これと先ほどの IOS BUNDLE ID
を組み合わせて、ユニバーサルリンクの設定がされるので正しい値を入れる
iOS アプリのユニバーサルリンク設定
先ほどの画面にあった 短いユニバーサルリンク
でアプリが呼び出されるので Xcode の Capability に設定する
app-site-association の確認
ユニバーサルリンクがドメインの検証が必要なので確認
短いユニバーサルリンク
+ /apple-app-site-association
にアクセスして appID が正しいかどうかを確認
appID
が ${APP PREFIX}.${IOS BUNDLE ID}
になっていれば OK
https://xyza.adj.st/apple-app-site-association
{
"applinks": {
"apps": [],
"details": [{
"appID": "AB123CD45E.jp.beijaflor.awesome-app",
"paths": ["/*"]
}]
}
}
ここまで設定すれば、ブラウザなどで 短いユニバーサルリンク
= https://xyza.adj.st/
のリンクをタップするとアプリが起動するはず
アプリが起動しないとするとユニバーサルリンクが発動しないので、設定が間違っていないか確認する
トラッカーの設定
トラッカーの 追加パラメータ
を選択
deeplink を設定できるのでアプリのカスタムスキーマで実装している URI を設定する
出来上がったトラッカーの URL はこんな感じ
先ほどのディープリンクの URI 自体もこの中に含まれるので、記事 ID などを動的に作りたい場合は普通に URL を書き換えてしまって OK
アプリに渡される URL
トラッカーの URL をブラウザ上でクリックすると、リダイレクトされ iTunes Store かアプリが起動されるかする
この時、アプリ側で呼び出される URL が違っているので、カスタムスキーマしか実装していないと罠にはまる(ハマった)
種類 | 実行タイミング | URL |
---|---|---|
deferred deepLink | アプリインストール直後 | beijaflor://open_url?url=https%3A%2F%2Fbeijaflor.jp%2F123456 |
ユニバーサルリンク | リンク直後 | https://xyza.adj.st/open_url?url=https%3A%2F%2Fbeijaflor.jp%2F123456 |
多分、こんな感じで実行される
-
https://app.adjust.com/
のトラッカー URL がクリックされる -
短いユニバーサルリンク
にリダイレクトされる(これをダイレクトユニバーサルリンクと呼ぶ) - アプリがインストールされているとブラウザではなくアプリが起動される
- アプリがインストールされていないとユニバーサルリンクが発動しないので、ブラウザで普通に表示される
- レンダリングのタイミングでさらに iTunes Store にリダイレクトされる
インストールされていると 3.
で終了(ブラウザが起動されないので)するという感じかな
最後に
別段難しいことはないのだけれど、それぞれの技術を横断的に知ってないと詰まったりするので、もう少しドキュメントがわかりやすくなったらいいなぁ、、、なんて
あと、トラッカー設定で入力したのとは別の URL でユニバーサルリンクが発動するのは罠