Firebase Dynamic Links の Builder API を使用して短いダイナミック リンクまたは長いダイナミック リンクを作成できます。この API は、長いダイナミック リンクと、ダイナミック リンクのパラメータを含むオブジェクトのいずれかを受け入れ、次の例のような URL を返します。
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Firebase と Dynamic Links SDK を設定する
Android アプリでダイナミック リンクを作成する場合は、Firebase SDK をインクルードしておく必要があります。アプリがダイナミック リンクを受信するように設定されている場合、この手順はすでに完了しているため、このセクションをスキップして構いません。
Flutter 用の Firebase SDK をインストールして初期化します(まだ行っていない場合)。
Flutter プロジェクトのルート ディレクトリから、次のコマンドを実行して、Dynamic Links プラグインをインストールします。
flutter pub add firebase_dynamic_links
Android アプリをビルドする場合は、Firebase コンソールの [プロジェクトの設定] ページを開き、SHA-1 署名鍵を指定していることを確認します。アプリリンクを使用する場合は SHA-256 の鍵も指定します。
Firebase コンソールで [Dynamic Links] セクションを開きます。
Dynamic Links のドメインをまだ設定していない場合は、[始める] ボタンをクリックして、画面の指示に沿って操作します。
Dynamic Links ドメインを作成している場合は、それをメモしておきます。ダイナミック リンクをプログラムで作成する場合は、Dynamic Links ドメインを指定する必要があります。
推奨: [その他](⋮)メニューで、ディープリンクとフォールバック リンクで使用できる URL パターンを指定します。これにより、お客様のドメインからお客様の管理外のサイトへリダイレクトする Dynamic Links が不正ユーザーによって作成されるのを防止できます。特定の URL パターンを許可するをご覧ください。
パラメータからダイナミック リンクを作成する
ダイナミック リンクを作成するには、新しい DynamicLinkParameters
オブジェクトを作成し、buildLink()
または buildShortLink()
に渡します。
次のシンプルな例では、com.example.app.android
(Android の場合)とアプリ com.example.app.ios
(iOS の場合)で開く https://www.example.com/
への長いダイナミック リンクを作成します。
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
短いダイナミック リンクを作成するには、DynamicLinkParameters
オブジェクトを buildShortLink()
に渡します。短いリンクの作成にはネットワーク呼び出しが必要です。次に例を示します。
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
デフォルトでは、短いダイナミック リンクは、数文字のサフィックス付きで生成されます。これにより、リンクがコンパクトになりますが、有効な短縮リンクを推測される可能性もあります。多くの場合、リンクをクリックすると公開情報に移動するため、他者に推測されても問題はありません。
ただし、短いリンクからユーザー固有の情報に移動する場合は、17 文字のサフィックス付きで長いリンクを作成する必要があります。これにより、有効なダイナミック リンクが推測される可能性が非常に低くなります。これを行うには、ShortDynamicLinkType.unguessable
を buildShortLink()
メソッドに渡します。
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
ダイナミック リンクのパラメータ
Dynamic Link Builder API を使用して、サポートされている任意のパラメータが設定されたダイナミック リンクを作成できます。API リファレンスをご覧ください。
次の例では、いくつかの一般的なパラメータが設定されたダイナミック リンクを作成します。
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
ダイナミック リンクのパラメータは、次のメソッドで設定できます。
DynamicLink のパラメータ | |
---|---|
setLink | アプリで開くリンク。アプリで処理可能な URL を指定します。通常、この URL はアプリ固有のロジック(ユーザーへのクーポン付与や特定の開始画面の表示など)を起動するアプリのコンテンツやペイロードへのリンクです。このリンクは適切な形式の URL で、正しく URL エンコードされている必要があります。HTTP または HTTPS のいずれかを使用してください。他のダイナミック リンクは使用できません。 |
setDomainUriPrefix | ダイナミック リンクの URL 接頭辞。Firebase コンソールで確認できます。ダイナミック リンクのドメインは次の例のようになります。https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | アプリがインストールされていない場合に開くリンク。モバイルウェブ バージョンのコンテンツやアプリの宣伝ページを開くなど、アプリがインストールされていないときに Play ストアからアプリをインストールする以外の動作をさせる場合に指定します。 |
setMinimumVersion | リンクを開くことができるアプリの最小バージョンの versionCode。インストールされているアプリのバージョンがそれよりも古い場合、ユーザーは Play ストアにリダイレクトされ、アプリのアップグレードを促されます。 |
IosParameters | |
---|---|
setAppStoreId | アプリの App Store ID。アプリがインストールされていない場合にユーザーを App Store に転送するために使用します。 |
setFallbackUrl | アプリがインストールされていない場合に開くリンク。モバイルウェブ バージョンのコンテンツやアプリの宣伝ページを開くなど、アプリがインストールされていないときに App Store からアプリをインストールする以外の動作をさせる場合に指定します。 |
setCustomScheme | アプリのカスタム URL スキーム(アプリのバンドル ID とは異なるものを定義している場合)。 |
setIpadFallbackUrl | アプリがインストールされていない場合に iPad で開くリンク。ウェブ バージョンのコンテンツやアプリの宣伝ページを開くなど、アプリがインストールされていないときに App Store からアプリをインストールする以外の動作をさせる場合に指定します。 |
setIpadBundleId | iPad でリンクを開くために使う iOS アプリのバンドル ID。Firebase コンソールの [概要] ページで、アプリとプロジェクトが接続されている必要があります。 |
setMinimumVersion | リンクを開くことができるアプリの最小バージョンのバージョン番号。このフラグは、リンクを開くとアプリに渡されますが、処理方法はアプリ側で決める必要があります。 |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | 「1」に設定されている場合は、ダイナミック リンクが開いているときにアプリのプレビュー ページをスキップし、代わりにアプリまたはストアにリダイレクトします。アプリのプレビュー ページ(デフォルトで有効になっています)は、ユーザーがアプリでダイナミック リンクを開いたときにユーザーを最も適切な宛先に確実に転送できます。ただし、このページなしでダイナミック リンクを確実に開くことができるアプリのみでダイナミック リンクが開かれるようにする場合は、このパラメータを使用してアプリのプレビュー ページを無効にすることができます。このパラメータは、iOS のダイナミック リンクの動作のみに影響します。 |
SocialMetaTagParameters | |
---|---|
setTitle | ソーシャル投稿でダイナミック リンクを共有するときに使用するタイトル。 |
setDescription | ソーシャル投稿でダイナミック リンクを共有するときに使用する説明。 |
setImageUrl | このリンクに関連する画像への URL。画像は 300x200 ピクセル以上、300 KB 未満である必要があります。 |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Google Play の解析パラメータ。これらのパラメータ(utm_source、utm_medium、utm_campaign、utm_term、utm_content)は、リンクのペイロードに追加されるだけでなく、Play ストアにも渡されます。 |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
iTunes Connect の解析パラメータ。これらのパラメータ(pt、at、ct)は App Store に渡されます。 |