Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Flutterアプリでダイナミックリンクを作成する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase Dynamic Links Builder API を使用して、短いダイナミック リンクまたは長いダイナミック リンクを作成できます。この API は、長いダイナミック リンクまたはダイナミック リンク パラメータを含むオブジェクトのいずれかを受け入れ、次の例のような URL を返します。

https://example.com/link/WXYZ
https://example.page.link/WXYZ

Android アプリで Dynamic Links を作成する前に、Firebase SDK を含める必要があります。アプリが Dynamic Links を受信するように設定されている場合、これらの手順は既に完了しているため、このセクションをスキップできます。

  1. Flutter 用の Firebase SDK をまだインストールしていない場合は、インストールして初期化します

  2. Flutter プロジェクトのルート ディレクトリから、次のコマンドを実行して Dynamic Links プラグインをインストールします。

    flutter pub add firebase_dynamic_links
    
  3. Android アプリを構築している場合は、Firebase コンソールの [プロジェクト設定] ページを開き、SHA-1 署名キーを指定していることを確認してください。アプリ リンクを使用する場合は、SHA-256 キーも指定します。

  4. Firebase コンソールで、 Dynamic Linksセクションを開きます。

    1. Dynamic Links のドメインをまだ設定していない場合は、[開始する] ボタンをクリックしてプロンプトに従います。

      Dynamic Links ドメインをすでにお持ちの場合は、メモしておいてください。プログラムで Dynamic Links を作成する場合は、Dynamic Links ドメインを指定する必要があります。

    2. 推奨: [その他] (⋮) メニューから、ディープ リンクとフォールバック リンクで許可される URL パターンを指定します。そうすることで、ドメインから管理していないサイトにリダイレクトする Dynamic Links を権限のない第三者が作成するのを防ぐことができます。

      特定の URL パターンを許可するを参照してください。

ダイナミック リンクを作成するには、新しいDynamicLinkParametersオブジェクトを作成し、それをbuildLink()またはbuildShortLink()に渡します。

次の最小限の例では、Android ではcom.example.app.androidで、iOS ではアプリcom.example.app.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 オブジェクトを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.unguessablebuildShortLink()メソッドに渡します。

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

Dynamic Link Builder API を使用して、サポートされている任意のパラメーターを使用して Dynamic Links を作成できます。 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);

次の方法で 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
setContent
Google Play 分析パラメーター。これらのパラメータ (`utm_source`、`utm_medium`、`utm_campaign`、`utm_term`、`utm_content`) は Play ストアに渡されるだけでなく、リンク ペイロードに追加されます。
ItunesConnectAnalytics パラメータ
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect 分析パラメーター。これらのパラメータ (`pt`、`at`、`ct`) は App Store に渡されます。