נכתב על ידי דני צ'רניאק, DigiKnowledge. נבדק לאחרונה: 10.11.2026

הקמת Server-Side GTM היא ארבעה חלקים שמתחברים בסדר קבוע: קונטיינר מסוג Server ב-Tag Manager, שרת תיוג שמריץ אותו, כתובת לשרת על הדומיין שלכם והפניה של התגים באתר לכתובת הזאת בפרמטר server_container_url. בתוך הקונטיינר, Client תופס כל בקשה נכנסת והופך אותה לאירוע. תגים שולחים את האירוע הלאה ל-GA4 ולפלטפורמות הפרסום. בלי דומיין צד ראשון השרת רץ בהקשר צד שלישי ולא יכול להגדיר עוגיות מהשרת.

מה מקימים בפועל כשמקימים Server-Side GTM?

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

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

מסלול של בקשה אחת

מהדפדפן ועד הפלטפורמה, דרך קונטיינר השרת

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

איך יוצרים קונטיינר שרת ומה ההבדל בין הקצאה אוטומטית לידנית?

ב-Tag Manager בוחרים Create Container, נותנים שם, בוחרים Server ולוחצים Create. נפתח מסך הקמה עם שתי אפשרויות: Automatically provision tagging server להקצאה אוטומטית ו-Manually provision tagging server להקצאה ידנית. אם סגרתם אותו, אפשר לחזור אליו בלחיצה על מזהה הקונטיינר.

נושאהקצאה אוטומטיתהקצאה ידנית
מה קורהTag Manager פורס שרת תיוג ב-Cloud Run ומוסיף את הדומיין שלו ככתובת השרתמקבלים מחרוזת Container Config ופורסים בעצמכם את ה-image של Google
מה צריךחשבון Google Cloud עם חשבון חיוב והרשאות Project Creator ו-Billing Account Userסביבה שמריצה Docker, אצל כל ספק
אזורתמיד us-central1לבחירתכם
תצורהתצורת בדיקה. משנים אותה אחר כך ב-Cloud Runאתם מגדירים שרת Preview ואשכול שרתי תיוג
מגבלהאפשר להריץ את ההקצאה האוטומטית פעם אחת בלבדכתובת HTTPS, איזון עומסים וקנה מידה באחריותכם

בהקמה ידנית התיעוד מגדיר שני סוגי שרתים מאותו image. שרת Preview מפעיל את מצב התצוגה המקדימה של הקונטיינר: מריצים ממנו מופע אחד בדיוק, עם המשתנה RUN_AS_PREVIEW_SERVER. שרתי התיוג מטפלים בתנועה החיה, כשכל אחד מהם מקבל את אותו CONTAINER_CONFIG ואת PREVIEW_SERVER_URL שמצביע על שרת ה-Preview. התיעוד מדבר על אשכול של שרתי תיוג ולא על שרת בודד וקובע שלכל שרת יהיה לכל היותר vCPU אחד.

מה זה Client ובמה הוא שונה מתג?

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

כל בקשה עוברת על ה-Clients לפי סדר עדיפות, כשב-Priority מספר גבוה יותר רץ קודם. ה-Client הראשון שמתאים לבקשה הופך ל-Client הפעיל שלה, כי רק Client אחד יכול לתפוס בקשה. לפי התיעוד ה-Client של Google Analytics מותקן מראש בכל קונטיינר שרת, כך שלאתר שמודד עם GA4 אין כאן מה להוסיף.

ההבדל מתג: Client מקבל נתונים, תג שולח אותם. תג בקונטיינר השרת לא יודע מאיפה הגיע האירוע: הוא רואה נתוני אירוע ונורה לפי טריגר. כדי להשתמש בפרמטר מסוים מהאירוע בתג אחר, יוצרים משתנה מסוג Event Data ומזינים את שם הפרמטר ב-Key Path. אירועים שלא מגיעים מאתר, למשל משרת או מאפליקציה, נכנסים דרך Client מסוג Measurement Protocol שמוסיפים ידנית ומגדירים לו Activation Path. את הפורמט עצמו פירטנו במדריך Measurement Protocol של GA4.

איזו כתובת נותנים לשרת: same origin, תת דומיין או ברירת המחדל?

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

האפשרותעוגיות שמוגדרות מהשרתמה נדרש להקמה
Same origin, ההמלצה של Google. לדוגמה www.example.com/metricsגישה מלאה ליתרונות האבטחה והעמידותCDN או load balancer שמעביר בקשות לפי נתיב. לפעמים גם שינוי DNS
תת דומיין. לדוגמה metrics.example.comגישה מלאה ליתרונות האבטחה והעמידותעדכון רשומות DNS
דומיין ברירת המחדל. לדוגמה metrics.run.appאין. רק עוגיות JavaScriptמוגדר מראש

