מטמון עמודים, CDN ובאנרים של הסכמה: איך להימנע מהצגת מצב הסכמה שגוי

עמודים מהירים, הסכמה שגויה

מטמון עמודים הוא אחד הדברים הטובים ביותר שאפשר לעשות למהירות ולעלויות האירוח. הוא גם אחת הדרכים הקלות ביותר לשבור הגדרת הסכמה בלי לשים לב. מטמון עושה בדיוק מה שאומרים לו: שומר תגובה פעם אחת ומגיש אותה לכל מי שתואם לאותו מפתח. אם התגובה השמורה הזו מכילה משהו הספציפי לבחירת ההסכמה או למיקום של מבקר אחד, המבקר הבא מקבל אותו גם.

המדריך הזה סוקר את שכבות המטמון שיושבות בדרך כלל לפני אתר של מפרסם — מטמוני קצה של CDN, תוספי מטמון לעמוד מלא, reverse proxy, service workers והדפדפן עצמו — ואיך למנוע מכל אחת מהן להגיש חוויית הסכמה שגויה.

הכלל המרכזי: שמור את ההסכמה מחוץ ל-HTML שבמטמון

הארכיטקטורה הבטוחה ביותר מרנדרת את עמוד ה-HTML שבמטמון כנייטרלי להסכמה. העמוד מכיל את טוען ה-CMP ואת התגיות שלך במצב חסום או ממתין, אבל בלי שום החלטה לגבי המבקר המסוים הזה. אחר כך ה-CMP רץ בדפדפן, קורא את הבחירה השמורה, מחליט אם להציג את הבאנר ומשחרר תגיות בהתאם.

הבעיות מתחילות כשהשרת מקבל החלטות הסכמה בזמן הרינדור, למשל:

ברגע שהעמוד הזה נשמר במטמון, המצב של המבקר הראשון הופך למצב של כולם. מבקר שדחה מעקב עלול לקבל עמוד עם תגיות שכבר פעילות, או שמבקר חדש לא יראה באנר לעולם כי העותק שבמטמון הגיע ממישהו שכבר סגר אותו.

למה “Vary: Cookie” הוא לעיתים רחוקות התשובה

הפתרון הספרותי לתוכן פרטני למבקר הוא להורות למטמונים להשתנות לפי כותרת העוגיות. בפועל, למבקרים יש הרבה עוגיות עם ערכים ייחודיים, ולכן שינוי לפי כל כותרת העוגיות מוריד בדרך כלל את שיעור הפגיעות במטמון לכמעט אפס. חלק מה-CDN מאפשרים לבנות את מפתח המטמון מערך של עוגייה אחת במקום זאת, מה שאפשרי אם לעוגיית ההסכמה שלך יש מספר קטן של מצבים אפשריים, אבל זה מוסיף מורכבות ועדיין מכפיל את מספר העותקים השמורים. העברת ההחלטה לדפדפן פשוטה יותר ושומרת על יעילות המטמון.

גאוגרפיה בקצה

מפרסמים רבים מציגים באנרים שונים לפי אזור: באנר opt-in לאיחוד האירופי ולבריטניה, הודעת opt-out למדינות בארה"ב, ומשהו קל יותר במקומות אחרים. אם השרת בוחר את הווריאנט לפי כתובת ה-IP של המבקר והעמוד הזה נשמר במטמון, קורא אירופי עלול לקבל עמוד אמריקאי שמור, או להפך.

שלושה דפוסים מונעים זאת:

  1. זיהוי מיקום בצד הלקוח. תן ל-CMP לקבוע את האזור בדפדפן, כך שה-HTML שבמטמון נשאר זהה לכולם.
  2. המדינה במפתח המטמון. אם חייבים להחליט בקצה, כלול במפתח המטמון את קוד המדינה שה-CDN שלך מספק. אתה מקבל עותק שמור אחד לכל מדינה, שאפשר לחזות.
  3. לוגיקת קצה ללא מטמון. הרץ את ההחלטה האזורית בפונקציית קצה שמזריקה ערך קטן וללא מטמון לעמוד ששמור במטמון בכל מקרה אחר.

איזה שתבחר, תעד אותו. באגים גאוגרפיים הם מהקשים לשחזור, כי הם מופיעים רק למבקרים במקום אחד שקיבלו במקרה עמוד ששמר מישהו במקום אחר.

שמירת סקריפט ה-CMP עצמו במטמון

שמירת טוען ה-CMP במטמון לזמן ארוך טובה לביצועים, אבל יש לכך מחיר כשהתצורה משתנה. אם אתה מעדכן ספקים, מטרות או טקסט באנר והסקריפט או קובץ התצורה שמורים לשנה, חלק מהמבקרים ימשיכו לראות את הגרסה הישנה. בדוק איך ה-CMP שלך מנהל גרסאות של הקבצים שלו: שם קובץ או פרמטר גרסה משתנים מאפשרים שמירה אגרסיבית במטמון ועדיין פריסה מיידית של שינויים. ודא גם שה-CDN שלך אינו מסיר מחרוזות שאילתה מכתובות סקריפטים של צד שלישי אם ה-CMP נשען עליהן.

Service workers ומטמוני אופליין

אתרים עם שכבת אפליקציית ווב מתקדמת שומרים לעיתים קרובות HTML ב-service worker. אותו כלל חל: לעולם אל תשמור עמוד שמשקף החלטת הסכמה מסוימת. הוצא נקודות קצה הקשורות להסכמה ועמודי מרכז העדפות משמירה ב-service worker, וודא שתמיד אפשר למשוך תצורת CMP טרייה.

מטמון אחורה/קדימה

דפדפנים מודרניים שומרים בזיכרון עמודים שביקרו בהם לאחרונה כדי שכפתור החזרה ישחזר אותם מיד. אם מבקר פותח את מרכז ההעדפות בעמוד אחד, מבטל הסכמה ואז לוחץ חזרה, ייתכן שבעמוד המשוחזר עדיין רצות תגיות מלפני כן. האזן לאירוע pageshow ובדוק את המאפיין persisted שלו: כשעמוד משוחזר מהמטמון הזה, קרא מחדש את מצב ההסכמה השמור והפסק או הפעל תגיות בהתאם.

שגרת בדיקה

עיקרי הדברים

← בלוג קרא הכל →