تخطي إلى المحتوى

النمو

الروابط العميقة

يفتح الرابط العميق شاشة محددة داخل تطبيقك المثبَّت، مثل تحدٍّ أو دعوة إحالة أو صفحة منتج. وإذا لم يكن التطبيق مثبَّتًا، ينتقل الزائر إلى المتجر بدلًا من ذلك، تمامًا كما يحدث مع رابطك الذكي. تتوفر الروابط العميقة في خطط Pro وStudio ومدى الحياة. وتحتاج Universal Links وAndroid App Links أيضًا إلى نطاق مخصص، وهو جزء من Studio.

كيف يعمل الرابط العميق

أضف /open/ والمسار داخل التطبيق إلى رابطك الذكي. وتُمرَّر سلسلة الاستعلام أيضًا:

https://mapps.one/habitly/open/challenges/30-days?ref=newsletter
الزائرما يحدث
iPhone أو iPad، مع ضبط مخطط URL لنظام iOS تحاول صفحة قصيرة فتح habitly://challenges/30-days?ref=newsletter. وإذا لم يكن التطبيق مثبَّتًا، يتابع الزائر إلى App Store.
Android أو Huawei، مع ضبط package name تفتح صفحة قصيرة Android intent للمسار نفسه، مقصورًا على الحزمة الخاصة بك. يفتح Chrome التطبيق إذا كان مثبَّتًا، وإلا فيتبع الوجهة البديلة إلى Google Play.
هاتف أو جهاز لوحي، دون إعدادات روابط عميقة لمنصته يُعاد توجيهه مباشرةً إلى الوجهة البديلة.
أجهزة الكمبيوتر المكتبية والروبوتات يُعاد توجيهها إلى الرابط الذكي، مع الإبقاء على سلسلة الاستعلام.

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

يمكن أن تحتوي المسارات على أحرف وأرقام والرموز / _ - . ~ %. تُزال الرموز الأخرى، لذا استخدم ترميز النسبة المئوية لأي رمز آخر، مثل المسافات (%20).

الإعداد

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

الحقلمثاليُستخدم لـ
مخطط URL لنظام iOShabitly://فتح التطبيق من صفحة إعادة التوجيه على iPhone وiPad
Apple Team IDA1B2C3D4E5Universal Links. المعرّف المكوّن من 10 أحرف من Membership details في حساب Apple Developer الخاص بك.
iOS bundle IDcom.habitly.appUniversal Links
Android package namecom.habitly.appفتح التطبيق على أجهزة Android وHuawei
مخطط Androidhabitlyالمخطط الذي يعالجه intent filter في تطبيقك
بصمات شهادة SHA-25614:6D:E9:83:...:44:E5Android App Links. أضف بصمة واحدة أو أكثر، مفصولة بفواصل أو مسافات أو أسطر جديدة.
مخطط Android: اضبطه على المخطط المخصص الذي يسجّله تطبيقك، مثل habitly. إذا تركته فارغًا، يُستخدم https ويصبح الجزء الأول من المسار هو المضيف (https://challenges/30-days). ولا يعمل ذلك إلا إذا كان intent filter في تطبيقك يتوقعه.

سجّل المخطط في تطبيقك

في iOS، ضمن Info.plist:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>habitly</string>
    </array>
  </dict>
</array>

في Android، ضمن AndroidManifest.xml:

<activity android:name=".MainActivity" android:exported="true">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="habitly" />
  </intent-filter>
</activity>

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

Universal Links وAndroid App Links

تعرض روابط المخطط صفحة إعادة توجيه قصيرة أولًا، وقد يطلب iOS من الزائر التأكيد. أما الروابط الموثَّقة فتتخطى هذه الخطوة: عندما يكون التطبيق مثبَّتًا، يفتحه النظام مباشرةً. ويحتاج التوثيق إلى نطاق يخص تطبيقك وحده، لذا يعمل على نطاقك المخصص. بمجرد ربط get.habitly.app، يقدّم mapps.one ملفات الارتباط نيابةً عنك:

الملفمبني من
https://get.habitly.app/.well-known/apple-app-site-association
(متاح أيضًا على /apple-app-site-association)
Apple Team ID وbundle ID
https://get.habitly.app/.well-known/assetlinks.jsonAndroid package name وبصمات SHA-256

يغطي ملف Apple كل المسارات تحت /open/:

{
  "applinks": {
    "details": [
      {
        "appIDs": ["A1B2C3D4E5.com.habitly.app"],
        "components": [
          { "/": "/open/*", "comment": "Deep links created with mapps.one" }
        ]
      }
    ]
  },
  "webcredentials": { "apps": ["A1B2C3D4E5.com.habitly.app"] }
}

ملف Android:

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "com.habitly.app",
      "sha256_cert_fingerprints": [
        "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"
      ]
    }
  }
]

يُرجع كل ملف "404 Not Found" إلى أن تصبح حقوله صالحة: Team ID من 10 أحرف وbundle ID لملف Apple، وpackage name مع بصمة واحدة على الأقل بتنسيق AA:BB:... (32 زوجًا) لملف Android. استخدم بصمة مفتاح Play App Signing من Play Console → App integrity، وأضف مفتاح التحميل أيضًا إذا كنت تختبر إصدارات موقَّعة محليًا. تُخزَّن الملفات مؤقتًا لمدة ساعة. كما تخزّنها Apple مؤقتًا على خوادمها، لذا أعد تثبيت التطبيق لاختبار التغييرات.

اضبط تطبيقك

في iOS: أضف إمكانية Associated Domains مع applinks:get.habitly.app.

في Android: أضف 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:scheme="https" android:host="get.habitly.app" android:pathPrefix="/open/" />
</intent-filter>

ثم استخدم روابط مثل https://get.habitly.app/open/challenges/30-days في حملاتك. وعندما لا يكون التطبيق مثبَّتًا، يحمّل المتصفح الصفحة ويعمل مسار الوجهة البديلة نفسه.

استخدم نطاقك في الروابط الموثَّقة. لا تُقدَّم ملفات الارتباط إلا على النطاقات المخصصة، لأن mapps.one مشترك بين تطبيقات كثيرة. وتستمر الروابط على mapps.one/habitly/open/ في العمل عبر صفحة إعادة التوجيه. تستخدم عناوين URL للروابط العميقة المعروضة في لوحة التحكم وفي API النطاق mapps.one، لذا استبدل المضيف بنطاقك عندما تريد روابط موثَّقة.

التحليلات

يُحتسب الفتح ضمن فتحات الرابط العميق عندما يحمّل هاتف أو جهاز لوحي عنوان URL من نوع /open/ ويحاول mapps.one فتح التطبيق. ولا يُحتسب الانتقال إلى المتجر كوجهة بديلة مرة ثانية. أما الروابط الموثَّقة التي تفتح التطبيق مباشرةً فلا تصل إلى mapps.one أبدًا، لذا لا تُحتسب. استخدم تحليلات تطبيقك الخاصة لتلك الحالات.