← กลับไปหน้าบทความ
ขั้นสูง (MarTech)

วางโครง GTM server side ให้รับแคมเปญและหน้า Landing หลายชุดพร้อมกัน

ทีมบรรณาธิการ linli12 ส.ค. 04:51อัปเดต 12 ส.ค. 04:51อ่าน 3 นาที
วางโครง GTM server side ให้รับแคมเปญและหน้า Landing หลายชุดพร้อมกัน
บทความนี้จัดทำเพื่อความรู้ ชื่อธุรกิจ ตัวเลข หรือบทสนทนาที่ไม่มีแหล่งอ้างอิงกำกับเป็นกรณีตัวอย่างเพื่ออธิบายแนวคิด ดูรายละเอียดที่ นโยบายกองบรรณาธิการ

สรุปสั้น ๆ

GTM server side สำหรับ LINE คือการเพิ่มคอนเทนเนอร์ฝั่งเซิร์ฟเวอร์มารับข้อมูลก่อนส่งต่อไปยังปลายทาง ช่วยให้จัดการหลายแคมเปญและหลาย Landing Page ได้เป็นระบบกว่า Client-side อย่างเดียว แต่ต้องมีนักพัฒนาดูแล Endpoint และค่าใช้จ่ายเซิร์ฟเวอร์เพิ่ม ไม่ใช่แค่ติ๊กเปิดใช้งาน

เอเจนซี่แห่งหนึ่งดูแลลูกค้าที่รันแคมเปญพร้อมกันหกชุด แต่ละชุดมี Landing Page แยกและปุ่ม LINE คนละตำแหน่ง พอถึงเวลาสรุปผลกลับพบว่าตัวเลขบางแคมเปญปนกัน บาง Tag ยิงซ้ำสองครั้งเพราะทั้ง Facebook Pixel กับ Google Tag แข่งกันโหลดบนหน้าเดียว ทำให้รายงานที่ส่งลูกค้าไม่น่าเชื่อถือเท่าที่ควร

ปัญหาแบบนี้ไม่ได้เกิดเพราะตั้งค่าใน GTM ผิด แต่เกิดจากข้อจำกัดของโครง Client-side เพียงอย่างเดียว เมื่อจำนวน Tag และ Trigger เพิ่มขึ้นตามจำนวนแคมเปญ ความเสี่ยงที่ Tag จะชนกัน โหลดช้า หรือถูกบล็อกโดยส่วนขยายบางตัวก็เพิ่มตามไปด้วย

บทความนี้จะอธิบายว่า GTM server side ช่วยแก้ปัญหานี้ตรงไหน ควรเริ่มวางโครงยังไงให้รองรับหลายแคมเปญและหลาย Landing Page พร้อมกัน โดยไม่ทำให้ระบบซับซ้อนเกินทีมที่ดูแลจริงจะรับไหว

ทำไมยิ่งมีหลายแคมเปญ ยิ่งพัง Client-side ง่ายขึ้นเรื่อย ๆ

เมื่อธุรกิจมีแค่แคมเปญเดียวและ Landing Page เดียว การตั้ง Tag แบบ Client-side ทั้งหมดมักไม่มีปัญหาอะไร แต่พอเพิ่มเป็นหลายแคมเปญ แต่ละแคมเปญมักมีความต้องการ Tag ต่างกัน เช่น แคมเปญหนึ่งต้องส่ง Conversion ไป Google Ads อีกแคมเปญต้องส่งไป Meta ด้วย ทำให้จำนวน Tag บนหน้าเว็บเพิ่มขึ้นเรื่อย ๆ

ยิ่ง Tag เยอะ ยิ่งมีโอกาสที่ Script บางตัวโหลดไม่ทันหรือถูกบล็อกโดยส่วนขยายในเบราว์เซอร์ของผู้ใช้ ซึ่งกระทบโดยตรงกับความเร็วโหลดหน้าและความครบถ้วนของข้อมูลที่เก็บได้ นอกจากนี้ Tag บางคู่ที่ทำงานคล้ายกันอาจแย่งยิง Event เดียวกันสองครั้ง ทำให้ตัวเลขที่รายงานสูงกว่าความเป็นจริง

