نقل البيانات من "الروابط الديناميكية" إلى "روابط التطبيقات" و"الروابط العامة"

يركّز دليل نقل البيانات هذا على استخدام روابط التطبيقات والروابط العامة واستخدام ميزة "استضافة Firebase" بشكلٍ اختياري لاستضافة ملفات الربط بموقع التطبيق الإلكتروني.

تحل عملية نقل البيانات هذه محل ميزات "روابط Firebase الديناميكية" التالية:

الميزة روابط Firebase الديناميكية روابط التطبيقات / الروابط العامة
توجيه المستخدمين إلى المتجر الصحيح لأجهزتهم من خلال نقرة واحدة على رابط
عليك توفير تجربة تتيح للمستخدمين مواصلة تنزيل تطبيقك وتثبيته باستخدام رابط مؤجَّل لصفحة معيّنة في التطبيق.
توفير تجربة سياقية للمستخدمين باستخدام محتوى مرتبط بصفحة معيّنة في تطبيقك (عندما يكون مثبّتًا على الجهاز)
تقديم بيانات إحصائية ذات صلة بأحداث النقر على الرابط الديناميكية
توفير إمكانية إنشاء عناوين URL للروابط القصيرة

إذا كنت لا تزال بحاجة إلى ميزات أخرى غير متوافقة مع هذا الدليل لنقل البيانات، يمكنك الاطّلاع على سيناريوهات نقل البيانات الأخرى في مستندات الأسئلة الشائعة حول إيقاف الروابط الديناميكية نهائيًا.

افترض أن لديك رابطًا ديناميكيًا في Firebase يبدو على النحو التالي:

مثال على الرابط الديناميكي
اسم الرابط مرحبًا بك في Example.com
رابط لصفحة في التطبيق https://example.web.app/welcome
تطبيق Android com.example.android
تطبيق Apple com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

الهدف من دليل نقل البيانات هذا هو استبدال "روابط Firebase الديناميكية" على النحو التالي:

https://example.page.link/m9Mm

باستخدام روابط لصفحات في التطبيق أو رابط عام على النحو التالي:

https://your-project-domain.web.app/welcome

تجدر الإشارة إلى أنّ رابط التطبيق / الرابط العام لصفحة معيّنة في التطبيق سيوفّر ما يلي للمستخدمين:

  • هو رابط لصفحة في التطبيق يمكن للمستخدم النقر عليه لفتح تطبيقك بعد تثبيته.
  • متابعة لتجربة المستخدم في تنقلهم إلى جزء معين من تطبيقك عند فتحه

ومع ذلك، لن يوفر رابط التطبيق / الرابط العام لصفحة معيّنة في التطبيق السلوكيات التالية للمستخدمين (وهو ما كانت تفعله روابط Firebase الديناميكية في السابق):

  • نقل المستخدمين إلى المتجر الصحيح على أجهزتهم لتنزيل تطبيقك وتثبيته
  • توفير استمرار لتجربة المستخدم بعد تنزيل التطبيق وتثبيته وفتحه لأول مرة

لاحظ الاختلافات في سلوك ووظائف روابط التطبيقات / الروابط العامة هذه مقارنةً بروابط Firebase الديناميكية الواردة في الجدول أعلاه.

قبل البدء

تستخدم "روابط Firebase الديناميكية" روابط التطبيقات (على نظام التشغيل Android) و"الروابط العامة" (على نظام التشغيل iOS) في تنفيذها الأساسي لتوفير وظيفة الربط بصفحة معيّنة بعد تثبيت تطبيقك.

سيرشدك هذا الدليل إلى طريقة إنشاء "روابط التطبيقات" و"الروابط العامة" الخاصة بك باستخدام "استضافة Firebase" لاستبدال هذا الجزء من الوظيفة التي توفّرها "روابط Firebase الديناميكية" أثناء نقل "روابط Firebase الديناميكية" إلى الحل الجديد لنقل "روابط التطبيقات" أو "الروابط العامة".

ستحتاج إلى المعلومات التالية لإكمال عملية النقل:

  • روابط Firebase الديناميكية التي تنوي نقلها
  • مَعلمات عناوين URL لرابط صفحة معيّنة في التطبيق والمضمّنة في الروابط الديناميكية
  • النطاق الذي تخطط لاستخدامه لاستبدال نطاق "روابط Firebase الديناميكية" السابق (إن أمكن)

