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

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

https://example.page.link/aSDf

準備

Firebase Dynamic Links を使用するには、Firebase プロジェクトを作成してから、Firebase Unity SDK パッケージを Unity プロジェクトに追加する必要があります。

設定

事前準備

Android

  • Unity 5.0 以降
  • Android NDK バージョン 10d 以降

iOS

  • Unity 5.0 以降
  • Xcode 8.0 以降

Unity プロジェクトをまだ用意していない場合は、いずれかのクイックスタート サンプルをダウンロードし、特定の Firebase 機能をお試しいただけます。クイックスタートを使用する場合は、次のステップでバンドル識別子が必要になるため、プロジェクト設定からバンドル識別子を忘れずに取得してください。

Firebase コンソールでアプリを設定する

アプリに Firebase を追加するには、Firebase プロジェクトと、アプリ用の Firebase 構成ファイルが必要です。

Firebase プロジェクトを作成するには:

  1. Firebase プロジェクトをまだ用意していない場合は、Firebase コンソールで Firebase プロジェクトを作成します。[プロジェクトを追加] をクリックします。モバイルアプリと関連付けられた既存の Google プロジェクトがある場合は、[プロジェクト名] プルダウン メニューから選択します。それ以外の場合は、プロジェクト名を入力して新しいプロジェクトを作成します。
  2. 省略可: プロジェクト ID を編集します。プロジェクトに一意の ID が自動的に付与され、データベース URL や Firebase Hosting サブドメインなどの一般公開される Firebase の機能で使用されます。特定のサブドメインを使用する場合は、この時点でプロジェクト ID を変更できます(後で変更できません)。
  3. 残りの設定手順に沿って操作した後、[プロジェクトを作成](または既存のプロジェクトを使用している場合は [Firebase を追加])をクリックして、プロジェクト用のリソースのプロビジョニングを開始します。通常、この処理には数分かかります。処理が完了すると、プロジェクトの概要が表示されます。

Android

  1. [Android アプリに Firebase を追加] をクリックし、設定手順に沿って操作します。既存の Google プロジェクトをインポートする場合、このステップは自動的に実行されることがあります。その場合は、構成ファイルをダウンロードするだけでかまいません。
  2. 求められたら、アプリのパッケージ名を入力します。必ずアプリで使用しているパッケージ名を入力してください。パッケージ名を設定できるのは、アプリを Firebase プロジェクトに追加するときだけです。
  3. 処理中に google-services.json ファイルをダウンロードします。このファイルは、いつでもダウンロードできます。
  4. 初期化コードを追加したらアプリを実行して、Firebase を正常にインストールしたという確認を Firebase コンソールに送信します。
  5. Firebase コンソールで [Dynamic Links] セクションを開きます。
  6. 利用規約に同意せずに Dynamic Links ドメインを設定している場合、プロンプトに従って利用規約に同意します。

    Dynamic Links ドメインを作成している場合は、それをメモしておきます。ダイナミック リンクをプログラムで作成する場合は、Dynamic Links ドメインを指定する必要があります。

iOS

  1. [iOS アプリに Firebase を追加] をクリックして設定手順に沿って操作します。既存の Google プロジェクトをインポートする場合、このステップは自動的に実行されることがあります。その場合は、構成ファイルをダウンロードするだけでかまいません。
  2. 求められたら、アプリのバンドル ID を入力します。必ずアプリで使用しているバンドル ID を入力してください。バンドル ID を設定できるのは、アプリを Firebase プロジェクトに追加するときだけです。
  3. 処理中に GoogleService-Info.plist ファイルをダウンロードします。このファイルは、いつでもダウンロードできます。
  4. 初期化コードを追加したらアプリを実行して、Firebase を正常にインストールしたという確認を Firebase コンソールに送信します。
  5. Firebase コンソールからダウンロードした GoogleService-Info.plist を、Unity プロジェクトの任意のフォルダにドラッグします。
  6. Firebase コンソールで [Dynamic Links] セクションを開きます。
  7. 利用規約に同意せずに Dynamic Links ドメインを設定している場合、プロンプトに従って利用規約に同意します。

    Dynamic Links ドメインを作成している場合は、それをメモしておきます。ダイナミック リンクをプログラムで作成する場合は、Dynamic Links ドメインを指定する必要があります。

アプリに Firebase Unity SDK を追加する

  1. Firebase Unity SDK をダウンロードします。
  2. [Assets] > [Import Package] > [Custom Package] メニュー項目を選択します。
  3. ダウンロードしておいた Firebase Unity SDK から FirebaseDynamicLinks.unitypackage パッケージをインポートします。
  4. [Import Unity Package] ウィンドウが表示されたら [Import] をクリックします。

SDK の初期化

Android の Firebase Unity SDK には Google Play 開発者サービスが必要であり、SDK を使用する前に最新版にしておく必要があります。次のコードをアプリケーションの先頭に追加して、SDK で他のメソッドを呼び出す前に Google Play 開発者サービスを確認し、必要であれば、Firebase Unity SDK で必要とされるバージョンに更新します。

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp, i.e.
    //   app = Firebase.FirebaseApp.DefaultInstance;
    // where app is a Firebase.FirebaseApp property of your application class.

    // Set a flag here indicating that Firebase is ready to use by your
    // application.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

アプリをビルドする

Android

  1. [File] > [Build Settings] メニュー項目を選択します。
  2. [Platform] リストから [Android] を選択します。
  3. [Switch Platform] をクリックし、ターゲット プラットフォームとして [Android] を選択します。
  4. Unity ステータスバーの右下隅にあるスピナー(コンパイル中)アイコンが停止するまで待ちます。
  5. [Build and Run] をクリックします。

iOS

  1. [File] > [Build Settings] メニュー項目を選択します。
  2. [Platform] リストから [iOS] を選択します。
  3. [Switch Platform] をクリックし、ターゲット プラットフォームとして [iOS] を選択します。
  4. Unity ステータスバーの右下隅にあるスピナー(コンパイル中)アイコンが停止するまで待ちます。
  5. [Build and Run] をクリックします。

Firebase コンソールの使用

テスト用に、またはマーケティング チームがソーシャル メディア投稿などで使用できるリンクを簡単に作成できるように、1 つのダイナミック リンクを生成する必要がある場合、Firebase コンソールを開き、各手順が示されたフォームに沿って手動で作成するのが最も簡単です。

Firebase Dynamic Links API の使用

パラメータから長いダイナミック リンクを作成する

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

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

var components = new Firebase.DynamicLinks.DynamicLinkComponents(
        // The base Link.
        new System.Uri("https://www.example.com/"),
        // The dynamic link domain.
        "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

短いダイナミック リンクを作成する

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

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

次に例を示します。

var options = new Firebase.DynamicLinks.DynamicLinkOptions {
    PathLength = DynamicLinkPathLength.Unguessable
};
Firebase.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.ShortLink 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.
  }

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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。