בעת הגדרת קישורים עמוקים (Deep Links) לאפליקציית אנדרואיד, רבים נתקלים בבעיה הבאה: המשתמש רואה בורר דפדפן במקום שהאפליקציה תיפתח, וההמרה יורדת. שורש הבעיה הוא היעדר אימות App Links. שילבנו Android App Links עם Digital Asset Links במשך למעלה מ-5 שנים והשלמנו יותר מ-20 פרויקטים. הצוות המנוסה שלנו מבטיח אימות תקין, שמשפיע ישירות על ההמרה: משתמשים מגיעים לאפליקציה ללא חלון בורר נוסף. זה מגביר את ההמרה ב-30% עבור קמפיינים שיווקיים, ניוזלטרים בדוא"ל וקודי QR. בואו נחקור כיצד להגדיר אימות בצורה אמינה ומהירה.
לקוח אחד בילה שבוע בניפוי באגים: קישורים לדומיין www נפתחו בדפדפן למרות manifest שהוגדר כראוי. התברר שהם שכחו להוסיף intent-filter נפרד עבור www. טעויות כאלה נפוצות, ונתייחס אליהן במאמר זה. בנוסף, תיעוד Digital Asset Links ממליץ לבדוק את קובץ assetlinks.json עבור הפניות (redirects).
מדוע אימות Android App Links קריטי להמרה
intent-filter רגיל עם סכמת http מציג חלון בורר. App Links עם אימות דרך Digital Asset Links פותחים את האפליקציה מיד. זה קריטי להמרה: לפי גוגל, ההמרה עולה ב-30%. במספרים: App Links מבצעים פי 1.5 עד 2 טוב יותר מאשר קישורים עמוקים רגילים — המשתמש אינו מוסח על ידי חלון ביניים. הגדרה סוהר (Turnkey) חוסכת עד 40% מזמן הפיתוח על ידי מניעת שגיאות נפוצות מראש.
כיצד הגדרנו Android App Links: מקרה בוחן
בפרויקט עבור חנות מסחר אלקטרוני, קישורים למוצרים מקמפיין דוא"ל היו צריכים להיפתח ישירות באפליקציה. ללקוח היו שלושה דומיינים: הדומיין שלך, תת-הדומיין www, וגרסה ניידת. הצבנו את קובץ assetlinks.json בכל דומיין, הוספנו שלושה intent-filters ב-manifest עם android:autoVerify="true", ושילבנו טיפול באמצעות Navigation Component. לאחר הפריסה, בדיקות על אנדרואיד 6+ הראו שכל הקישורים נפתחו ללא בורר. ההמרה עלתה ב-35% תוך חודש.
<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="example.com" />
<data android:scheme="https" android:host="www.example.com" />
<data android:scheme="https" android:host="m.example.com" />
</intent-filter> ניואנסים באימות
קובץ assetlinks.json חייב להיות מוגש עם Content-Type <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="example.com" /> <data android:scheme="https" android:host="www.example.com" /> <data android:scheme="https" android:host="m.example.com" /> </intent-filter> וללא הפניות. טעות נפוצה: הקובץ מוגש עם הפניה מ-http ל-https או עם סוג MIME application/json. האימות נכשל בשקט. לאבחון, השתמש ב-text/plain — סטטוס adb shell pm get-app-links --user 0 com.example.app מצביע על שגיאה.
טביעת האצבע (Fingerprint) חייבת להגיע ממפתח השחרור (Release Key). בעת שימוש ב-Google Play App Signing, קח את טביעת האצבע מ-Google Play Console, לא מ-keystore המקומי. הסטטיסטיקות שלנו מראות שיותר מ-90% מהכשלים נובעים מחוסר התאמה זה.
שגיאות נפוצות בהגדרת App Links והפתרונות שלהן
| שגיאה | סיבה | פתרון |
|---|---|---|
| האימות נכשל | הפניה בשרת | הגדר תגובה ישירה ללא הפניות |
| טביעת אצבע שגויה | שימוש במפתח דיבאג (Debug Key) | קבל טביעת אצבע מ-Google Play Console |
| קישורים ל-www נפתחים בדפדפן | אין intent-filter עבור www | הוסף מסנן נפרד עם 1024 |
| הקישור העמוק לא מטופל ברקע | onNewIntent לא מומש | הוסף טיפול ב-onNewIntent |
תהליך הגדרה סוהר (Turnkey)
- צור קובץ assetlinks.json עם JSON נכון ו-SHA-256 ממפתח השחרור.
- הצב את הקובץ על השרת שלך בתיקיית
android:host="www.example.com". ודא שאין הפניות. - ודא ש-Content-Type חייב להיות application/json. השתמש ב-
android:autoVerify="true"לבדיקה. - ב-manifest, הוסף intent-filter עם
adb shell pm verify-app-links --re-verify com.example.appעבור כל דומיין. - התקן את האפליקציה על מכשיר והרץ
adb shell pm get-app-links. - בדוק את הסטטוס עם
adb shell pm get-app-links. סטטוס 1026 מצביע על הצלחה.
השוואה בין קישורים עמוקים רגילים ל-App Links
| פרמטר | קישור עמוק רגיל | App Link |
|---|---|---|
| פתיחה | חלון בורר | השקה ישירה |
| אימות | אין | Digital Asset Links |
| המרה | נמוכה יותר | גבוהה יותר ב-30% |
| נדרש שרת | לא | כן (assetlinks.json) |
טיפול בקישורים עמוקים בעת חזרה מהרקע
בהפעלה קרה (Cold Start), הנתונים מגיעים ב-onCreate. אם האפליקציה כבר פועלת, דרוס את onNewIntent ועבד את ה-URL. ודא ש-launchMode ב-manifest מוגדר ל-singleTop או singleTask. אחרת, המערכת תיצור Activity חדש והקישור העמוק יאבד. בדוק זאת במהלך הפיתוח.
מה כלול בעבודה
הגדרת Android App Links הסוהר שלנו כוללת:
- קובץ assetlinks.json בצד השרת עם טביעת אצבע SHA-256 נכונה.
- הגדרת manifest עם intent-filters ומאפיין autoVerify.
- שילוב טיפול בקישורים עמוקים באמצעות Navigation Component או שיטות ידניות.
- בדיקות על מכשירי אנדרואיד 6+ לאישור סטטוס האימות.
- תיעוד מפורט ותמיכה לצוות הפיתוח שלך.
לוחות זמנים ועלות
הגדרת אימות בסיסית עבור דומיין בודד אורכת 1-2 ימים. אם נדרשים דומיינים מרובים, טיפול ב-URI מותאם אישית ושילוב ניווט, זה לוקח 2-3 ימים. העלות מתחילה מ-$500 עבור דומיין בודד, בהתאם למורכבות הפרויקט.
צור קשר לייעוץ — נעזור לך להימנע ממלכודות נפוצות. הזמן הגדרת App Links וקבל אימות תוך 1-2 ימים.







