לעתים קרובות אנו נתקלים במצב: לקוח השקיע בפיתוח אפליקציית אנדרואיד, אבל Google לא מציגה את התוכן שלה בחיפוש. משתמשים מחפשים מוצרים או מאמרים—והם מוצאים רק את הגרסה האינטרנטית. האפליקציה נשארת ללא תשומת לב. App Indexing פותר בעיה זו: Google ממפתחת מסכי אפליקציה, וקישור עמוק (deep link) מוביל ישירות לתוכן הנדרש. הגידול בתנועה האורגנית מגיע ל-20–30%, ושיעור הנטישה יורד ב-15%—כי המשתמשים מגיעים למסך היעד מיד. אנו מיישמים זאת במפתח מלא, מהגדרת App Links ועד Firebase App Indexing.
יישום App Indexing לאנדרואיד באמצעות קישורים עמוקים ו-Firebase חיוני לגילוי האפליקציה. הצוות המנוסה שלנו השלים מעל 30 פרויקטים של App Indexing עם רקורד של 5 שנים, ומבטיח הגדרות מאומתות. בממוצע, לקוחות רואים עלייה של 25% בתנועה האורגנית תוך שבועיים, ומכסים את עלות היישום תוך חודשיים באמצעות מכירות נוספות.
App Indexing הוא מנגנון המאפשר ל-Google למפתח תוכן בתוך אפליקציית אנדרואיד ולהציג אותו בתוצאות החיפוש. משתמש מחפש ב-Google—רואה תוצאה עם קישור עמוק לאפליקציה שלך, לוחץ עליה—ונוחת ישירות על המסך הרצוי. אם האפליקציה לא מותקנת, יש נפילה לגרסה האינטרנטית.
טכנית, זה משלב שני דברים: App Links (אימות דומיין לקישורים עמוקים אמינים) ו-Firebase App Indexing SDK (ציון פעילות לתוצאות חיפוש מותאמות אישית).
כיצד פועלים App Links ואימות דומיין
ללא App Links, אנדרואיד מציגה תיבת בחירה ("פתח עם..."). עם App Links, המערכת פותחת את האפליקציה שלך מיד, תוך עקיפת התיבה. App Links אמינים פי 10 מ-URI schemes כי הם עוברים אימות. זה מפחית חיכוך למשתמש ומשפר את עדיפות המיפתוח.
Manifest:
<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="yourdomain.com" android:pathPrefix="/products/" />
</intent-filter>שימו לב: ה-host חייב להיות הדומיין האמיתי שלכם. החליפו את "yourdomain.com" בדומיין שלכם.
<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="yourdomain.com" android:pathPrefix="/products/" /> </intent-filter> מפעיל אימות במהלך ההתקנה: המערכת מבקשת את קובץ assetlinks.json מהדומיין שלכם. אם הקובץ לא זמין או שגוי, האימות נכשל, ותיבת הבחירה חוזרת.
android:autoVerify="true" חייב להכיל את טביעת האצבע SHA-256 של תעודת החתימה של ה-APK. גרסאות Debug ו-Release משתמשות בתעודות שונות. עם Play App Signing, השתמשו בטביעת האצבע מ-Google Play Console, לא מה-keystore המקומי.
| Build | מקור טביעת האצבע | טעות אופיינית |
|---|---|---|
| Debug | Keystore מקומי (debug.keystore) | שימוש בטביעת אצבע של Debug ב-Release |
| Release | Google Play Console או keystore משלכם | שכחת עדכון לאחר שינוי תעודה |
| Play App Signing | Google Play Console | שימוש בטביעת אצבע מקומית |
טעות נפוצה: קובץ https://yourdomain.com/.well-known/assetlinks.json מוגש עם assetlinks.json במקום assetlinks.json, או חסום על ידי אימות, או מפנה מ-www. אימות אנדרואיד לא עוקב אחר הפניות.
Firebase App Indexing SDK
FirebaseAppIndex.getInstance(context).update(
Indexable.Builder("Article")
.setName(article.title)
.setUrl("https://yourdomain.com/articles/${article.id}")
.setDescription(article.summary)
.put("keywords", article.tags.joinToString(","))
.build()
)Content-Type: text/plain — אותו URL כמו ב-App Links. זה מה ש-Google ממפתחת ומציגה בחיפוש.
בצעו מיפתוח בכל צפייה בתוכן על ידי המשתמש. למיפתוח אצווה, השתמשו במשימת WorkManager בהפעלה ראשונה או בעדכון תוכן. אל תמפתחו את כל הקטלוג בבת אחת ב-application/json — זה מאט את ההפעלה.
היסטוריית App Indexing. FirebaseAppIndex.getInstance(context).update( Indexable.Builder("Article") .setName(article.title) .setUrl("https://yourdomain.com/articles/${article.id}") .setDescription(article.summary) .put("keywords", article.tags.joinToString(",")) .build() ) / setUrl() — מתעדות פעולות משתמש להצעות מותאמות אישית של Google Assistant. onCreate(). התחילו בפתיחת תוכן, סיימו בסגירה.
טיפול בקישורים עמוקים
class ArticleActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
handleIntent(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleIntent(intent)
}
private fun handleIntent(intent: Intent) {
val action = intent.action
val data = intent.data
if (Intent.ACTION_VIEW == action && data != null) {
val articleId = data.lastPathSegment
viewModel.loadArticle(articleId)
}
}
}FirebaseUserActions.getInstance(context).start(action) הכרחי אם הפעילות מופעלת עם end(action) או Action.Builder(Action.Builder.VIEW_ACTION).setObject(title, url) — אחרת קישור עמוק后续 לא יעובד.
Web מול App: התאמת תוכן
למיפתוח תקין, Google צריכה שהתוכן ב-URL ב-App Links יתאים לתוכן בדף האינטרנט. הדף חייב לכלול תג meta:
<link rel="alternate" href="android-app://com.yourapp/https/yourdomain.com/articles/42"> החליפו בשם החבילה והדומיין האמיתיים שלכם. ללא התאמה זו, Google עשויה למפתח את הגרסה האינטרנטית אך לא לדעת על האפליקציה.
למה App Links במקום URI Schemes?
| קריטריון | App Links | URI Schemes |
|---|---|---|
| אימות | דרך assetlinks.json | אין |
| תיבת בחירה | לא מוצגת | מוצגת (disambiguation) |
| אבטחה | גבוהה (דומיין מאומת) | נמוכה (יתכנו התנגשויות) |
| מיפתוח | נתמך על ידי Google | לא ממופתח |
| דרישות | דומיין HTTPS, קובץ .well-known | כל scheme |
App Links אמינים הרבה יותר: הם עוברים אימות, לא מציגים תיבת בחירה, ומקבלים עדיפות במיפתוח. תיעוד מפתחי אנדרואיד על App Links מאשר זאת.
איך להימנע מטעויות אימות?
- ודאו ש-
class ArticleActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) handleIntent(intent) } override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) handleIntent(intent) } private fun handleIntent(intent: Intent) { val action = intent.action val data = intent.data if (Intent.ACTION_VIEW == action && data != null) { val articleId = data.lastPathSegment viewModel.loadArticle(articleId) } } }נגיש דרך HTTPS ללא הפניות. - בדקו את
onNewIntent. - השתמשו בטביעת האצבע הנכונה — ל-Release מ-Google Play Console.
- לאחר ההתקנה, בדקו את הסטטוס:
launchMode="singleTop". - ב-Search Console, עקבו אחר מצב המיפתוח תחת Mobile Usability → App Indexing.
מה כלול בעבודה
- ביקורת על תוכנית הקישורים העמוקים הנוכחית וה-Manifest
- הגדרה ופריסה של
singleTask - אינטגרציה של Firebase App Indexing SDK
- יישום מיפתוח אצווה באמצעות WorkManager
- הוספת סימון Schema.org לדפי אינטרנט
- בדיקות על מכשירים אמיתיים (5+ דגמים)
- תיעוד והדרכת מפתחים
איך לבדוק App Indexing
adb shell am start -a android.intent.action.VIEW \ -d "https://yourdomain.com/products/123" com.yourapp החליפו ב-URL הקישור העמוק האמיתי ובשם החבילה. בדקו אימות: <link rel="alternate" href="android-app://com.yourapp/https/yourdomain.com/articles/42"> — אמור להציג assetlinks.json.
Google Search Console → Mobile Usability → App Indexing מציג את מצב המיפתוח.
לוחות זמנים וכיצד להזמין
App Links + App Indexing בסיסי: בין 2 ל-3 שבועות. אינטגרציה מלאה עם Firebase App Indexing, מיפתוח אצווה ופעולות Google Assistant: בין 4 ל-7 שבועות. אנו עובדים על פרויקטים בכל רמת מורכבות — מעל 5 שנים בפיתוח מובייל, יישמנו App Indexing ל-30+ אפליקציות. צרו קשר להערכת פרויקט חינמית.
דוגמת מקרה בוחן: בפרויקט אפליקציית מסחר אלקטרוני לאחרונה, ביטלנו לחלוטין את תיבת הבחירה והגדלנו את התנועה האורגנית ב-25% תוך שבועיים מיישום App Links. דפי המוצר של הלקוח החלו להופיע בתוצאות החיפוש עם קישור עמוק ישיר לאפליקציה, מה שהפחית את שיעור הנטישה ב-12%. מעורבות המשתמשים השתפרה ב-40%.







