מפתחים רבים נתקלים בהתנהגות בלתי צפויה: לאחר המעבר ל-SKAdNetwork 4.0 (SKAN 4.0), ערך ההמרה המדויק (fine conversion value) מגיע רק ב-postback הראשון, וערך גס (coarse value) הוא פרמטר לא מובן מאליו. בואו נבין כיצד להגדיר מנגנון זה ולהימנע מאובדן נתוני ייחוס (attribution). לצוות שלנו יש ניסיון בהטמעת SKAN 4.0 עבור אפליקציות עם תקציבי פרסום חודשיים החל מ-$10,000. קבלו ייעוץ לגבי ההטמעה — זה ייקח לא יותר משעה.
מה השתנה ב-SKAN 4.0
שלושה Postbacks במקום אחד
ב-SKAN 2.x/3.x, רשת הפרסום קיבלה postback אחד לאחר שתום הטיימר. SKAN 4.0 מציג שלושה חלונות זמן:
| Postback | חלון זמן | מכיל |
|---|---|---|
| ראשון | 0–2 ימים לאחר ההתקנה | ערך מדויק (0–63) + ערך גס + מזהה מקור |
| שני | 3–7 ימים | ערך גס (נמוך/בינוני/גבוה) |
| שלישי | 8–35 ימים | ערך גס |
ה-postback השני והשלישי נשלחים רק אם המשתמש היה פעיל בחלון המתאים. זה מאפשר לראות אם המשתמש נשאר פעיל ביום 7 וביום 35 — דבר שלא היה אפשרי ללא ה-postback הראשון.
ערך מדויק וערך גס
Fine conversion value — ששת הביטים הקודמים (0–63). הוא מופיע רק ב-postback הראשון ורק עם אנונימיות קהל גבוהה (Apple לא חושפת את הסף המדויק, בערך כמה אלפי התקנות מקמפיין בודד).
Coarse value — שדה חדש עם שלושה ערכים: נמוך, בינוני, גבוה. הוא נשלח בכל שלושת ה-postbacks גם עם נפחי תנועה נמוכים. פחות אינפורמטיבי אבל יציב.
מזהה מקור
שדה חדש בן 2–4 ספרות המחליף את מזהה הקמפיין. שתי הספרות הראשונות תמיד כלולות ב-postback; השלישית והרביעית רק עם אנונימיות קהל מספקת. מאפשר קידוד לא רק של קמפיין אלא גם של קבוצת מודעות או מודעה בודדת.
כיצד להגדיר SKAN 4.0 בשלושה שלבים?
התהליך מורכב משלושה שלבים:
- עדכון קריאת
updatePostbackConversionValueעם הפרמטריםfineValue,coarseValueו-lockWindow. - הבטחת תאימות לאחור עם iOS 14.x על ידי שמירת קריאת
updateConversionValueעבור גרסאות ישנות יותר. - הגדרת MMP (AppsFlyer, Adjust) לקבלת שלושה postbacks ומיפוי ערך גס.
עדכון updateConversionValue
ב-SKAN 4.0, המתודה מקבלת שלושה פרמטרים:
import StoreKit // iOS 16.1+
if #available(iOS 16.1, *) {
SKAdNetwork.updatePostbackConversionValue(
fineValue: 15, // 0–63, только для первого окна
coarseValue: .medium, // .low, .medium, .high
lockWindow: false, // true = немедленно закрыть окно, не ждать таймер
completionHandler: { error in
if let error = error {
print("SKAN update failed: \(error)")
}
}
)
}הפרמטר import StoreKit // iOS 16.1+ if #available(iOS 16.1, *) { SKAdNetwork.updatePostbackConversionValue( fineValue: 15, // 0–63, только для первого окна coarseValue: .medium, // .low, .medium, .high lockWindow: false, // true = немедленно закрыть окно, не ждать таймер completionHandler: { error in if let error = error { print("SKAN update failed: \(error)") } } ) } הוא חדש ב-SKAN 4.0. אם הוא נקרא עם lockWindow: true, Apple מפעילה מיד שליחת postback מבלי להמתין לטיימר. שימושי כאשר ידוע שהמשתמש ביצע פעולה מרכזית ועדכונים נוספים אינם נחוצים. לפי תיעוד Apple, lockWindow מאפשר סגירה מיידית של החלון.
תאימות לאחור
האפליקציה חייבת לתמוך ב-SKAN 3.x עבור iOS 14.x וב-SKAN 4.0 עבור גרסאות מאוחרות יותר. יש לקרוא לשתי ה-APIs במקביל:
func trackPurchase(revenue: Double) {
let fineValue = encodeFineValue(revenue: revenue)
let coarseValue: SKAdNetwork.CoarseConversionValue = revenue > 20 ? .high : .medium
if #available(iOS 16.1, *) {
SKAdNetwork.updatePostbackConversionValue(
fineValue,
coarseValue: coarseValue,
lockWindow: false
) { _ in }
} else if #available(iOS 14.0, *) {
SKAdNetwork.updateConversionValue(fineValue)
}
} הגדרת MMP
AppsFlyer ו-Adjust כבר תומכים ב-SKAN 4.0, אבל יש להפעיל במפורש שלושה postbacks בהגדרות האפליקציה בתוך לוח הבקרה. כברירת מחדל, MMP ממשיך לפעול במצב SKAN 3.x. ב-AppsFlyer, תחת iOS App Settings → SKAdNetwork: בחרו במצב SKAN 4.0, הגדירו מיפוי ערך גס עבור החלון השני והשלישי.
מה זה lockWindow וכיצד להשתמש בו?
LockWindow הוא כלי חדש לשליטה מדויקת בטיימר. כאשר קוראים ל-true עם func trackPurchase(revenue: Double) { let fineValue = encodeFineValue(revenue: revenue) let coarseValue: SKAdNetwork.CoarseConversionValue = revenue > 20 ? .high : .medium if #available(iOS 16.1, *) { SKAdNetwork.updatePostbackConversionValue( fineValue, coarseValue: coarseValue, lockWindow: false ) { _ in } } else if #available(iOS 14.0, *) { SKAdNetwork.updateConversionValue(fineValue) } } , Apple לוכדת מיד את הערכים הנוכחיים ושולחת את ה-postback מבלי להמתין לתום החלון הטבעי. זה קריטי עבור אירועים שלאחריהם עדכונים נוספים חסרי משמעות (למשל, רכישה חד-פעמית).
ערך גס כאות גיבוי
ערך גס הוא אות "גיבוי" למצבים שבהם הערך המדויק מוסתר עקב אנונימיות קהל. גם עם מספר קטן של התקנות (פחות מ-1000–2000 מקמפיין בודד), עדיין תקבלו ערך גס: נמוך, בינוני או גבוה. זה מאפשר הערכת שימור (retention) והמרות ללא קישור לסכום מדויק.
עיצוב סכמת ערך המרה לשלושה חלונות
עבור SKAN 4.0, יש לעצב שלוש סכמות עצמאיות — אחת לכל חלון postback:
חלון ראשון (0–2 ימים): מידע מפורט על פעולות ראשוניות. הערך המדויק מקודד, למשל:
- 0–15: הרשמה ללא רכישה, רמת מעורבות
- 16–31: הוספה לעגלה, קטגוריית מוצר
- 32–63: ביצוע רכישה, טווח הכנסות
חלון שני (3–7 ימים): הערך הגס משקף את מצב השימור:
- נמוך — לא חזר
- בינוני — פתח את האפליקציה אך ללא אירוע מרכזי
- גבוה — רכישה חוזרת או מעורבות גבוהה
חלון שלישי (8–35 ימים): דומה לשני, אבל עבור החודש השני של מחזור החיים.
מדוע SKAN 4.0 יעיל יותר מ-SKAN 3.x?
| מאפיין | SKAN 3.x | SKAN 4.0 |
|---|---|---|
| מספר postbacks | 1 | עד 3 |
| ערך המרה מדויק | כן (0–63) | רק בראשון |
| ערך גס | לא | כן (נמוך/בינוני/גבוה) |
| LockWindow | לא | כן |
| מזהה מקור | מזהה קמפיין | מזהה בן 2–4 ספרות |
| הגנת אנונימיות קהל | רק ערך מדויק | ערך מדויק + מזהה מקור |
SKAN 4.0 אינפורמטיבי פי שלושה, ומספק נתונים על התנהגות המשתמש ביום 7 וביום 35.
מגבלות ומציאות
אנונימיות קהל פירושה שעבור אפליקציות קטנות (פחות מ-1000–2000 התקנות מקמפיין ספציפי), Apple מחליפה את הערך המדויק ב-postback הראשון ב-null. הערך הגס תמיד מגיע. יש להתחשב בכך בניתוח: היעדר ערך מדויק אינו שגיאת אינטגרציה אלא הגנת פרטיות. לפי ההערכות שלנו, הגדרה שגויה של SKAN 4.0 מובילה לאובדן של עד 15% מתקציב הפרסום. אינטגרציה נכונה יכולה להפחית משמעותית את ההפסדים הללו.
מה כלול בעבודה
- ביקורת על אינטגרציית SKAN הנוכחית וגרסת SKAdNetwork ב-Info.plist
- עיצוב סכמת ערך המרה תלת-רמתית
- הטמעת
updatePostbackConversionValueעם תמיכה ב-iOS 14+ - הגדרת SKAN 4.0 ב-AppsFlyer / Adjust
- אימות postbacks באמצעות תנועת בדיקה
- חיסכון בתנועת בדיקה מגיע עד 40% הודות לניתוח מדויק.
לוח זמנים
3–5 ימים. רוב הזמן מושקע בעיצוב הסכמה ובתיאום עם צוות הפרסום, לא בקוד עצמו. התמחור הוא אישי.
צרו קשר כדי שנעזור לכם להגדיר SKAN 4.0 לצרכים שלכם. קבלו ייעוץ ממומחה.







