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

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

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

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

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

لنفترض أنّ لديك رابطًا ديناميكيًا من 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 Hosting لاستبدال جزء الوظائف الذي توفّره "روابط Firebase الديناميكية" أثناء نقل "روابط Firebase الديناميكية" إلى حلّ نقل روابط التطبيقات / الروابط العالمية الجديد.

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

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

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

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

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

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

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

  4. عدِّل تطبيقات Android أو iOS ورمز التطبيق لتلقّي الروابط لصفحات في التطبيق.

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

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

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

اختيار نطاق

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

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

إعداد خدمة Firebase Hosting

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

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

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

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

يتيح لنا ملف assetlinks.json تقديم قائمة بالتطبيقات المصرّح لها والتي يمكنها التعامل مع محتوى نطاق الويب الذي سنستخدمه لروابط التطبيقات. يجب استضافة ملف assetlinks.json في جذر نطاق الويب ضمن المسار: /.well-known.

اتّبِع الخطوات التالية لإكمال عملية الضبط هذه:

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

  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 لملف keystore الذي تستخدمه لتوقيع التطبيق.

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

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

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

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

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

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

    يُرجى العِلم أنّه يجب تثبيت Firebase CLI لتنفيذ أمر النشر أعلاه.

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

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

على سبيل المثال، لنفترض أنّ لديك رابطًا ديناميكيًا على 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، واستخدامها كمَعلمة App Link لتطبيقك.

عليك تكرار هذه العملية لكل رابط ديناميكي على Firebase تريد نقله لاستخدام &quot;روابط التطبيقات&quot; أو &quot;الروابط العامة&quot;، وتكرار مخطط الربط لصفحات في التطبيق الذي استخدمته.

على سبيل المثال، يُرجى الاطّلاع على مجموعة الروابط القصيرة التالية من "روابط 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 الديناميكية السابقة.

بعد اختيار نطاق وتحديد مخطط الروابط المؤدية إلى صفحات في تطبيقك ونقل &quot;روابط Firebase الديناميكية&quot; إلى &quot;روابط التطبيق&quot;، تتمثّل الخطوة التالية في تعديل تطبيق Android ورمز التطبيق لتلقّي الروابط الجديدة المؤدية إلى صفحات في تطبيقك.

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

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

لنفترض أنّك أردت استخدام MainActivity للتعامل مع بعض الروابط لصفحات في التطبيق. لإجراء ذلك، عليك إضافة فلتر الأهداف التالي إلى 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 لاسترداد بيانات الرابط لصفحة معيّنة واستخدامها لتحسين تجربة الرابط لصفحة معيّنة في تطبيقك. يشبه ذلك المنطق الذي ربما سبق لك ترميزه في تطبيقك عند الدمج مع &quot;روابط Firebase الديناميكية&quot;.

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.

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

بدلاً من ذلك، يمكنك أيضًا اختبار عملية دمج روابط التطبيقات باستخدام أداة App Links Assistant في Android Studio، أو استخدام الأمر التالي لعنوان URL الخاص برابط تطبيق الذي ضبطته للتأكّد من أنّه يشغّل النشاط المطابق بشكلٍ سليم:

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

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

سيختلف إكمال هذه الخطوة حسب مكان نشر &quot;روابط Firebase الديناميكية&quot; وطريقة نشرها، ولكن لمساعدتك في تتبُّع الروابط الحالية، يمكنك تصدير البيانات الوصفية الحالية لـ &quot;روابط Firebase الديناميكية&quot;. راجِع دليل تصدير البيانات الوصفية لروابط Dynamic Links.

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

خطوات إنشاء ملف apple-app-site-association واستضافته

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

اتّبِع الخطوات التالية لإكمال عملية الضبط هذه:

  1. أنشئ المجلد ".well-known" ضمن المجلد العام في دليل الجذر الخاص بخدمة Firebase Hosting.

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

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

    {
      "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 العادية لروابط صفحات التطبيق التي تتطابق مع النطاق الجديد الذي أنشأته لروابط Universal Links.

على سبيل المثال، لنفترض أنّ لديك رابطًا ديناميكيًا على 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، واستخدامها كمَعلمة Universal Link لتطبيقك.

عليك تكرار هذه العملية لكل رابط ديناميكي على Firebase تريد نقله لاستخدام &quot;روابط التطبيقات&quot; أو &quot;الروابط العامة&quot;، وتكرار مخطط الربط لصفحات في التطبيق الذي استخدمته.

على سبيل المثال، يُرجى الاطّلاع على مجموعة الروابط القصيرة التالية من "روابط 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

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

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

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

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

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

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

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

  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)
}

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

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

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

ننصحك بشدة باستخدام إعلانات البانر الذكية على التطبيقات كطريقة لتزويد المستخدمين بتجربة مشابهة لتجربة &quot;روابط Firebase الديناميكية&quot;.

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

تتمثّل الخطوة الأخيرة في عملية نقل البيانات في استبدال &quot;روابط Firebase الديناميكية&quot; المنشورة أو المشترَكة بـ &quot;روابط عامة&quot; حيثما أمكن ذلك، ومواصلة استخدام &quot;الروابط العامة&quot; من الآن فصاعدًا.

سيختلف إكمال هذه الخطوة حسب مكان وكيفية نشر &quot;روابط Firebase الديناميكية&quot;.

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