ปัญหาอีกชั้นคือการดูแล ถ้าแต่ละแคมเปญมี Landing Page แยกและต้องตั้ง Tag ซ้ำทีละหน้า ความเสี่ยงที่จะลืมตั้งบางหน้าหรือใส่ Trigger ผิดจุดก็สูงขึ้นตามจำนวนหน้าที่ต้องดูแล

ตัวอย่างที่เห็นได้บ่อยคือธุรกิจที่เริ่มจากแคมเปญเดียว ตั้ง Tag ไว้สิบกว่าตัวโดยไม่มีปัญหา แต่พอขยายเป็นห้าแคมเปญพร้อมกัน จำนวน Tag พุ่งขึ้นเป็นสามสิบกว่าตัวในเวลาไม่กี่เดือน โดยไม่มีใครนั่งไล่ตรวจว่า Tag ไหนซ้ำซ้อนกับ Tag ไหนบ้าง ผลคือความเร็วโหลดหน้าเว็บช้าลงเห็นได้ชัด และทีมเริ่มไม่มั่นใจว่าตัวเลข Conversion ที่รายงานให้ลูกค้าแต่ละรายถูกต้องแค่ไหน เพราะไม่มีใครกล้ายืนยันได้เต็มปากอีกต่อไป

GTM server side เปลี่ยนอะไรจากที่เคยทำ

แนวคิดของ GTM server side คือแทนที่ Tag ทั้งหมดจะยิงตรงจากเบราว์เซอร์ของผู้ใช้ไปหาแต่ละปลายทาง ให้มีคอนเทนเนอร์ตัวกลางที่ทำงานบนเซิร์ฟเวอร์คอยรับข้อมูลก่อน แล้วค่อยกระจายส่งต่อไปยังปลายทางต่าง ๆ จากฝั่งเซิร์ฟเวอร์อีกที

ข้อดีของโครงนี้คือ หน้าเว็บของผู้ใช้ไม่ต้องแบกรับ Script จากหลายปลายทางพร้อมกัน ลดความเสี่ยงที่ Tag จะชนกันหรือถูกบล็อก และทำให้การจัดการ Logic ที่ซับซ้อน เช่น จะส่ง Event ไหนไปแคมเปญไหน ทำได้จากจุดเดียวบนเซิร์ฟเวอร์แทนที่จะกระจายอยู่ในโค้ดหลายหน้า

แต่ต้องเข้าใจให้ตรงว่านี่ไม่ใช่การแทนที่ Client-side ทั้งหมด หน้าเว็บยังต้องมีการ push dataLayer หรือส่งข้อมูลเบื้องต้นเข้ามาเหมือนเดิม เพียงแต่ปลายทางที่รับข้อมูลนั้นเปลี่ยนจากหลายปลายทางกระจัดกระจาย มาเป็นจุดศูนย์กลางเดียวก่อน

อีกประโยชน์ที่มักถูกมองข้ามคือเรื่องความเร็วโหลดหน้าเว็บ เพราะเมื่อ Script จากหลายปลายทางไม่ต้องโหลดพร้อมกันบนเบราว์เซอร์ของผู้ใช้ หน้าเว็บจะเบาลงและโหลดเร็วขึ้น ซึ่งส่งผลทางอ้อมต่ออัตราการอยู่ต่อของผู้ใช้ด้วย โดยเฉพาะบนมือถือที่คนไทยส่วนใหญ่ใช้เข้าเว็บก่อนกดปุ่ม LINE

