הגדרת ייחוס התקנות
הגדרנו ייחוס ל-50+ אפליקציות מובייל — מסטארטאפים פינטק ועד גיימינג עם תקציבים הנעים בין $5000M–100k בחודש. הכאב האופייני: תקציב הפרסום מפוזר על פני חמישה ערוצים (Google UAC, Meta Ads, TikTok, Telegram, ASA), התקנות מתרחשות, קיימות המרות, אבל השיווק לא יודע איזה ערוץ הביא את הקונה. ללא ייחוס נכון, עד 40% מהתקציב (לדוגמה, 120,000 מתוך $2.7k–3.9k) הולכים לבוטים והתקנות לא ממוקדות. ההבטחה שלנו: דיווח שקוף לכל מתקין וחיסכון בעלויות.
איך עובד ייחוס: MMP באמצע השרשרת
Mobile Measurement Partner — צד שלישי בלתי תלוי בין רשתות הפרסום לאפליקציה שלך. העיקרון: משתמש לוחץ על מודעה — MMP מתעד את הקליק עם פרמטרי הקמפיין. לאחר ההתקנה, ה-SDK של האפליקציה מתאים את המכשיר לקליק השמור ומייחס אותו למקור. שחקנים מרכזיים: AppsFlyer, Adjust, Branch, Kochava. עבור רוסיה, AppsFlyer ו-Adjust הם הסטנדרט.
מנגנוני התאמה לאחר הפיצול של iOS 14.5:
- דטרמיניסטי (מדויק): באמצעות SKAdNetwork postbacks — כאשר המשתמש העניק הרשאת ATT
- פרוביליסטי (הסתברותי): באמצעות טביעת אצבע (IP + User-Agent + זמן קליק) — ללא ATT, דיוק של 60–70%
באנדרואיד, Google Play Referrer API מספק טוקן ייחוס מדויק ללא הרשאות.
איך לשלב את AppsFlyer SDK ב-iOS ואנדרואיד
iOS (Swift)
// AppDelegate.swift
import AppsFlyerLib
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
AppsFlyerLib.shared().appsFlyerDevKey = "YOUR_DEV_KEY"
AppsFlyerLib.shared().appleAppID = "123456789"
AppsFlyerLib.shared().delegate = self
AppsFlyerLib.shared().isDebug = false // только dev
return true
}
func applicationDidBecomeActive(_ application: UIApplication) {
AppsFlyerLib.shared().start() // после ответа ATT
}לפי התיעוד הרשמי של AppsFlyer (AppsFlyer Developer Guide), אין לקרוא ל-// AppDelegate.swift import AppsFlyerLib func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { AppsFlyerLib.shared().appsFlyerDevKey = "YOUR_DEV_KEY" AppsFlyerLib.shared().appleAppID = "123456789" AppsFlyerLib.shared().delegate = self AppsFlyerLib.shared().isDebug = false // только dev return true } func applicationDidBecomeActive(_ application: UIApplication) { AppsFlyerLib.shared().start() // после ответа ATT } לפני תגובת ATT — אחרת אפל תחסום את ה-postback. הרצף הנכון: הצגת ATT → המתנה לתגובה → קריאה ל-start().
אנדרואיד (Kotlin)
AppsFlyerLib.getInstance().init("YOUR_DEV_KEY", object : AppsFlyerConversionListener {
override fun onConversionDataSuccess(data: Map<String, Any>) {
val campaign = data["campaign"] as? String
val mediaSource = data["media_source"] as? String
// "googleadwords_int" для Google UAC
}
override fun onConversionDataFail(error: String) {}
override fun onAppOpenAttribution(data: Map<String, Any>) {}
override fun onAttributionFailure(error: String) {}
}, this)
AppsFlyerLib.getInstance().start(this)באנדרואיד, הוסף את התלות start() — בלעדיה, ייחוס Google UAC יהיה פרוביליסטי.
למה Postbacks קריטיים לאופטימיזציה של קמפיינים פרסומיים
ללא postbacks, רשתות הפרסום לא מקבלות אותות על אירועי מטרה (רכישה, הרשמה). Google UAC ו-Meta מבצעים אופטימיזציה להתקנה, לא לאירועים בתוך האפליקציה. הגדרת postbacks לכל רשת היא חובה. טעות אופיינית: אי ציון AppsFlyerLib.getInstance().init("YOUR_DEV_KEY", object : AppsFlyerConversionListener { override fun onConversionDataSuccess(data: Map<String, Any>) { val campaign = data["campaign"] as? String val mediaSource = data["media_source"] as? String // "googleadwords_int" для Google UAC } override fun onConversionDataFail(error: String) {} override fun onAppOpenAttribution(data: Map<String, Any>) {} override fun onAttributionFailure(error: String) {} }, this) AppsFlyerLib.getInstance().start(this) לרכישה ב-postback של Meta, מה שגורם לרשת להתייחס להתקנה בלבד כהמרה. עלות תיקון שגיאה כזו היא $100–300 ליום של תקציב מבוזבז.
ייחוס Deeplink: איפה זה נשבר לעיתים קרובות
OneLink (AppsFlyer) / Universal Links / App Links מאפשרים לייחס לא רק את ההתקנה אלא גם deeplink ספציפי. משתמש לוחץ על קישור בטלגרם, מתקין את האפליקציה, ומגיע למסך הנכון עם ייחוס תקין.
שגיאות אופייניות:
- Universal Links מפסיקים לעבוד לאחר עדכון אפליקציה — קובץ
com.android.installreferrer:installreferrer:2.2לא עודכן או ש- Bundle ID השתנה. - חסר
event_name— ביקורים חוזרים דרך deeplink לא מיוחסים. - באנדרואיד, לא צוין
apple-app-site-associationעבור App Links, והמערכת פותחת את הדפדפן במקום האפליקציה.
השוואת MMP: AppsFlyer vs Adjust vs Branch
| פרמטר | AppsFlyer | Adjust | Branch |
|---|---|---|---|
| ייחוס Deeplink | OneLink (אוניברסלי) | Adjust Links | Branch Links (מאוחד) |
| אנטי-הונאה | AI Fraud מובנה | Fraud Prevention Suite | בסיסי |
| SKAdNetwork | תמיכה מהיום הראשון | תמיכה מלאה | תמיכה |
| מחיר | יקר יותר לנפחים קטנים | בינוני | יקר יותר לפרויקטים קטנים |
הניסיון שלנו: עבור פינטק עם עלות גבוהה להתקנה, AppsFlyer עדיף בשל אנטי-הונאה מדויק יותר. עבור מסחר אלקטרוני עם deeplinking עמוק, Branch מספק חוויית משתמש טובה יותר.
תהליך האינטגרציה
| שלב | משך | מה אנחנו עושים |
|---|---|---|
| אנליטיקה | יום אחד | בחירת MMP לפי תקציב וערוצים |
| אינטגרציית SDK | 1–2 ימים | ב-iOS (Swift) ואנדרואיד (Kotlin/Java) או דרך תוסף Flutter |
| הגדרת זרימת ATT | 0.5 יום | עבור iOS |
| הגדרת Postback | 1–2 ימים | ל-Google, Meta, TikTok, ASA (3+ רשתות) |
| ייחוס Deeplink | יום אחד | Universal Links / App Links / OneLink |
| בדיקות | יום אחד | שימוש במכשירי בדיקה, אימות בלוח הבקרה |
| אימות Postback | 0.5 יום | לוודא שהרשתות מקבלות אירועים |
אימות תקינות הייחוס
נוהל בדיקה
- הוסף את ה-IDFA/GAID של מכשיר הבדיקה ללוח הבקרה של ה-MMP.
- לחץ על קישור הבדיקה של הקמפיין.
- התקן את האפליקציה.
- הייחוס יופיע בלוח הבקרה תוך 1–2 דקות.
- ודא שה-postback (אירוע התקנה) נשלח לרשת.
מה כלול בעבודה
- בחירת MMP ורישוי (במידת הצורך)
- אינטגרציית SDK בשתי הפלטפורמות (iOS + אנדרואיד)
- הגדרת זרימת ATT ו-SKAdNetwork
- הגדרת Postback ל-3+ רשתות פרסום
- הטמעת ייחוס Deeplink (OneLink / Branch Links)
- בדיקות ואימות
הבטחה: אנו מספקים דוח בדיקה ואימות postback. המהנדסים שלנו מוסמכים ב-AppsFlyer ו-Adjust.
לוחות זמנים ועלויות
- אינטגרציית MMP בסיסית בשתי הפלטפורמות: 3–5 ימים
- עם deeplink וכל ה-postbacks הפרסומיים: עד 7 ימים
- העלות מוערכת באופן אישי — צור קשר להערכה. התקציב בדרך כלל משתנה בהתאם למורכבות.
טעויות שיש להימנע מהן
- קריאה ל-
onAppOpenAttributionלפני ATT — אפל חוסמת postbacks. - חסר handler ל-
intent-filter— אובדן ייחוס ביקורים חוזרים. - התעלמות מ-Apple App Site Association — Universal Links נכשלים.
- שם אירוע שגוי ב-postback — הרשת לא מבצעת אופטימיזציה לפעולת המטרה.
- שימוש בכתובת postback אחת לכל הרשתות — כל רשת דורשת פורמט משלה.
הזמן אינטגרציית ייחוס — אנו נגדיר את ה-MMP עבור הסטack שלך וערוצי הפרסום תוך 5–7 ימים. קבל ייעוץ לפרויקט שלך.







