עברית בגוגל תג מנג’ר ועבודה נכונה עם כתובות ידידותיות

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

לא מדובר באותה בעיה כמו שהייתה באנליטיקס אם כי היא מאותו זן. היא הנעוצה בדרך שבה תג מנג’ר מטפל בכתובות ידידותיות (Friendly URL) שאינן בשפה האנגלית. הוא קורא את כתובת האתר שלנו עם ערכים מוזרים וארוכים מאד שנראים כך: %D7%92%D7%95 ואלה לא ממש מתאימים את עצמם לטריגרים (Triggers) שיצרנו. בפוסט הזה נסקור את הבעיה, נבין מדוע היא נובעת וכמובן נביא פיתרונות. לבסוף אספר לכם על הצעת ייעול שהעלתי בפני גוגל בנושא.

תקציר:
גוגל תג מנג’ר קורא את ה-URL בצורתו הטבעית והמקודדת. כך הוא גם מכניס אותו למשתנים כמו Page URL ו-Page Path. הדבר גורם לטריגרים שהגדרנו עם שימוש בתווים בעברית לא לעבוד. הפיתרון הוא בייצור משתנים שיפענחו את ה-URL אוטומאטית.

הג’יבריש של המרקטינג

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

הדפדפן לא מתקשר עם השרת באמצעות תווים בעברית

תקשורת בין דפדפן לשרת מתבצעת באמצעות ה-URL: הדפדפן מתקשר (HTTP) עם השרת כדי שזה יחזיר לו קובץ כגון מסמך HTML או תמונה. בעיקרון קיים סט תווים (charset) מצומצם שמותר להשתמש בו לצורך תקשורת זו. הסט מכיל אותיות באנגלית וסימנים כגון סימן שאלה ומקף. תווים בעברית או כל שפה אחרת נחשבים לתווים לא חוקיים ב-URL.

אז איך שולחים ומקבלים תווים בעברית?

עושים זאת באמצעות קידוד. במשפט: קידוד (encode) היא שיטה במחשבים לייצוג תו מסט תווים אחד באמצעות שימוש בתווים מסט תווים אחר. על מנת לאחזר את מידע יש לבצע פעולה הפוכה שנקראת פיענוח (decode).

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

הזינו לשדה הבא תווים בעברית ומתחת הם יופיעו מקודדים:

קידוד של הערך שהזנתם:

URL בעברית, לא מה שחשבתם

הביטו לרגע בשורת ה-URL של עמוד זה. המילים בעברית שאתם רואים שם לא ממש אמיתיות, כתובת העמוד לא באמת מכילה אותיות בעברית. מדובר באחיזת עיניים שעושה עלינו הדפדפן: מאחורי הקלעים הדפדפן מפענח את הכתובת המקודדת (האמיתית) כדי שלנו יהיה נח להבין ממנה משהו.

נסו להעתיק את מלוא הכתובת של עמוד זה.

זה מה שאתם חושבים שהעתקתם:
https://trackingcraft.co.il/blog/עברית-בגוגל-תג-מנגר/
בפועל זה מה שהעתקתם:
https://trackingcraft.co.il/blog/%D7%A2%D7%91%D7%A8%D7%99%D7%AA-%D7%91%D7%92%D7%95%D7%92%D7%9C-%D7%AA%D7%92-%D7%9E%D7%A0%D7%92%D7%A8/
למי מאיתנו זה לא קרה 🙂 הדפדפן עושה לנו את ה”דווקא” הזה כי זו הכתובת האמיתית של העמוד – כל דפדפן יצליח לבצע את הבקשה הזו מהשרת.

איפה הבעיה מבחינת תג מנג’ר?

נכון להיום גוגל תג מנג’ר סוגר פינה אחת ואת השניה משאיר פתוחה:
מצד אחד כשיוצרים טריגר עם תווים בעברית תג מנג’ר מעביר אותם לדפדפן ללא בעיה וזה נשאר בעברית.
מצד השני: תג מנג’ר לא עושה פיענוח ל-URL עבור משתנים (Variables) כמו Page URL ו-Page Path מה שמייצר חוסר התאמה: הערך של התנאי מהטריגר מגיע בעברית בעוד שהמשתנה שנקרא מה-URL נקלט לא מפוענח.

נותרו מקודדים – Page URL ו-Page Path

debug-heb-issue

נשלים את ההסבר באמצעות סנריו פשוט

נניח שאני רוצה להפעיל תגית רימרקטינג בתנאי שכתובת ה-URL מכילה את המילה “מבצעים”:

  • ראשית אני אצור תגית רימרקטינג
  • לאחר מכן אצור טריגר שיופעל כש-Page Path יכיל את המילה “מבצעים” ואצמיד אותו לתגית.
  • נעלה את העמוד הפיקטיבי ונראה מה קיבלנו:

ב-URL נראה את המילה “מבצעים”:

https://trackingcraft.co.il/מבצעים/

אבל הערך שיקלט בתג מנג’ר יהיה הערך האמיתי המקודד:

/%2F%D7%9E%D7%91%D7%A6%D7%A2%D7%99%D7%9D%2F/

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

חזרנו לימי החושך של גוגל אנליטיקס?

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

פיתרונות? קדימה:

מה לא לעשות – עבודה עם ערכים מקודדים

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

gtm-encode-trigger

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

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

מה כן לעשות – עבודה עם משתנים חדשים

בפיתרון הזה אנחנו נגדיר משתנים חדשים עבור Page URL ו-Page Path. המשתנים החדשים שניצור ישמשו כתחליף שיבצע את הפיענוח.

כך יש לעשות זאת:

  • צרו משתנה חדש מסוג Javascript Variable
  • קראו לו בשם “Page URL decoded”
  • העתיקו אליו את הפונקציה הבאה:
function(){
	return decodeURI({{Page URL}});
}

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

מה ההבדל בין Page URL ל-Page Path?

Page URL מייצג את כל ה-URL מתחילתו עד סופו:
http://www.domain.com/dir/file.htm?x=1&y=1
 
Page Path מייצג את הנתיב לקובץ:
http://www.domain.com/dir/file.htm?x=1&y=1

השוואה ב-Preview Mode: המשתנים החדשים (בירוק) לעומת הרגילים (באדום):

debug-comparison

להבדיל מהפיתרון הקודם אנחנו הפעם יכולים להרשות לעצמינו להשתמש בערכים מפוענחים וידידותיים למשתמש:

trigger

טיפ קטן ונחמד:
אם תעתיקו רק חלק מהכתובת (כל עוד התו הראשון לא מסומן) הכתובת תועתק ללא הקידוד. לפחות ככה זה בכרום.

הפעם יש לנו הרבה סימני “וי”: על התנאי בטריגר, בעקבות זאת על הטריגר ובעקבות זאת על התג כולו:

אפשר לשדרג לפיתרון הזה?

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

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

לסיכום

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

תגובת האמא הגדולה גוגל

עבדכם הנאמן הגיש לגוגל הצעות ייעול. הצעתי שיאפשרו לנו לבחור אם המידע יפוענח מראש. ולאפשר ביצירת ה-Tigger פיענוח כתובת מקודדת בלחיצת כפתור שימוקם ליד אותו שדה.

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

לסיום נעשה כבוד למחיה השפה העברית, תהנו 🙂