วางโครงยังไงให้รองรับหลายแคมเปญโดยไม่ต้องตั้งซ้ำทุกหน้า

  1. กำหนดชื่อ Event มาตรฐานที่ใช้ร่วมกันทุกแคมเปญ เช่น line_click, add_friend_intent แทนที่แต่ละแคมเปญจะตั้งชื่อเอง เพื่อให้เซิร์ฟเวอร์ตัวกลางจัดการ Logic เดียวกันได้
  2. ใส่พารามิเตอร์ campaign_id หรือ utm_campaign ติดไปกับทุก Event ตั้งแต่ต้นทาง เพื่อให้คอนเทนเนอร์ฝั่งเซิร์ฟเวอร์แยกได้ว่า Event นี้มาจากแคมเปญไหน
  3. ตั้งกฎการกระจาย Event ที่จุดเดียวบนเซิร์ฟเวอร์ เช่น ถ้า campaign_id ขึ้นต้นด้วยกลุ่ม A ให้ส่งต่อไปยังปลายทางชุดหนึ่ง กลุ่ม B ส่งไปอีกชุด แทนที่จะไปตั้งเงื่อนไขซ้ำในแต่ละหน้า
  4. ทำ Landing Page Template ที่ฝัง Script การ push Event มาตรฐานไว้ตั้งแต่ต้น เพื่อให้ทุกหน้าที่สร้างใหม่ไม่ต้องเขียน Logic ใหม่ทุกครั้ง
  5. ทดสอบทีละแคมเปญก่อน Launch จริง โดยเช็คว่า Event ที่ส่งมาจากแต่ละแคมเปญถูกกระจายไปยังปลายทางที่ถูกต้อง ไม่ปนกับแคมเปญอื่น

เทียบให้เห็นภาพ Client-side ล้วน กับผสม Server-side

เพื่อให้ตัดสินใจง่ายขึ้นว่าธุรกิจของคุณถึงจุดที่ควรผสม Server-side หรือยัง ลองดูตารางเปรียบเทียบสถานการณ์ที่พบบ่อยนี้:

สถานการณ์Client-side ล้วนผสม Server-side
1-2 แคมเปญ, 1 Landing Pageจัดการง่าย เพียงพอสำหรับความซับซ้อนระดับนี้อาจเกินความจำเป็น เพิ่มต้นทุนดูแลโดยไม่จำเป็น
5+ แคมเปญ หลาย Landing Page พร้อมกันเสี่ยง Tag ชนกัน ข้อมูลปน ดูแลยากขึ้นเรื่อย ๆรวม Logic ไว้จุดเดียว ลดความเสี่ยงข้อมูลปนระหว่างแคมเปญ
ต้องส่งข้อมูลไปหลายปลายทางที่มีเงื่อนไขต่างกันต้องเขียนเงื่อนไขซ้ำในแต่ละหน้า เสี่ยงพลาดตั้งกฎกระจายที่จุดเดียว จัดการรวมศูนย์ได้

อีกเรื่องที่ทีมมักมองข้ามตอนย้ายไป Server-side คือลำดับการยิง Tag ไม่ได้หายไปไหน เพียงแต่ย้ายจุดควบคุมจากเบราว์เซอร์มาอยู่บนเซิร์ฟเวอร์แทน ถ้าฝั่ง Client ยังส่ง dataLayer แบบไม่มีลำดับชัดเจน เช่น Event ปุ่ม LINE ถูก push ก่อน Event หน้าโหลดเสร็จ คอนเทนเนอร์ฝั่งเซิร์ฟเวอร์ก็จะประมวลผลข้อมูลผิดลำดับตามไปด้วย ไม่ใช่ว่าย้ายมา Server-side แล้วปัญหาลำดับการยิงจะหายไปเอง

เรื่อง Consent ก็สำคัญไม่แพ้กัน เพราะเมื่อรวมศูนย์ข้อมูลไว้ที่เซิร์ฟเวอร์ตัวกลาง สถานะ Consent ของผู้ใช้ที่กดยอมรับหรือปฏิเสธคุกกี้ต้องถูกส่งติดไปกับทุก Event ตั้งแต่ต้นทาง ไม่ใช่แค่ตั้งค่าไว้ที่ Client-side อย่างเดียว เพราะถ้าเซิร์ฟเวอร์ตัวกลางส่งข้อมูลต่อไปยังปลายทางโดยไม่เช็คสถานะ Consent ก่อน อาจกลายเป็นการส่งข้อมูลของผู้ใช้ที่ปฏิเสธการติดตามไปโดยไม่ตั้งใจ ซึ่งเป็นความเสี่ยงที่ต้องระวังมากกว่าตอนทำ Client-side อย่างเดียว เพราะจุดรวมศูนย์ทำให้ผลกระทบกว้างกว่าถ้าตั้งค่าผิด

