Branch (ディープリンク)
Branchは、ユーザーのタッチポイントを包括的に把握することで、デバイス、チャネル、プラットフォームを横断して獲得、エンゲージメント、測定を行うためのモバイルリンクプラットフォームです。
この統合はBranchによって管理されます。
統合について
BrazeとBranchの統合により、ユーザージャーニーの開始を適切にアトリビューションし、ディープリンクを使用して目的のロケーションに顧客を接続することで、より優れたエクスペリエンスを顧客に提供できます。
統合
BranchのSDK統合ガイドに従って、Branch統合を稼働させます。その他のユースケースについては以下を参照してください。
iOSユニバーサルリンクのサポート
BrazeからiOSユニバーサルリンクをディープリンクとして送信できるようにするには:
ステップ 1:Branchユニバーサルリンクの設定
Branchのドキュメントに従ってユニバーサルリンクを設定します。この設定の一環として、BranchはAASAファイルをBranchリンクドメイン(例:yourapp.app.link)に自動的にホストします。
ステップ 2:Associated Domainsの設定
Xcodeで、アプリターゲット > Signing & Capabilities に移動し、Associated Domains にBranchリンクドメインを追加します:
1
2
applinks:yourapp.app.link
applinks:yourapp-alternate.app.link
カスタムBranchドメインを使用している場合は、それも追加してください。
ステップ 3:Brazeでユニバーサルリンクを転送する
Braze SDKの設定でforwardUniversalLinksをtrueに設定し、SDKがユニバーサルリンクをアプリのAppDelegateに転送するようにします:
1
2
3
let configuration = Braze.Configuration(apiKey: "<BRAZE_API_KEY>", endpoint: "<BRAZE_ENDPOINT>")
configuration.forwardUniversalLinks = true
let braze = Braze(configuration: configuration)
1
2
3
4
BRZConfiguration *configuration = [[BRZConfiguration alloc] initWithApiKey:@"<BRAZE_API_KEY>"
endpoint:@"<BRAZE_ENDPOINT>"];
configuration.forwardUniversalLinks = YES;
Braze *braze = [[Braze alloc] initWithConfiguration:configuration];
ステップ 4:BrazeDelegateでBranchリンクをルーティングする
BrazeDelegateを実装して、Brazeが処理する前にBranchリンクをインターセプトします。これにより、Branchがリンクを処理し、独自のルーティングを実行できるようになります:
1
2
3
4
5
6
7
8
9
10
func braze(_ braze: Braze, shouldOpenURL context: Braze.URLContext) -> Bool {
if let host = context.url.host,
host.contains("app.link") || host.contains("yourdomain.com") {
// Let Branch handle this link
Branch.getInstance.handleDeepLink(context.url)
return false
}
// Let Braze handle all other links
return true
}
1
2
3
4
5
6
7
8
- (BOOL)braze:(Braze *)braze shouldOpenURL:(BRZURLContext *)context {
NSString *host = context.url.host;
if (host && ([host containsString:@"app.link"] || [host containsString:@"yourdomain.com"])) {
[[Branch getInstance] handleDeepLink:context.url];
return NO;
}
return YES;
}
該当する場合は、yourdomain.comをカスタムBranchドメインに置き換えてください。
メールでのディープリンク
ユニバーサルリンクとアプリリンクに関するドキュメントを参照するか、Branchのドキュメントを参照して、Braze経由で送信されるメールからのディープリンクを設定します。
ユーザーがアプリにコール権限を付与しない限り、iOS用のGmailアプリでは電話番号へのリンク(hrefにtelを付加)はサポートされません。
メールサービスプロバイダー (ESP) によっては、クリックトラッキングされたユニバーサルリンクをサポートするために追加のカスタマイズが必要になる場合があります。この情報については、専用の記事で紹介しています。詳しくは以下のリファレンスを参照してください:
トラブルシューティング
BrazeのCampaignsからBranchリンクが期待どおりに動作しない場合は、以下のステップに従ってください。
Braze外でリンクが動作するか確認する
物理的なiOSデバイスのメモアプリからBranchリンクを開きます。アプリが開かない場合:
- 問題はBranchまたはAASAの設定にあり、Brazeの問題ではありません。
https://yourapp.app.link/.well-known/apple-app-site-associationでBranchのAASAを検証してください。- BranchダッシュボードでBundle IDとTeam IDが一致していることを確認してください。
デュアルロギングを有効にする
- Braze:詳細ログを有効にし、
Opening '<URL>':エントリを探します。これにより、SDKがリンクを受信したことが確認できます。 - Branch:Branchテストモードを有効にし、Branchダッシュボードでリンククリックイベントを確認します。
- 比較:Brazeがリンクをログに記録しているがBranchがクリックを検出していない場合、
BrazeDelegateのルーティングロジックがリンクを正しくインターセプトしていない可能性があります。shouldOpenURLのドメインマッチにBranchドメインが含まれていることを確認してください。
よくある問題
| 症状 | 考えられる原因 | 修正方法 |
|---|---|---|
| BranchリンクがSafariで開く | BranchドメインのAASAが無効または欠落 | Associated DomainsとAASAファイルを確認する |
| Branchリンクは開くが間違った画面に遷移する | Branchリンクデータの設定ミス | Branchダッシュボードでルーティングルールを確認する |
| プッシュからは動作するがメールからは動作しない | クリックトラッキングドメインにAASAが欠落 | ESPのクリックトラッキングドメインにAASAをホストする。メール設定を参照 |
shouldOpenURLがBranchリンクに対して発火しない |
forwardUniversalLinksが有効になっていない |
configuration.forwardUniversalLinks = trueを設定する |
| Branchリンクがメモアプリからは動作するがBrazeからは動作しない | BrazeDelegateがBranch URLに対してtrueを返している |
shouldOpenURLのドメインチェックがBranchドメインと一致しているか確認する |
その他のディープリンクのトラブルシューティングシナリオについては、ディープリンクのトラブルシューティングを参照してください。