минимально возможная реализация Firebase Dynamic Links в Unity для iOS, которая позволяет обнаружить deferred deep link — без лишней логики.
✅ Что ты получишь:
- Подключение Firebase
- Проверка
deferred deep linkпри первом запуске - Получение
https://yourapp.com/?product_id=123 - Разбор параметров (например:
product_id)
🧩 Шаг 1: Настрой Firebase Dynamic Links
- В Firebase Console:
- Включи Dynamic Links (в разделе “Engage”)
- Создай домен, например
https://yourapp.page.link
- Создай динамическую ссылку с параметрами:
https://yourapp.page.link/?link=https://yourapp.com/?product_id=123&ibi=com.yourapp.ios🔧 Шаг 2: Подключи Firebase SDK в Unity
- Скачай Firebase Unity SDK
- Импортируй:
- Firebase Core
- Firebase Dynamic Links
- Импортируй
GoogleService-Info.plistвAssets/ - Установи
External Dependency Manager(он идёт в SDK) - После сборки Xcode добавит
Info.plistи нужныеPod‘ы
Pod‘ы
🎯 Шаг 3: Скрипт FirebaseLinkDetector.cs
using UnityEngine;
using Firebase;
using Firebase.DynamicLinks;
using System;
public class FirebaseLinkDetector : MonoBehaviour
{
void Start()
{
FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
if (task.Result == DependencyStatus.Available)
{
FirebaseDynamicLinks.DynamicLinkReceived += OnDynamicLink;
}
else
{
Debug.LogError("Firebase не готов: " + task.Result);
}
});
}
void OnDynamicLink(object sender, ReceivedDynamicLinkEventArgs e)
{
Uri deepLink = e.ReceivedDynamicLink?.Url;
if (deepLink != null)
{
Debug.Log("Получен deferred deep link: " + deepLink.AbsoluteUri);
// Пример разбора параметров
var query = deepLink.Query; // ?product_id=123
var param = System.Web.HttpUtility.ParseQueryString(query);
string productId = param["product_id"];
Debug.Log("product_id = " + productId);
}
}
}
📌 Не забудь подключить ссылку System.Web в Assembly-CSharp.csproj (для HttpUtility).
🧪 Шаг 4: Проверка
- Удали приложение с устройства
- Перейди по созданной Firebase Dynamic Link в Safari
- Установи приложение через App Store
- При первом запуске в Unity → ты увидишь в консоли:
Получен deferred deep link: https://yourapp.com/?product_id=123
product_id = 123✅ Всё!
Теперь ты можешь:
- обнаруживать deferred ссылку при установке
- извлекать параметры (
utm_source,product_id, и т.д.) - использовать без Adjust, Branch и прочих SDK