يمكنك استخدام دليل تصدير البيانات الوصفية للروابط الديناميكية لتصدير البيانات الوصفية الحالية للروابط والحصول على المعلومات الواردة أعلاه.

نظرة عامة على خطوات نقل البيانات

  1. وفِّر نطاقًا جديدًا (إذا لم يكن لديك نطاق تريد استخدامه) لاستضافة ملفات ضبط "رابط التطبيق" أو "الرابط العام" باستخدام "استضافة Firebase".

  2. أنشئ ملفات إعداد رابط التطبيق / الرابط العام واستضِفها على نطاق الاستضافة.

  3. إنشاء روابط تطبيقات أو روابط عامة جديدة تتطابق مع مخطط روابط الصفحات في التطبيق المستخدمة في "روابط Firebase الديناميكية"

  4. حدِّث تطبيقات Android / iOS ورمز التطبيق لتلقّي روابط لمواضع معيّنة.

  5. اختبار عمليات دمج "روابط التطبيقات" أو "الروابط العامة"

  6. استبدل "روابط Firebase الديناميكية" المنشورة أو المشتركة بروابط التطبيقات والروابط العامة.

ستكون الخطوة الأولى مشتركة في كل من تدفقات نقل بيانات روابط التطبيقات أو الروابط العامة. سيختلف الجزء المتبقي حسب النظام الأساسي، لذا انتقل إلى قسم الدليل أدناه بناءً على النظام الأساسي الذي تريد نقله أولاً.

اختيار نطاق

الخطوة الأولى هي اختيار النطاق الذي تريد استخدامه لـ "روابط التطبيق" أو "الروابط العامة". وسيكون هذا هو النطاق الذي سيتم استخدامه للروابط الجديدة التي ستشاركها مع المستخدمين.

في حال استخدام استضافة Firebase، يتم تلقائيًا توفير المتطلبات اللازمة للنطاقات الفرعية للمشاريع بالتنسيق your-project-domain.web.app أو your-project-domain.firebaseapp.com بدون أي تكلفة. يمكنك اختياريًا استخدام نطاق خاص مع "استضافة Firebase" أو بدونها لاستضافة ملفات إعداد "رابط التطبيق" / "الرابط العام" أيضًا.

إعداد استضافة Firebase

بعد ذلك، ستحتاج إلى إعداد مثيل استضافة Firebase وضبطه.

عند الانتهاء من إعداد مثيل استضافة Firebase، سيكون لديك نطاق مشابه لـ your-project-domain.web.app أو نطاق خاص إذا كنت تفضّل ذلك.

لاستخدام "روابط التطبيقات"، يجب استضافة ملف إعداد يساعد في إنشاء ربط آمن بين النطاق المستخدَم في الروابط وتطبيقك. بالنسبة إلى "روابط التطبيق"، هذا هو ملف assetlinks.json.

خطوات إنشاء ملف assetlinks.json واستضافتها

يسمح لنا ملف assetlinks.json بتقديم قائمة بالتطبيقات المعتمَدة التي يمكنها معالجة محتوى نطاق الويب الذي سنستخدمه لـ "روابط التطبيق" (App Links.) ويجب أن يكون ملف assetlinks.json نفسه مستضافًا في جذر نطاق الويب ضمن المسار: /.well-known.

