Skip to content

iOSディープリンクガイド

このガイドは、iOSアプリに適したディープリンク戦略を選ぶのに役立つ。どのメッセージングチャネルを使うか、Branchのようなサードパーティのリンクプロバイダーを利用するかどうかによって、適切な戦略を選択できる。

実装の詳細については、ディープリンクを参照せよ。トラブルシューティングについては、ディープリンクのトラブルシューティングを参照せよ。

リンクの種類を選ぶ

iOSアプリ内でBrazeメッセージのリンクを処理する方法は三つある。それぞれが異なる働きをし、異なるチャネルやユースケースに適している。

カスタムスキームのディープリンク

カスタムスキームのディープリンク(例:myapp://products/123)は、アプリを特定の画面に直接開く。それらは、リンクが第三者によって変更されないチャネルにとって最も簡単な選択肢だ。

カスタムスキームのディープリンクを使用するのは、次の場合だ:

  • プッシュ通知、アプリ内メッセージ、またはコンテンツカードの送信
  • アプリがインストールされていなければ、リンクが機能する必要はない。
  • クリックトラッキング (メールESPリンクラッピング) は必要ない

カスタムスキームのディープリンクは、以下の場合には使用しないこと:

  • メール送信時、メールサービスプロバイダー (ESP)はクリックトラッキングのためにリンクをラップする。これによりカスタムスキームが破綻する。
  • アプリがインストールされていない場合、Webページにリダイレクトするためのリンクが必要だ。

ユニバーサルリンク

ユニバーサルリンク(例:https://myapp.com/products/123)は標準的なHTTPS URLであり、iOSはこれをブラウザで開封する代わりにアプリへ転送できる。サーバー側の設定(AASAファイル)とアプリ側の設定(関連ドメインの権限)が必要だ。

ユニバーサルリンクを使うのは、次の場合だ:

  • メールを送っている。メールサービスプロバイダー (ESP)はトラッキングのためにリンクをラップするから、リンクはHTTPSでなければならない。
  • SMSやその他のチャネルで、リンクが包まれたり短縮されたりしている場合。
  • アプリがインストールされていない場合、Webページにリダイレクトするためのリンクが必要だ。
  • BranchやAppsFlyerのようなサードパーティのリンクプロバイダーを使っている。

以下の場合にはユニバーサルリンクを使用するな:

  • 必要なのは、プッシュ通知、アプリ内メッセージ、またはコンテンツカードからのディープリンクだけだ。カスタムスキームの方が単純だ。

アプリ内でWebURLを開く

このオプションは、アプリ内のモーダルWebView内でウェブページを開く。これは完全にBraze SDKによって処理される。URL処理のコードをBraze.WebViewController一切書く必要はない。

「アプリ内でWeb URLを開く」は次の場合に使用する:

  • アプリを離れることなく、Webページ(プロモーションや記事など)を表示したい。
  • そのURLは標準的なHTTPSWebページであり、特定のアプリ画面へのディープリンクではない。

以下の場合には「アプリ内でWeb URLを開く」を使用しないこと:

  • アプリ内の特定のビューに移動する必要がある。代わりに、カスタムスキームかユニバーサルリンクを使え。
  • そのWebページは認証が必要か、埋め込みをブロックするコンテンツセキュリティポリシーヘッダーを持っている。

各リンクタイプに必要なもの

カスタムスキームのディープリンク

ユニバーサルリンク

アプリ内でWebURLを開く

AASAファイルが必要な時

ユニバーサルリンクを使用する場合にのみ、Apple App Site Association (AASA) ファイルが必要となる。それはiOSに、アプリが処理できるURLを伝えるものだ。

AASAファイルが必要なのは以下の場合だ:

  • メールキャンペーンでディープリンクを送る(なぜならメールサービスプロバイダー (ESP) はリンクを HTTPS のトラッキング URL でラップするからだ)。
  • SMSキャンペーンでディープリンクを送る(リンクがHTTPS URLに短縮される可能性があるため)。
  • BranchやAppsFlyer、あるいは他のリンクプロバイダーを使っている(なぜなら彼らは独自のHTTPSドメインを使っているからだ)。
  • ユニバーサルリンクは、プッシュ通知やアプリ内メッセージ、あるいはコンテンツカードから使用できる(あまり一般的ではないが、可能ではあるforwardUniversalLinks = true)。

次の場合にはAASAファイルは必要ない:

  • カスタムスキームのディープリンク(例:myapp://)は、プッシュ通知、アプリ内メッセージ、またはコンテンツカードからのみ使用する。
  • アプリ内でWebURLを開封するオプションを使う。

AASAの設定手順については、ユニバーサルリンクとアプリリンクを参照せよ。

アプリコードでリンクを処理する必要がある時

どのデリゲートメソッドを実装するかは、使用するリンクの種類によって決まる。

BranchをBrazeと併用する

Branchをリンクプロバイダーとして使用する場合、標準的なユニバーサルリンクの設定に加えて、いくつかの追加ステップが必要となる:

  1. Branch SDKBranchのドキュメントに従ってBranch SDKを統合する。
  2. 関連ドメイン:Xcodeの「署名&」設定で、Branchドメイン(例:applinks:yourapp.app.link)を追加する。
  3. BrazeDelegate:BranchリンクをBrazeが直接処理するのではなく、Branch SDKにルーティングするようにbraze(_:shouldOpenURL:)実装する。
  4. ユニバーサルリンクを転送する:Braze SDKの設定でconfiguration.forwardUniversalLinks = true設定せよ。

実装の詳細とデバッグのガイダンスについては、ディープリンク用のBranchを参照せよ。

New Stuff!