минимально возможная реализация 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