Skip to content

iOSディープリンクガイド

このガイドでは、使用するメッセージングチャネルやBranchなどのサードパーティリンクプロバイダーの利用有無に応じて、iOSアプリに適したディープリンク戦略を選択する方法を説明します。

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

iOSアプリでBrazeメッセージからのリンクを処理する方法は3つあります。それぞれ動作が異なり、適したチャネルやユースケースも異なります。

カスタムスキームディープリンク(例:myapp://products/123)は、アプリを特定の画面に直接開きます。リンクがサードパーティによって変更されないチャネルにおいて、最もシンプルな選択肢です。

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

  • プッシュ通知、アプリ内メッセージ、またはContent Cardsを送信する場合
  • アプリがインストールされていない場合にリンクが機能する必要がない場合
  • クリックトラッキング(メールESPリンクラッピング)が不要な場合

カスタムスキームディープリンクを使用しない場合:

  • メールを送信する場合 — メールサービスプロバイダー (ESP)がクリックトラッキングのためにリンクをラップするため、カスタムスキームが機能しなくなります
  • アプリがインストールされていない場合にWebページへフォールバックするリンクが必要な場合

ユニバーサルリンク(例:https://myapp.com/products/123)は標準的なHTTPS URLであり、iOSはブラウザで開く代わりにアプリにルーティングできます。サーバー側の設定(AASAファイル)とアプリ側の設定(Associated Domainsエンタイトルメント)が必要です。

ユニバーサルリンクを使用する場合:

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

ユニバーサルリンクを使用しない場合:

  • プッシュ通知、アプリ内メッセージ、またはContent Cardsからのディープリンクのみが必要な場合。カスタムスキームの方がシンプルです。

「アプリ内でWeb URLを開く」

このオプションは、アプリ内のモーダルWebViewでWebページを開きます。Braze SDKのBraze.WebViewControllerによって完全に処理されるため、URL処理コードを記述する必要はありません。

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

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

「アプリ内でWeb URLを開く」を使用しない場合:

  • アプリ内の特定のビューに移動する必要がある場合。代わりにカスタムスキームまたはユニバーサルリンクを使用してください。
  • Webページが認証を必要とする場合、または埋め込みをブロックするContent Security Policyヘッダーがある場合。

「アプリ内でWeb URLを開く」

AASAファイルが必要な場合

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

AASAファイルが必要な場合:

  • メールキャンペーンでディープリンクを送信する場合(メールサービスプロバイダー (ESP)がリンクをHTTPSクリックトラッキングURLでラップするため)。
  • SMSキャンペーンでディープリンクを送信する場合(リンクがHTTPS URLに短縮される可能性があるため)。
  • Branch、AppsFlyer、またはその他のリンクプロバイダーを使用する場合(独自のHTTPSドメインを使用するため)。
  • プッシュ通知、アプリ内メッセージ、またはContent Cardsからユニバーサルリンクを使用する場合(一般的ではありませんが、forwardUniversalLinks = trueで可能です)。

AASAファイルが不要な場合:

  • プッシュ通知、アプリ内メッセージ、またはContent Cardsからカスタムスキームディープリンク(例:myapp://)のみを使用する場合。
  • Open Web URL Inside Appオプションを使用する場合。

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

リンクを処理するためにアプリコードが必要な場合

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

BrazeとBranchを併用する

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

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

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

New Stuff!