แนวทางที่ปลอดภัยกว่าคือกำหนด Consent State เป็นพารามิเตอร์มาตรฐานที่ติดไปกับทุก Event เหมือนกับ campaign_id แล้วให้คอนเทนเนอร์ฝั่งเซิร์ฟเวอร์เช็คสถานะนี้ก่อนตัดสินใจว่าจะส่งต่อไปยังปลายทางไหนบ้าง แทนที่จะปล่อยให้แต่ละ Tag ปลายทางไปเช็คเอง เพราะถ้าให้แต่ละปลายทางเช็คเอง ความเสี่ยงที่บาง Tag จะลืมเช็คก็ยังมีอยู่เหมือนเดิม

สิ่งที่ Server-side ไม่ได้ช่วยแก้ให้อัตโนมัติ

  • ไม่ได้ทำให้ข้อมูลแม่นขึ้นร้อยเปอร์เซ็นต์ ถ้าต้นทางยังไม่ push dataLayer ถูกต้องตั้งแต่แรก เซิร์ฟเวอร์ก็ไม่มีอะไรให้ประมวลผลอยู่ดี
  • ไม่ได้ลดภาระการดูแลลงเสมอไป เพราะต้องมีคนดูแล Endpoint, Credential และค่าใช้จ่ายเซิร์ฟเวอร์ที่เพิ่มขึ้นมาใหม่
  • ไม่ได้แก้ปัญหาการนิยาม Event ที่ไม่สม่ำเสมอ ถ้าแต่ละแคมเปญยังตั้งชื่อ Event ไม่ตรงกัน ฝั่งเซิร์ฟเวอร์ก็ยังต้องมา Mapping เพิ่มอยู่ดี
  • ไม่ได้แปลว่าไม่ต้องทดสอบผ่าน GTM Previewอีกต่อไป ยังต้องตรวจสอบทุกครั้งที่เพิ่มแคมเปญหรือหน้าใหม่เหมือนเดิม

ทีมแบบไหนที่พร้อมทำ Server-side จริง ๆ

ก่อนตัดสินใจลงทุนทำ GTM server side ควรถามตัวเองก่อนว่าทีมมีนักพัฒนาที่ดูแล Endpoint ต่อเนื่องได้ไหม เพราะคอนเทนเนอร์ฝั่งเซิร์ฟเวอร์ไม่ใช่ของที่ตั้งครั้งเดียวจบ ต้องมีคนคอยดูแลเมื่อปลายทางเปลี่ยน API หรือเมื่อมีข้อผิดพลาดในการส่งข้อมูล

สำหรับธุรกิจขนาดเล็กที่มีแคมเปญไม่กี่ชุดและ Landing Page ไม่เยอะ การเริ่มจาก Client-side ที่วางโครงสร้าง dataLayer ให้ดีตั้งแต่ต้นอาจเพียงพอแล้ว ยังไม่จำเป็นต้องรีบผสม Server-side ทันที เพราะต้นทุนดูแลที่เพิ่มขึ้นอาจไม่คุ้มกับปริมาณข้อมูลที่มี

ส่วนเอเจนซี่ที่ดูแลลูกค้าหลายราย หรือธุรกิจที่รันแคมเปญพร้อมกันจำนวนมากเป็นประจำ นี่คือจุดที่ Server-side เริ่มคุ้มค่า เพราะช่วยลดเวลาตั้งค่าซ้ำและลดความเสี่ยงข้อมูลปนกันระหว่างลูกค้าหรือแคมเปญ ซึ่งเป็นปัญหาที่กระทบความน่าเชื่อถือของรายงานโดยตรง

