минимально возможная реализация Firebase Dynamic Links в Unity для iOS, которая позволяет обнаружить deferred deep link — без лишней логики.


✅ Что ты получишь:

  • Подключение Firebase
  • Проверка deferred deep link при первом запуске
  • Получение https://yourapp.com/?product_id=123
  • Разбор параметров (например: product_id)

🧩 Шаг 1: Настрой Firebase Dynamic Links

  1. В Firebase Console:
    • Включи Dynamic Links (в разделе “Engage”)
    • Создай домен, например https://yourapp.page.link
  2. Создай динамическую ссылку с параметрами:
https://yourapp.page.link/?link=https://yourapp.com/?product_id=123&ibi=com.yourapp.ios

🔧 Шаг 2: Подключи Firebase SDK в Unity

  1. Скачай Firebase Unity SDK
  2. Импортируй:
    • Firebase Core
    • Firebase Dynamic Links
  3. Импортируй GoogleService-Info.plist в Assets/
  4. Установи External Dependency Manager (он идёт в SDK)
  5. После сборки Xcode добавит Info.plist и нужные Pod‘ы

  1. 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: Проверка

  1. Удали приложение с устройства
  2. Перейди по созданной Firebase Dynamic Link в Safari
  3. Установи приложение через App Store
  4. При первом запуске в Unity → ты увидишь в консоли:
Получен deferred deep link: https://yourapp.com/?product_id=123
product_id = 123

✅ Всё!

Теперь ты можешь:

  • обнаруживать deferred ссылку при установке
  • извлекать параметры (utm_source, product_id, и т.д.)
  • использовать без Adjust, Branch и прочих SDK

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *