21
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Adjust でディープリンクを設定する【iOS】

Last updated at Posted at 2018-08-15

アプリのマーケティングツール Adjust にディープリンクを設定するのに手間取ったので、まとめてみる

やりたいこと

おすすめの記事を SNS などで拡散
アプリを持っていないユーザーにはインストールしてもらい
すでにユーザーの場合はアプリでその記事を表示させたい

Artboard.png

  • アプリを持っていないユーザーにはインストール後の初回起動で対象のページが表示される( deferred deepLink )
  • アプリをすでにインストールしているユーザーには、直接対象のページを表示させる( ユニバーサルリンク )

前提

カスタムスキーマとユニバーサルリンクが設定されていること(この辺りの説明はしない)

設定方法( Adjust コンソール)

プラットフォームの設定

Screen Shot 2018-08-15 at 18.44.04.png

アプリID にはストアの ID を入れる。テストアプリだったり公開前なら適当な値で OK
IOS BUNDLE ID には正しい値をいれないと、ユニバーサルリンクが効かないので注意

なので、スキーマごとに別々の BUNDLE ID でビルドしている場合、それぞれに Adjust のアプリ設定が必要になる

Screen Shot 2018-08-15 at 18.45.37.png

Universal Linking を選択する
APP PREFIX にはプロビジョニングファイルの先頭の文字列を入れる。これと先ほどの IOS BUNDLE ID を組み合わせて、ユニバーサルリンクの設定がされるので正しい値を入れる

iOS アプリのユニバーサルリンク設定

先ほどの画面にあった 短いユニバーサルリンク でアプリが呼び出されるので Xcode の Capability に設定する

Screen Shot 2018-08-15 at 19.01.41.png

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/ のリンクをタップするとアプリが起動するはず
アプリが起動しないとするとユニバーサルリンクが発動しないので、設定が間違っていないか確認する

トラッカーの設定

トラッカーの 追加パラメータ を選択

Screen Shot 2018-08-15 at 18.47.19.png

deeplink を設定できるのでアプリのカスタムスキーマで実装している URI を設定する

Screen Shot 2018-08-15 at 18.49.06.png

出来上がったトラッカーの 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

多分、こんな感じで実行される

  1. https://app.adjust.com/ のトラッカー URL がクリックされる
  2. 短いユニバーサルリンク にリダイレクトされる(これをダイレクトユニバーサルリンクと呼ぶ)
  3. アプリがインストールされているとブラウザではなくアプリが起動される
  4. アプリがインストールされていないとユニバーサルリンクが発動しないので、ブラウザで普通に表示される
  5. レンダリングのタイミングでさらに iTunes Store にリダイレクトされる

インストールされていると 3. で終了(ブラウザが起動されないので)するという感じかな

最後に

別段難しいことはないのだけれど、それぞれの技術を横断的に知ってないと詰まったりするので、もう少しドキュメントがわかりやすくなったらいいなぁ、、、なんて
あと、トラッカー設定で入力したのとは別の URL でユニバーサルリンクが発動するのは罠

参考

21
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?