แผนเริ่มต้นแบบไม่ต้องทุบของเดิมทิ้งทั้งหมด

ไม่จำเป็นต้องย้ายทุก Tag ไปฝั่ง Server-side พร้อมกันทีเดียว วิธีที่ปลอดภัยกว่าคือเริ่มจากแคมเปญที่มีปัญหาข้อมูลปนมากที่สุดก่อน ทดสอบให้มั่นใจว่าคอนเทนเนอร์ใหม่ทำงานถูกต้อง แล้วค่อยขยายไปแคมเปญอื่นทีละชุด

ระหว่างช่วงเปลี่ยนผ่าน ควรรัน Client-side เดิมคู่กับ Server-side ใหม่สักระยะ เพื่อเทียบตัวเลขว่าตรงกันหรือไม่ ก่อนจะปิด Tag เดิมทิ้งจริง เพราะการปิดเร็วเกินไปโดยยังไม่แน่ใจ อาจทำให้ข้อมูลขาดช่วงในรายงานได้

สรุป

GTM server side ไม่ใช่ของวิเศษที่แก้ทุกปัญหาการวัดผล แต่เป็นเครื่องมือที่เหมาะกับธุรกิจที่โตถึงจุดที่ต้องจัดการหลายแคมเปญและหลาย Landing Page พร้อมกัน โดยไม่อยากให้ Tag ชนกันหรือข้อมูลปนกันแบบที่เจอบ่อยใน Client-side ล้วน

ก่อนลงทุนทำ ควรประเมินความพร้อมของทีมและปริมาณแคมเปญจริงก่อน ถ้ายังมีไม่กี่ชุด การวางโครง dataLayer ให้แน่นบน Client-side อาจเพียงพอแล้ว แต่ถ้าถึงจุดที่ดูแลยากขึ้นเรื่อย ๆ นี่คือทางเลือกที่ช่วยรวมศูนย์การจัดการให้เป็นระบบกว่าเดิม

  • ยิ่งมีหลายแคมเปญ ยิ่งเสี่ยง Tag ชนกันและข้อมูลปนกันบน Client-side ล้วน
  • Server-side ช่วยรวม Logic การกระจาย Event ไว้จุดเดียวบนเซิร์ฟเวอร์
  • ต้องมีทีมพัฒนาดูแล Endpoint ต่อเนื่อง ไม่ใช่ตั้งครั้งเดียวจบ
  • เริ่มจากแคมเปญที่มีปัญหามากที่สุดก่อน แล้วค่อยขยายทีละชุด

คำถามที่พบบ่อย

GTM server side ต้องเสียค่าใช้จ่ายเพิ่มไหม

ส่วนใหญ่ต้องมีค่าใช้จ่ายเซิร์ฟเวอร์สำหรับรันคอนเทนเนอร์ฝั่ง Server เพิ่มเติม นอกเหนือจากค่าใช้จ่ายเดิมของการดูแลเว็บไซต์ ควรประเมินค่าใช้จ่ายนี้เทียบกับประโยชน์ที่ได้ก่อนตัดสินใจ

ต้องมีนักพัฒนาโดยเฉพาะไหมถึงจะทำ Server-side ได้

ควรมีคนที่เข้าใจการตั้งค่าเซิร์ฟเวอร์และ API พอสมควร เพราะการตั้งค่าและดูแล Endpoint ซับซ้อนกว่าการตั้ง Tag แบบ Client-side ทั่วไป หากไม่มีทีมพัฒนาต่อเนื่อง อาจพิจารณาทำ Client-side ให้แน่นก่อน

ถ้ามีแคมเปญแค่ 1-2 ชุด จำเป็นต้องทำ Server-side ไหม

ไม่จำเป็น สำหรับความซับซ้อนระดับนี้ Client-side ที่วางโครง dataLayer ดีมักเพียงพอแล้ว การทำ Server-side ตั้งแต่ยังไม่ถึงจุดที่จำเป็นอาจเพิ่มต้นทุนดูแลโดยไม่คุ้มค่า