اتّبِع الخطوات أدناه لإكمال هذه الإعدادات:

  1. أنشئ المجلد .well-known ضمن المجلد العلني في الدليل الجذر لاستضافة Firebase.

  2. أنشئ ملفًا باسم "assetlinks.json" ضمن المجلد ".well-known".

  3. انسخ المحتوى التالي إلى ملف assetlinks.json، مع مراعاة معنى كل حقل أدناه:

    [{
      "relation": ["delegate_permission/common.handle_all_urls"],
      "target": {
        "namespace": "android_app",
        "package_name": "com.example.android",
        "sha256_cert_fingerprints":
          ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"]
      }
    }]
    
    • namespace - يشير إلى اسم التطبيق الذي تريد تقديمه
    • package_name: يشير إلى applicationId الذي تم تعريفه في ملف build.gradle الخاص بالتطبيق.
    • sha256_cert_fingerprints: يشير إلى الملف المرجعي SHA256 لملف تخزين المفاتيح الذي تستخدمه لتوقيع التطبيق.

    يمكنك استخدام ملف debug.keystore الذي يستخدمه "استوديو Android" لإنشاء سجلّ sha256_cert_fingerprints لأغراض تصحيح الأخطاء. يمكنك العثور على الملف في /Users/<username>/.android/debug.keystore على نظامي التشغيل Mac وLinux وC:\Users\<username>\.android\debug.keystore على Windows.

    ومن ملف تخزين المفاتيح هذا، يمكنك جلب قيمة SHA256 باستخدام أداة keytool.

    ارجع إلى هذا القسم من وثائق روابط التطبيقات للحصول على مزيد من التعليمات حول إكمال هذه الخطوة.

    يمكنك بدلاً من ذلك استخدام مساعد روابط التطبيقات في "استوديو Android" لإنشاء محتوى ملف assetlinks.json وضبط تطبيقك للتعامل مع "روابط التطبيق".

  4. عدِّل ملف firebase.json لفهرسة الملف لاستضافةه.

    "headers": [
      {
        "source": "/.well-known/assetlinks.json",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. الآن بعد أن أصبح ملف assetlinks.json مفعّلاً، شغِّل firebase deploy لاستضافة التغييرات.

    يُرجى العلم أنّه يجب تثبيت واجهة سطر الأوامر في Firebase لتنفيذ أمر التفعيل أعلاه.

    firebase deploy --only hosting
    
  6. يمكنك إثبات ملكية ملف assetlinks.json من خلال الانتقال إلى https://your-project-domain.web.app/.well-known/assetlinks.json.

في هذه الخطوة، ستُعيد إنشاء الروابط لصفحات في التطبيق من "روابط Firebase الديناميكية" باستخدام عناوين URL العادية لروابط صفحات التطبيق وتتطابق مع النطاق الجديد الذي أنشأته لروابط تطبيقاتك.

على سبيل المثال، لنفترض أنّ لديك رابط Firebase الديناميكي التالي:

مثال على الرابط الديناميكي
اسم الرابط مرحبًا بك في Example.com
رابط لصفحة في التطبيق https://example.web.app/welcome
تطبيق Android com.example.android
تطبيق Apple com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

في هذه الحالة، يمكنك استخراج معلمة رابط لصفحة في التطبيق، أي: https://example.web.app/welcome وستستخدم الآن هذه المعلمة كمعلمة رابط التطبيق لتطبيقك.

ستحتاج إلى تكرار هذه العملية لكل رابط ديناميكي في Firebase تريد نقله إلى استخدام روابط التطبيقات / الروابط العامة، وتكرار مخطط الربط لموضع معيّن الذي استخدمته.

على سبيل المثال، يُرجى الاطّلاع على المجموعة التالية من الروابط القصيرة ضمن "روابط Firebase الديناميكية" ومَعلمات الروابط لصفحات في التطبيق وقيم الروابط لصفحات معيّنة التي تم نقلها:

رابط مختصر مَعلمة رابط لصفحة معيّنة رابط لصفحة في التطبيق تم نقله
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

وبعد ذلك، عليك استبدال أي مثيلات من "روابط Firebase الديناميكية" التي تم نشرها أو مشاركتها مع الروابط الجديدة التي تم نقلها إلى صفحة في التطبيق، وذلك كي ينقر المستخدمون على "روابط التطبيقات" هذه بدلاً من "روابط Firebase الديناميكية" السابقة.

الخطوة التالية بعد اختيار نطاق واختيار مخطط الربط لموضع معيّن ونقل "روابط Firebase الديناميكية إلى روابط التطبيقات" هي تحديث تطبيق Android ورمز التطبيق لتلقّي الروابط الجديدة لصفحات معيّنة في التطبيق.

ننصحك باتّباع المستندات الكاملة حول "روابط التطبيقات" هنا أو بدلاً من ذلك دليل "استوديو Android" حول ضبط تطبيقك للتعامل مع الروابط المؤدية إلى صفحات في التطبيق، ولكن تتضمّن الخطوات الرئيسية ما يلي:

  1. تحديد الأنشطة التي يجب أن تعالج الروابط لصفحات معيّنة ذات الصلة
  2. إضافة فلتر Intent لتلك الأنشطة في ملف AndroidManifest.xml
  3. تلقي الرابط لموضع معيّن في رمز تطبيق أنشطتك

لنفترض أنك أردت استخدام MainActivity لمعالجة بعض الروابط المؤدية إلى صفحات في تطبيقك. لإجراء ذلك، عليك إضافة فلتر Intent التالي إلى MainActivity في ملف AndroidManifest.xml:

<activity android:name=".MainActivity"
   android:exported="true">
   <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
   <intent-filter android:autoVerify="true">
       <action android:name="android.intent.action.VIEW" />
       <category android:name="android.intent.category.DEFAULT" />
       <category android:name="android.intent.category.BROWSABLE" />
       <data android:host="example.web.app" android:scheme="http"
           android:pathPrefix="/welcome" />
       <data android:host="example.web.app" android:scheme="https"
           android:pathPrefix="/welcome" />
   </intent-filter>
</activity>

في هذه الخطوة، تُحدّد أن MainActivity هي وجهة معالجة الروابط لصفحات في التطبيق من النطاق wxample.web.app وتتضمّن بادئة المسار /welcome. تجدر الإشارة إلى أنّك ستحتاج أيضًا إلى تحديد السمة android:autoVerify="true" التي تسمح لك بضبط تطبيقك كالمعالج التلقائي لهذا النوع المحدّد من الروابط.

وأخيرًا، سيكون عليك إضافة الرمز في MainActivity لاسترداد بيانات الروابط المؤدية إلى صفحات في التطبيق واستخدامها لتحسين تجربة الروابط المؤدية إلى صفحات في تطبيقك. هذا الأمر يشبه المنطق الذي سبق لك ترميزه في تطبيقك عند الدمج مع "روابط Firebase الديناميكية".

override fun onCreate(savedInstanceState: Bundle?) {
  super.onCreate(savedInstanceState)
  setContentView(R.layout.main)

  val  data: Uri? = intent?.data

  val toast = Toast.makeText(this, data, duration)
  toast.show()
}

يمكنك اختبار "روابط التطبيق" التي أنشأتها للتو، إما من خلال تشغيل تطبيقك على جهاز فعلي أو في محاكي Android.

عليك إنشاء رابط قابل للنقر باستخدام النطاق الذي تم ضبطه في "روابط التطبيق" ثم النقر على هذا الرابط للتأكّد من أنّه يفتح في تطبيقك وينقلك إلى النشاط المقصود.

بدلاً من ذلك، يمكنك أيضًا اختبار دمج "روابط التطبيق" باستخدام مساعد روابط التطبيقات في "استوديو Android"، أو استخدام الأمر التالي لعنوان URL لرابط التطبيق الذي تم ضبطه للتأكّد من تشغيل النشاط المطابق بشكل صحيح:

adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>

ستتمثل الخطوة الأخيرة لعملية نقل البيانات في استبدال "روابط Firebase الديناميكية" المنشورة أو التي تمت مشاركتها بـ "روابط التطبيق" كلما أمكن ذلك، ومواصلة استخدام "روابط التطبيقات" من الآن فصاعدًا.

سيختلف إكمال هذه الخطوة بناءً على مكان وكيفية نشر "روابط Firebase الديناميكية"، ولكن لمساعدتك في تتبُّع الروابط المتوفّرة، يمكنك تصدير البيانات الوصفية الحالية لرابط Firebase الديناميكي. اطّلِع على دليل البيانات الوصفية الخاصة بتصدير الروابط الديناميكية.

لاستخدام ميزة "الروابط العامة"، يجب استضافة ملف إعداد يساعد في إنشاء ربط آمن بين النطاق المستخدَم في الروابط وتطبيقك. وبالنسبة إلى "الروابط العامة"، يكون هذا الملف هو apple-app-site-association (المعروف أيضًا بملف AASA).

خطوات إنشاء واستضافة ملف الربط بتطبيق apple-app-site-association

يتيح لنا ملف AASA تقديم قائمة بالتطبيقات المعتمَدة التي يمكنها معالجة محتوى نطاق الويب الذي سنستخدمه للروابط العامة. يجب أن يكون ملف AASA نفسه مستضافًا في جذر نطاق الويب ضمن المسار: /.well-known.

اتّبِع الخطوات أدناه لإكمال هذه الإعدادات:

  1. أنشئ المجلد ".well-known" ضمن المجلد العام في الدليل الجذري لاستضافة Firebase.

  2. أنشِئ ملفًا باسم "apple-app-site-association" ضمن مجلد "well-known".

  3. انسخ المحتوى التالي إلى ملف ربط موقع apple-app-site، مع ملاحظة معنى كل حقل أدناه:

    {
      "applinks": {
        "apps": [],
        "details": [
          {
            "appId": "$TEAM_ID.com.firebase.UniversalLinks",
            "paths": [
              "NOT /_/*",
              "/*"
            ]
          }
        ]
      }
    }
    
    • $team_ID.BundleId - اسم التطبيق المؤهل بالكامل والمصرح له بمعالجة الروابط
  4. عدِّل ملف firebase.json لفهرسة الملف لاستضافةه.

    "headers": [
      {
        "source": "/.well-known/apple-app-site-association",
        "headers": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ]
      }
    ]
    
  5. الآن بعد أن أصبح لدينا ملف AASA، يمكنك نشر Firebase لاستضافة التغييرات.

  6. يمكنك إثبات صحة ملف AASA من خلال الانتقال إلى https://your-project-domain.web.app/.well-known/app-app-site-association.

في هذه الخطوة، ستُعيد إنشاء الروابط لصفحات في التطبيق من "روابط Firebase الديناميكية" باستخدام عناوين URL العادية لروابط صفحات التطبيق التي تتطابق مع النطاق الجديد الذي أنشأته للروابط العامة.

على سبيل المثال، لنفترض أنّ لديك رابط Firebase الديناميكي التالي:

مثال على الرابط الديناميكي
اسم الرابط مرحبًا بك في Example.com
رابط لصفحة في التطبيق https://example.web.app/welcome
تطبيق Android com.example.android
تطبيق Apple com.example.ios
رابط ديناميكي طويل https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos
رابط ديناميكي قصير https://example.page.link/m9Mm

في هذه الحالة، يمكنك استخراج معلمة الرابط لصفحة في التطبيق، مثل https://example.web.app/welcome وستستخدمها الآن كمعلمة الرابط العام لتطبيقك.

ستحتاج إلى تكرار هذه العملية لكل رابط ديناميكي في Firebase تريد نقله إلى استخدام روابط التطبيقات / الروابط العامة، وتكرار مخطط الربط لموضع معيّن الذي استخدمته.

على سبيل المثال، يُرجى الاطّلاع على المجموعة التالية من الروابط القصيرة ضمن "روابط Firebase الديناميكية" ومَعلمات الروابط لصفحات في التطبيق وقيم الروابط لصفحات معيّنة التي تم نقلها:

رابط مختصر مَعلمة رابط لصفحة معيّنة رابط لصفحة في التطبيق تم نقله
yourapp.page.link/welcome https://example.com/welcome yourapp.web.app/welcome
yourapp.page.link/c7sn https://example.com/main/?p=23&t=1 yourapp.web.app/main/?p=23&t=1
yourapp.page.link/social https://example.com/friendinvite/?add=1 yourapp.web.app/friendinvite/?add=1

وبعد ذلك، ستحتاج إلى استبدال أي مثيلات من "روابط Firebase الديناميكية" التي تم نشرها أو مشاركتها بالروابط الجديدة التي تم نقلها إلى صفحة في التطبيق، وذلك كي ينقر المستخدمون على تلك الروابط العامة بدلاً من "روابط Firebase الديناميكية" السابقة.

الخطوة التالية بعد اختيار نطاق واختيار مخطط الربط لموضع معيّن ونقل "روابط Firebase الديناميكية" إلى "الروابط العامة" هي تحديث تطبيق iOS ورمز التطبيق لتلقّي الروابط الجديدة لصفحات معيّنة.

نقترح عليك اتّباع مستندات "الروابط العامة" الكاملة هنا عند ضبط تطبيقك للتعامل مع الروابط المؤدية إلى صفحات في التطبيق، ولكن تشمل الخطوات الرئيسية ما يلي:

  1. حدِّث تهيئة مشروعك لتمكين تطبيقك من التعامل مع الروابط لمواضع معيّنة من النطاق الذي تم إنشاؤه حديثًا

  2. تلقّي رابط الصفحة في رمز تطبيقك

لتعديل إعدادات المشروع للسماح لتطبيقك بمعالجة الروابط المؤدية إلى صفحات في التطبيق، عليك إضافة نطاق مرتبط آخر إلى مشروعك في xCode للنطاق الذي تخطط الآن لاستخدامه لاستضافة ملف apple-app-site- linked إرشادي.

ويمكن إجراء ذلك من خلال ما يلي:

  1. جارٍ فتح Xcode
  2. اختيار مشروعك في أداة التنقّل في الملفات
  3. الانتقال إلى علامة التبويب التوقيع والإمكانات في إعدادات المشروع
  4. الانتقال للأسفل إلى قسم "النطاقات المرتبطة"
  5. بالنقر على الزر + لإضافة النطاق الإضافي إلى مشروعك بالتنسيق "applinks:".

أخيرًا، تحتاج إلى تحديث رمز التطبيق لتتمكن من تلقي الروابط الواردة لصفحات في التطبيق.

لتنفيذ هذا الإجراء، يجب أولاً تحديث ملف AppDelegate.swift للرد على رابط عالمي من خلال إضافة الرمز التالي:

func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                 restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
  AppDelegate.showReceivedUrl(userActivity: userActivity);
  return true
}