למה עוגייה שמוגדרת מהשרת שונה מעוגיית JavaScript, בעיקר ב-Safari, הסברנו במדריך ITP של Safari ועוגיות צד ראשון.

איך מחברים תת דומיין לשרת התיוג?

אלה השלבים שבתיעוד לשרת שרץ ב-Google Cloud. תת הדומיין חייב להיות שונה מזה שמגיש את האתר.

  1. ממפים את תת הדומיין לשירות. ב-Google Cloud Console פותחים Custom Domains בהגדרות השירות ולוחצים Add a custom domain. מוודאים שאתם בפרויקט שתואם למזהה הקונטיינר.
  2. מאמתים בעלות. אם הדומיין עוד לא מאומת, בוחרים Verify a new domain, מזינים את תת הדומיין ומשלימים את האימות.
  3. מוסיפים רשומות DNS. אצל רשם הדומיין מוסיפים את הרשומות שמוצגות בלשונית Custom Domains, מסוג A או AAAA. בשם הרשומה מזינים רק את תת הדומיין, למשל metrics.
  4. ממתינים להפצה. לפי התיעוד השינוי נכנס לתוקף בדרך כלל תוך דקות, אבל זה יכול לקחת כמה שעות. הנפקת תעודת ה-SSL יכולה לקחת עד שעה.
  5. מעדכנים את הכתובת ב-Tag Manager. בקונטיינר השרת, Admin ואז Container Settings, מדביקים את הכתובת בשדה Server container URL ושומרים.
  6. בודקים. לוחצים Preview. אם חלון הדיבוג נפתח, המיפוי עובד.

התיעוד מוסיף המלצה לפריסות Cloud Run: להשתמש ב-global external Application Load Balancer. באפשרות same origin העבודה נעשית ב-CDN או ב-load balancer במקום ב-DNS. בוחרים נתיב פנוי כמו /metrics ומנתבים את כל התנועה שמתחילה בו לשרת התיוג. לפי התיעוד הנתיב לא יכול להכיל את המחרוזת /gtm. צריך להעביר את כל העוגיות ואת מחרוזות השאילתה ולהגדיר את כותרת ה-Host לדומיין של שרת התיוג. ב-Container Settings מוחקים כתובות קודמות ומזינים את הכתובת המלאה כולל הנתיב, כי כל כתובות השרת חייבות לחלוק את אותו נתיב.

איך מפנים את התגים באתר אל השרת?

השרת קיים, אבל שום דבר לא יגיע אליו עד שהתג באתר ידע את הכתובת. ב-Google Tag Manager זה נעשה כך:

  1. יוצרים משתנה תצורה. בקונטיינר האתר יוצרים משתנה מסוג Google tag: Configuration settings ומוסיפים פרמטר בשם server_container_url. הערך הוא כתובת קונטיינר השרת.
  2. משייכים את המשתנה ל-Google tag. בתג, תחת Configuration settings, בוחרים את המשתנה.
  3. קובעים טריגר מוקדם. התיעוד מגדיר את הטריגר Initialization - All pages, כדי שהתג ירוץ לפני שאר הטריגרים.
  4. שומרים ומפרסמים. שומרים את התג ומפרסמים את קונטיינר האתר.

באתר שעובד עם gtag.js בלי Tag Manager מוסיפים את אותו מפתח לפקודת config:

gtag('config', 'TAG_ID', {
  'server_container_url': 'https://analytics.example.com',
});

שתי נקודות שהתיעוד מוסיף. הראשונה: Google ממליצה לשלוח את הנתונים לשרת דרך תג Google Analytics בעמוד. התג משתמש בכמה שיטות שליחה, ביניהן image pixel, Fetch API ו-service worker שנטען ב-iframe מהדומיין של השרת. לכן באתר עם Content Security Policy צריך להתיר את כתובת השרת בהנחיות img-src, connect-src ו-frame-src. השנייה: כדי לעבוד בהקשר צד ראשון מלא צריך גם לטעון את הסקריפטים של Google מהתשתית שלכם. זה נושא נפרד שפירטנו במדריך Google tag gateway.

איך בודקים שהשרת מקבל ושולח נתונים?

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

הבדיקה השנייה היא מצב Preview של קונטיינר השרת. בצד שמאל מופיעות הבקשות הנכנסות. אם ה-Client שתפס את הבקשה יצר נתוני אירוע, האירועים מופיעים מתחתיה. בלשונית Request יש שלושה חלקים: Client מראה מי תפס את הבקשה, Incoming HTTP Request מראה את הבקשה המלאה ואמור להתאים למה שרואים בלשונית Network בדפדפן, Outgoing HTTP Requests מראה כל בקשה שתג שלח לספק ואת התשובה שחזרה, כולל קוד הסטטוס. הלשוניות Tags, Variables, Event Data ו-Console משלימות את התמונה: אילו תגים נורו, מה היו ערכי המשתנים, אילו שגיאות נרשמו.