Server-side ช่วยแก้ปัญหา Ad blocker ได้ทั้งหมดไหม

ช่วยลดผลกระทบได้ในระดับหนึ่ง เพราะข้อมูลไม่ต้องผ่าน Script หลายตัวบนเบราว์เซอร์ผู้ใช้โดยตรง แต่ไม่ได้แปลว่าจะไม่มีข้อมูลสูญหายเลย เพราะจุดเริ่มต้นของข้อมูลยังต้องมาจาก Client-side อยู่ดี

ควรย้ายทุก Tag ไป Server-side พร้อมกันเลยไหม

ไม่แนะนำ ควรเริ่มจากแคมเปญที่มีปัญหามากที่สุดก่อน แล้วรันคู่กับระบบเดิมสักระยะเพื่อเทียบตัวเลข ก่อนจะขยายไปแคมเปญอื่นและปิดระบบเดิมทิ้ง

ข้อมูลที่ผ่าน Server-side จะแม่นยำร้อยเปอร์เซ็นต์ไหม

ไม่มีระบบใดที่แม่นยำร้อยเปอร์เซ็นต์ Server-side ช่วยลดความเสี่ยงจากบางปัจจัย เช่น Ad blocker และ Tag ชนกัน แต่ยังมีข้อจำกัดอื่นอยู่ เช่น ความครบถ้วนของข้อมูลต้นทางและพฤติกรรมผู้ใช้ที่ควบคุมไม่ได้ทั้งหมด

วัด Conversion LINE ทุกแบรนด์ รวมศูนย์ที่เดียว

องค์กรที่มีหลายแบรนด์ หลายสาขา หลาย LINE OA — linli รวม Tracking และส่ง Conversion กลับทุกแพลตฟอร์ม พร้อม Custom Limit เริ่มฟรี 14 วัน

ติดต่อทีม Sales

บทความที่เกี่ยวข้อง

ลูกค้ากดโทรก่อนแล้วค่อยเพิ่มเพื่อน LINE จะตามยังไงว่ามาจากแอดไหน

ลูกค้ากดโทรก่อนแล้วค่อยเพิ่มเพื่อน LINE จะตามยังไงว่ามาจากแอดไหน

ธุรกิจบริการหลายเจ้ามีทั้งปุ่มโทรและปุ่ม LINE คู่กัน ลูกค้าบางคนโทรถามก่อนแล้วค่อยขอเพิ่มเพื่อนทีหลัง บทความนี้อธิบายว่า GTM ช่วยตาม Journey แบบนี้ได้แค่ไหน และข้อจำกัดที่ต้องยอมรับ
จัดระเบียบ Tracking Plan LINE ด้วย GTM ก่อนเว็บเปลี่ยนบ่อยจนตามไม่ทัน

จัดระเบียบ Tracking Plan LINE ด้วย GTM ก่อนเว็บเปลี่ยนบ่อยจนตามไม่ทัน

หลายธุรกิจตั้ง Tag ใน GTM แบบนึกอะไรได้ก็เพิ่มไปเรื่อย ๆ พอเว็บเปลี่ยนหรือแคมเปญเพิ่มขึ้น ระบบก็เริ่มพังทีละจุด บทความนี้พาวาง Tracking Plan LINE ให้เป็นระบบ อ่านและดูแลต่อได้ในระยะยาว
ใช้ Exploration Funnel ใน GA4 ดูจุดที่ข้อมูลหายระหว่างเว็บกับ LINE

ใช้ Exploration Funnel ใน GA4 ดูจุดที่ข้อมูลหายระหว่างเว็บกับ LINE

Funnel Exploration ใน GA4 ช่วยเห็นว่าคนหลุดตรงไหนระหว่างเข้าเว็บจนถึงกด LINE แต่ถ้าตั้ง Step ผิดจะเห็นภาพลวง บทความนี้สอนตั้ง Funnel ให้สะท้อนความจริงและอ่านผลให้ถูก