static func showReceivedUrl(userActivity: NSUserActivity) {
  if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
    let url = userActivity.webpageURL!
    print(url.absoluteString)
}

يلغي الرمز البرمجي أعلاه طريقة استدعاء الرابط العام ويسجّل عنوان URL لرابط الصفحة في التطبيق إن وجد.

وسنستدعي الآن طريقة showReceivedUrl نفسها من فئة SceneDelegate أيضًا إذا كان التطبيق مفتوحًا بالفعل في الوقت الذي نقر فيه المستخدم على الرابط العام، سيتم استدعاؤه لمعاودة الاتصال للرابط العام داخل SceneDelegate.

func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
  AppDelegate.showReceivedUrl(userActivity: userActivity)
}

يمكنك اختبار "الروابط العامة" التي أنشأتها للتو، إما من خلال تشغيل تطبيقك على جهاز مادي أو محاكي.

عليك إنشاء رابط قابل للنقر باستخدام النطاق الذي تم إعداده للروابط العامة، ثم النقر على هذا الرابط لضمان فتحه في تطبيقك والانتقال إلى الشاشة المطلوبة في تطبيقك.

التوافق مع إعلانات البانر الذكية للتطبيقات

ننصحك بشدة باستخدام بانر التطبيقات الذكية كطريقة لتزويد المستخدمين بتجربة مماثلة لميزة "الروابط الديناميكية من Firebase".

