Firebase Dynamic Links Builder API を使用して、短いダイナミック リンクまたは長いダイナミック リンクを作成できます。この API は、長いダイナミック リンクまたはダイナミック リンク パラメータを含むオブジェクトのいずれかを受け入れ、次の例のような URL を返します。
https://example.com/link/WXYZ https://example.page.link/WXYZ
Firebase と Dynamic Links SDK を設定する
Android アプリで Dynamic Links を作成する前に、Firebase SDK を含める必要があります。アプリが Dynamic Links を受信するように設定されている場合、これらの手順は既に完了しているため、このセクションをスキップできます。
まだ行っていない場合は、 Firebase を Android プロジェクトに追加します。
アプリを登録するときに、SHA-1 署名キーを指定します。アプリ リンクを使用する場合は、SHA-256 キーも指定します。
モジュール (アプリ レベル) の Gradle ファイル(通常は
<project>/<app-module>/build.gradle
) で、Dynamic Links Android ライブラリの依存関係を追加します。ライブラリのバージョン管理には、 Firebase Android BoMを使用することをお勧めします。Dynamic Links で最適なエクスペリエンスを得るには、Firebase プロジェクトでGoogle アナリティクスを有効にし、Google アナリティクス用の Firebase SDK をアプリに追加することをお勧めします。
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。
(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する
Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。
アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.2.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:31.2.0') // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Firebase Android BoMを使用すると、アプリは常に互換性のあるバージョンの Firebase Android ライブラリを使用します。
(代替) BoM を使用せずに Firebase ライブラリの依存関係を追加する
Firebase BoM を使用しないことを選択した場合は、依存関係の行で各 Firebase ライブラリ バージョンを指定する必要があります。
アプリで複数のFirebase ライブラリを使用する場合は、BoM を使用してライブラリ バージョンを管理することを強くお勧めします。これにより、すべてのバージョンに互換性が確保されます。
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.2.0' }
- Firebase コンソールで、 Dynamic Linksセクションを開きます。
利用規約に同意してダイナミック リンクのドメインを設定していない場合は、プロンプトが表示されたら同意してください。
Dynamic Links ドメインをすでにお持ちの場合は、メモしておいてください。プログラムで Dynamic Links を作成する場合は、Dynamic Links ドメインを指定する必要があります。
- 推奨: ディープ リンクとフォールバック リンクで許可される URL パターンを指定します。そうすることで、ドメインから管理していないサイトにリダイレクトする Dynamic Links を権限のない第三者が作成するのを防ぐことができます。特定の URL パターンを許可するを参照してください。
Firebase コンソールを使用する
テスト目的で、またはマーケティング チームがソーシャル メディアの投稿などで使用できるリンクを簡単に作成するために、単一のダイナミック リンクを生成する場合、最も簡単な方法は、 Firebase コンソールにアクセスして作成することです。ステップバイステップのフォームに従って手動で。
パラメータから動的リンクを作成する
ダイナミック リンクを作成するには、Builder で新しい
DynamicLink
オブジェクトを作成し、Builder メソッドでダイナミック リンク パラメータを指定します。次に、buildDynamicLink
またはbuildShortDynamicLink
を呼び出します。次の最小限の例では、Android の Android アプリと iOS のアプリ
com.example.ios
で開くhttps://www.example.com/
への長いダイナミック リンクを作成します。Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
短い Dynamic Link を作成するには、同じ方法で DynamicLink を作成してから、
DynamicLink
を呼び出しbuildShortDynamicLink
。短いリンクの構築にはネットワーク呼び出しが必要なため、リンクを直接返す代わりに、buildShortDynamicLink
はTask
を返します。これにより、リクエストの完了時に短いリンクが利用可能になります。例えば:Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
デフォルトでは、短いダイナミック リンクは 17 文字のリンク サフィックスで生成されるため、誰かが有効なダイナミック リンクを推測できる可能性はほとんどありません。あなたのユースケースで、誰かが短いリンクをうまく推測しても害がない場合は、一意であるために必要な長さだけのサフィックスを生成することを好むかもしれません。これは、
ShortDynamicLink.Suffix.SHORT
をbuildShortDynamicLink
メソッドに渡すことによって実行できます。 :Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
動的リンク パラメータ
Dynamic Link Builder API を使用して、サポートされている任意のパラメーターを使用して Dynamic Links を作成できます。詳細については、 API リファレンスを参照してください。
次の例では、いくつかの共通パラメーター セットを使用してダイナミック リンクを作成します。
Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
次の方法で Dynamic Link パラメータを設定できます。
DynamicLink パラメータ setLink アプリが開くリンク。アプリが処理できる URL (通常はアプリのコンテンツまたはペイロード) を指定します。これにより、アプリ固有のロジック (ユーザーへのクーポンの提供やウェルカム画面の表示など) が開始されます。このリンクは適切な形式の URL である必要があり、適切に URL エンコードされ、HTTP または HTTPS を使用する必要があり、別のダイナミック リンクであってはなりません。
setDomainUriPrefix ダイナミック リンクの URL プレフィックス。Firebase コンソールで確認できます。 Dynamic Link ドメインは次の例のようになります: https://example.com/link https://example.page.link
Android パラメータ setFallbackUrl アプリがインストールされていないときに開くリンク。アプリがインストールされていないときに Play ストアからアプリをインストールする以外のことを行うには、これを指定します。たとえば、コンテンツのモバイル Web バージョンを開くか、アプリのプロモーション ページを表示します。 setMinimumVersion リンクを開くことができるアプリの最小バージョンの versionCode
。インストールされているアプリが古いバージョンの場合、ユーザーは Play ストアに移動してアプリをアップグレードします。Ios パラメータ setAppStoreId アプリがインストールされていないときにユーザーを App Store に送るために使用されるアプリの App Store ID setFallbackUrl アプリがインストールされていないときに開くリンク。アプリがインストールされていないときに App Store からアプリをインストールする以外のことを行うには、これを指定します。たとえば、コンテンツのモバイル Web バージョンを開くか、アプリのプロモーション ページを表示します。 setCustomScheme アプリのカスタム URL スキーム (アプリのバンドル ID 以外に定義されている場合) setIpadFallbackUrl アプリがインストールされていない場合に iPad で開くためのリンク。アプリがインストールされていないときに App Store からアプリをインストールする以外のことを行うには、これを指定します。たとえば、コンテンツの Web バージョンを開くか、アプリのプロモーション ページを表示します。 setIpadBundleId リンクを開くために iPad で使用する iOS アプリのバンドル ID。アプリは、Firebase コンソールの [概要] ページからプロジェクトに接続する必要があります。 setMinimumVersion リンクを開くことができるアプリの最小バージョンのバージョン番号。このフラグはアプリが開かれたときにアプリに渡され、アプリはそれをどう処理するかを決定する必要があります。 NavigationInfoParameters setForcedRedirectEnabled 「1」に設定すると、ダイナミック リンクが開いたときにアプリのプレビュー ページをスキップし、代わりにアプリまたはストアにリダイレクトします。アプリのプレビュー ページ (デフォルトで有効) は、ユーザーがアプリで Dynamic Links を開いたときに、最も適切なリンク先に確実に移動できるようにします。ただし、このページがなくてもダイナミック リンクを確実に開くことができるアプリでのみダイナミック リンクが開かれることが予想される場合は、このパラメーターを使用して無効にすることができます。このパラメーターは、iOS でのみダイナミック リンクの動作に影響します。 SocialMetaTagParameters setTitle ダイナミック リンクがソーシャル投稿で共有されるときに使用するタイトル。 セット説明 ダイナミック リンクがソーシャル投稿で共有されるときに使用する説明。 setImageUrl このリンクに関連する画像への URL。画像は 300x200 ピクセル以上、300 KB 未満である必要があります。 Google アナリティクス パラメータ setSource
setMedium
セットキャンペーン
setTerm
setContentGoogle Play 分析パラメーター。これらのパラメータ ( utm_source
、utm_medium
、utm_campaign
、utm_term
、utm_content
) は Play ストアに渡されるだけでなく、リンク ペイロードに追加されます。ItunesConnectAnalytics パラメータ setProviderToken
setAffiliateToken
setCampaignTokeniTunes Connect 分析パラメーター。これらのパラメーター ( pt
、at
、ct
) は App Store に渡されます。長いダイナミック リンクを短くする
長いダイナミック リンクを短縮するには、他のビルダー メソッドでパラメーターを設定する代わりに、
setLongLink
を使用してダイナミック リンクの URL を指定します。Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse("https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios") }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and // com.google.firebase.dynamiclinks.ktx.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-01-26 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"必要な情報がない" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"複雑すぎる / 手順が多すぎる" },{ "type": "thumb-down", "id": "outOfDate", "label":"最新ではない" },{ "type": "thumb-down", "id": "translationIssue", "label":"翻訳に関する問題" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"サンプル / コードに問題がある" },{ "type": "thumb-down", "id": "otherDown", "label":"その他" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"わかりやすい" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"問題の解決に役立った" },{ "type": "thumb-up", "id": "otherUp", "label":"その他" }]