מעקב המרות

הטמעה

סיכום

ההטמעה של מעקב המרות מורכבת משלושה חלקים:

  1. איסוף של rwg_token מדף הנחיתה או מנקודת הכניסה לאפליקציה.
  2. שומרים על rwg_token בחלון השיוך (Attribution) המתאים
  3. שליחת אירוע המרה בקופה

ההטמעה הזו של מעקב ההמרות לא מחייבת אותך להשתמש ב-Google Analytics או בכל JavaScript אחר של צד שלישי.

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

  • רמת המכשיר כוללת שימוש בקובצי cookie של הדפדפן, באחסון מקומי, באחסון מקומי של אפליקציה או בכל שיטה אחרת שבה האסימון זמין לחלון השיוך (Attribution) של 30 יום. מכיוון שהאסימון יאוחסן באופן מקומי במכשיר של המשתמש, אם המשתמש ישנה את המכשיר שבו הוא משתמש, מוחק את האחסון המקומי או את קובצי ה-cookie שלו, או אם הוא משתמש במצב גלישה פרטית או במצב פרטי, ייתכן שאירוע ההמרה לא ישויך כראוי. כשמשתמשים במעקב המרות ברמת המכשיר, צריך להטמיע אותו מחדש בכל פלטפורמה נתמכת (כולל ניידים).
  • ברמת המשתמש, היא נשמרת במסד הנתונים של האפליקציה, דרך מערכת לניתוח נתונים בצד השרת או מערכות אחרות בצד השרת. מאחר שהאסימון יישמר בצד השרת, אם משתמש ישנה את המכשיר שבו הוא משתמש, מוחק את האחסון המקומי או את קובצי ה-cookie שלו או משתמש במצב גלישה פרטית או במצב פרטי, אירוע ההמרה עדיין ישויך לאחר ההתחברות מחדש של המשתמש. כשמשתמשים במעקב המרות ברמת המשתמש, בהתאם לארכיטקטורת המערכת, ייתכן שתהיה לך אפשרות להטמיע את המעקב הזה פעם אחת בצד השרת, ולהשתמש בו שוב בכל הפלטפורמות הנתמכות.

מתבצע איסוף של rwg_token

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

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

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

<script>
  var query = location.search.substring(1);
  var params = query.split('&');
  var rwgToken = undefined;
  for (var i = 0; i < params.length; ++i) {
    var pair = params[i].split('=');
    if (pair[0] == 'rwg_token') {
      rwgToken = decodeURIComponent(pair[1]);
      break;
    }
  }
</script>

ממשיכים בrwg_token

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

כששומרים את האסימון, אפשר לאחסן אותו ברמת המכשיר או ברמת המשתמש:

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

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

<script>
  if (typeof rwg_token !== 'undefined') {
    document.cookie =
    "_rwg_token=" + rwg_token + ";max-age=2592000;domain=rootdomain.com;path=/";
  }
</script>

כשמשתמשים במעקב המרות ברמת המשתמש, צריך לאחסן את rwg_token בשרת ולשייך אותו למשתמש.

שליחת נתוני המרות

כשמשתמש משלים עסקה שאפשר לייחס אותה לקישור של Google Place Action, יש לשלוח בקשת HTTP POST לנקודת הקצה של ההמרה. יש שתי נקודות קצה, אחת לסביבת הייצור ואחת לסביבת Sandbox.

  • הפקה: https://www.google.com/maps/conversion/collect
  • ארגז חול: https://www.google.com/maps/conversion/debug/collect

גוף הפוסט צריך להיות אובייקט מקודד json בפורמט:

{
  'conversion_partner_id': partnerId,
  'rwg_token': <rwg_token_val>
}

גם בסביבת Sandbox וגם בסביבת הייצור יהיה עליך לספק rwg_token חוקי במהלך השליחה של אירוע המרה. למטרות בדיקה בסביבת Sandbox אפשר להשתמש באסימון הבדיקה הבא.

ADQ7psRE9YyDSVR6YpfD-fYdxoFYVKS1xeTvXdSxqF8a3bnk0W62eMEnUjoNPwjhNHG0elwBnM1awTjr9vXET8yOowCeuODjwA==

דוגמה מלאה של מעקב המרות ברמת המכשיר (באמצעות קובץ cookie במכשיר של המשתמש) ב-JavaScript, שמראה איך ליצור את בקשת הפוסט הזו, מופיעה בהמשך:

const partnerId = XXXXXXXXXX;
const endpoint = `https://www.google.com/maps/conversion/collect`;

const rwgTokenCookie = document.cookie
  .split('; ')
  .find(row => row.startsWith('_rwg_token='));

if (typeof rwgTokenCookie !== 'undefined') {
  const rwgTokenVal = rwgTokenCookie.split('=')[1];
  fetch(endpoint, {
    method: "POST",
    body: JSON.stringify({
      conversion_partner_id: partnerId,
      rwg_token: rwgTokenVal
    })
  });
}

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

דרישות לגבי שיוך המרות

התקן הנדרש של Google לשיוך המרות הוא חלון שיוך של 30 יום לכל אינטראקציה עם קישור למקום, בכל חנות.

המשמעות של חלון השיוך הזה היא שאירוע המרה אמור להישלח בכל אחד מהתרחישים הבאים:

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

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

  • אפליקציות אינטרנט למחשב או לנייד
  • אפליקציות לנייד, דרך קישור עומק של אפליקציה או דרך כוונת אפליקציה רשומה בדומיין שלך

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

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