باستخدام إعلانات البانر للتطبيقات الذكية، سيتم نقل المستخدمين إلى App Store لبطاقة بيانات تطبيقك إذا لم يكن تطبيقك مثبّتًا على أجهزتهم. يمكنك أيضًا اختياريًا ضبط معلمة لتمريرها إلى تطبيقك بعد تنزيله وتثبيته لتزويد المستخدمين بمتابعة رحلتهم. إذا كان تطبيقك مُثبَّتًا من قبل، سيتم تمرير المَعلمة إلى تطبيقك للمساعدة في توجيه المستخدم إلى المحتوى المناسب استنادًا إلى "بانر التطبيق الذكي" الذي نقر عليه.

ستتمثل الخطوة الأخيرة في عملية النقل في استبدال "روابط Firebase الديناميكية" المنشورة أو المُشارَكة بالروابط العامة متى أمكن، ومواصلة استخدام "الروابط العامة" من الآن فصاعدًا.

يختلف إكمال هذه الخطوة استنادًا إلى مكان وطريقة نشر "روابط Firebase الديناميكية".

لمساعدتك في تتبُّع "روابط Firebase الديناميكية" الحالية المراد نقلها، سننشر دليلاً حول طريقة تصدير البيانات الوصفية للروابط القصيرة من "روابط Firebase الديناميكية". يُرجى مراجعة مستند الأسئلة الشائعة حول إيقاف الروابط الديناميكية نهائيًا لمزيد من المعلومات.