Unity でダイナミック リンクを作成する

Firebase Dynamic Links API を使用して、短い、もしくは長い Dynamic Links を作成できます。この API でリンクを作成する際、オプションとして複数のパラメータ構造体を渡すことができます。短いリンクは、生成済みの長いリンクから作成することもできます。Dynamic Links API では、次のような URL が生成されます。

https://example.page.link/aSDf

始める前に

Firebase Dynamic Links を使用するには、次の作業が必要です。

  • Firebase を使用するように Unity プロジェクトを登録して構成する。

    • Unity プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。

    • Unity プロジェクトがない場合は、サンプルアプリをダウンロードできます。

  • Unity プロジェクトに Firebase Unity SDK(具体的には FirebaseDynamicLinks.unitypackage)を追加する。

Firebase を Unity プロジェクトに追加するには、Firebase コンソールと開いている Unity プロジェクトの両方でタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードし、それを Unity プロジェクトに移動するなど)。

Dynamic Links URI 接頭辞を設定する

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

  2. 利用規約に同意せずに Dynamic Links の URI 接頭辞を設定している場合、プロンプトに従って利用規約に同意します。

    Dynamic Links URI 接頭辞がすでに存在する場合は、それをメモしておきます。Dynamic Links をプログラムで作成する場合は、Dynamic Links URI 接頭辞を指定する必要があります。

  3. 推奨: ディープリンクやフォールバック リンクで許可される URL パターンを指定します。これにより、お客様のドメインからお客様の管理外のサイトへリダイレクトする Dynamic Links が不正ユーザーによって作成されるのを防止できます。URL パターンをホワイトリストに登録するをご覧ください。

Firebase コンソール の使用

テスト用や、マーケティング チームがソーシャル メディア投稿用にリンクを簡単に作成できるよう、単一の Dynamic Link を生成したい場合、Firebase コンソールを開き、各手順が示されたフォームに沿って手動で作成するのが最も簡単です。

カスタム ドメイン

Dynamic Link のブランディングを詳細に管理するには、goo.gl または page.link サブドメインではなく、独自のドメインを使用します。プロジェクトのカスタム ドメインを設定するには、こちらの手順に沿って行ってください。

Firebase Dynamic Links API の使用

パラメータから長い Dynamic Link を作成する

Dynamic Links を作成するには、DynamicLinkComponents オブジェクトを作成し、追加構成のオプションのメンバーを設定して、リンク URL を取得するために LongDynamicLink プロパティにアクセスします。

次のシンプルな例では、Android アプリ(com.example.android)と iOS アプリ(com.example.ios)で開く https://www.example.com/ への長い Dynamic Links を作成します。

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
    // The base Link.
    new System.Uri("https://www.example.com/"),
    // The dynamic link URI prefix.
    "https://example.page.link") {
      IOSParameters = new Firebase.DynamicLinks.IOSParameters("com.example.ios"),
      AndroidParameters = new Firebase.DynamicLinks.AndroidParameters(
        "com.example.android.package_name"),
    };
// do something with: components.LongDynamicLink

短い Dynamic Link を作成する

短い Dynamic Links を作成するには、生成済みの長いリンクを Firebase.DynamicLinks.GetShortLinkAsync に渡すか、長い Dynamic Links と同じ手順で DynamicLinkComponents を作成します。

GetShortLinkAsync では、オプションで PathLength プロパティを持つ追加の DynamicLinkOptions 構成パラメータを使用できます。このパラメータにより、リンクの生成方法を制御できます。短いリンクの生成には Firebase バックエンドへのネットワーク リクエストが必要なため、GetShortLinkAsync メソッドが非同期で実行されます。GetShortLinkAsyncTask<Firebase.DynamicLinks.ShortDynamicLink> を返します。

例:

var options = new Firebase.DynamicLinks.DynamicLinkOptions {
  PathLength = DynamicLinkPathLength.Unguessable
};

Firebase.DynamicLinks.DynamicLinks.GetShortLinkAsync(components, options).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("GetShortLinkAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("GetShortLinkAsync encountered an error: " + task.Exception);
    return;
  }

  // Short Link has been created.
  Firebase.DynamicLinks.ShortDynamicLink link = task.Result;
  Debug.LogFormat("Generated short link {0}", link.Url);

  var warnings = new System.Collections.Generic.List<string>(link.Warnings);
  if (warnings.Count > 0) {
    // Debug logging for warnings generating the short link.
  }
});

上記の例では、タスクが完了するとトリガーされるラムダ式が使用されています。