אם בקשות לא מופיעות ב-Preview, התיעוד מפנה לשלוש בדיקות: שהפריסה באמת מקבלת תנועה לפי הלוגים בענן, שה-CDN או ה-load balancer מעביר עוגיות ושיש שרת Preview אחד בלבד. אם בקשות מגיעות אבל אף Client לא תופס אותן, בודקים שהכתובת ב-Container Settings כוללת את הנתיב שהוגדר.

מה צריך לסדר לפני שעולים לפרודקשן?

ההקצאה האוטומטית יוצרת תצורת בדיקה. לפי מדריך ההקמה של Google ל-Cloud Run, המינימום המומלץ לתנועה חיה הוא שני מופעים, כדי לצמצם את הסיכון לאובדן נתונים בזמן תקלה. הדוגמה בתיעוד מגדירה מינימום של 2 ומקסימום של 10 מופעים. את השינוי עושים ב-Cloud Run בפעולה Edit & Deploy New Revision.

עוד שלושה דברים. לוגים: התיעוד מזהיר שרישום בקשות יכול לעלות כסף משמעותי מעל מיליון בקשות בחודש ומסביר איך לכבות אותו ב-Logs Router. עדכונים: שרת התיוג לא מתעדכן לבד. פורסים גרסה חדשה של ה-image באותן הגדרות, לפחות בכל גרסה ראשית, כש-Tag Manager מבקש. התראת חיוב: התיעוד ממליץ להגדיר אחת כדי לא לגלות חריגה בדיעבד.

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

שאלות נפוצות

מה זה קונטיינר שרת ב-Google Tag Manager?

לפי התיעוד של Google, קונטיינר שרת רץ על שרת שבשליטתכם ולא בדפדפן של הגולש. הוא מקבל בקשות מהמכשירים של הגולשים, הופך אותן לאירועים ומפעיל עליהם תגים, טריגרים ומשתנים כמו בקונטיינר רגיל. יוצרים אותו ב-Tag Manager דרך Create Container ובחירה בסוג Server.

מה זה Client ב-Server-Side GTM?

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

למה צריך דומיין צד ראשון לשרת התיוג?

לפי התיעוד של Google, שרת על הדומיין של ספק הענן רץ בהקשר צד שלישי ויכול להגדיר רק עוגיות JavaScript. כדי לקבל את יתרונות האבטחה והעמידות של עוגיות שמוגדרות מהשרת, השרת והאתר חייבים לרוץ על אותו דומיין. Google מגדירה same origin, כלומר נתיב על הדומיין הראשי, כשיטה המומלצת. תת דומיין נותן את אותה גישה לעוגיות בהקמה פשוטה יותר.

מה ההבדל בין same origin לתת דומיין ב-Server-Side GTM?

ב-same origin השרת יושב על נתיב בדומיין של האתר, למשל www.example.com/metrics. זה דורש CDN או load balancer שמנתב את הנתיב לשרת התיוג. בתת דומיין השרת יושב על כתובת כמו metrics.example.com ונדרש רק עדכון רשומות DNS. לפי התיעוד שתי האפשרויות נותנות גישה מלאה ליתרונות של עוגיות מהשרת.

איך מפנים את התגים באתר לקונטיינר השרת?

בפרמטר server_container_url. ב-Google Tag Manager יוצרים משתנה מסוג Google tag: Configuration settings עם הפרמטר הזה, משייכים אותו ל-Google tag ומפעילים את התג בטריגר Initialization - All pages. ב-gtag.js מוסיפים את אותו מפתח לפקודת config עם הכתובת של קונטיינר השרת.

איך בודקים שקונטיינר השרת עובד?

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

מה השורה התחתונה?

הקמה של Server-Side GTM היא לא לחיצה על Automatically provision: הלחיצה הזאת נותנת רק שרת בדיקה על דומיין של ספק הענן. מערך שעובד באמת דורש עוד שלושה דברים: כתובת על הדומיין שלכם, תגים באתר שמופנים אליה ו-Client שתופס את הבקשות. את שלושתם בודקים ב-Preview של קונטיינר השרת לפני שמוסיפים תג אחד של פלטפורמת פרסום. מי שמדלג על שלב הדומיין משלם על שרת ולא מקבל את היתרון של עוגיות שמוגדרות מהשרת. אנחנו מקימים ומתחזקים מערכים כאלה כחלק משירות מדידה מתקדמת, כולל הדומיין, התגים בשרת ו-Consent Mode. אם יש לכם קונטיינר שרת שהוקם ואף אחד לא בטוח מה עובר דרכו, כתבו לנו.

מקורות

דני צ'רניאק
דני צ'רניאק
יועץ אנליטיקה דיגיטלית ומייסד DigiKnowledge. מרצה לאנליטיקה דיגיטלית באוניברסיטת תל אביב, באוניברסיטה הפתוחה ובאוניברסיטת אריאל. לעמוד האישי

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *