ส่งคืน GTM และสิทธิ์ทั้งหมดให้ลูกค้าตอนจบสัญญา ให้ของยังใช้ต่อได้
สรุปสั้น ๆ
GTM ไม่มีปุ่มโอนเจ้าของ container วิธีที่ใช้ได้คือเพิ่มอีเมลองค์กรของลูกค้าเป็น Admin ระดับ account แล้วค่อยถอนสิทธิ์ของ agency พร้อมย้ายสิทธิ์ในระบบที่ผูกกัน ได้แก่ GA4, Google Ads, Meta, TikTok และ server container ที่รันบนบัญชีคลาวด์ของใครก็ตาม จากนั้นหมุน credential ทุกตัวที่เคยฝังไว้ แล้วเฝ้าตัวเลขเจ็ดวันก่อนปิดสิทธิ์ฝั่ง agency
สมมติสัญญาจบวันที่ 31 พอถึงวันที่ 2 ของเดือนถัดมา agency เจ้าใหม่ส่งข้อความหาลูกค้าว่า ‘เข้า GTM ของเว็บไม่ได้ครับ เจ้าของ account เป็นอีเมลของ agency เดิม’ ลูกค้าโทรหา agency เดิม ได้คำตอบว่าจะส่งสิทธิ์ให้ภายในสัปดาห์นี้ ระหว่างนั้น agency เดิมยกเลิกบัตรที่จ่ายค่า server container บน Google Cloud ไปแล้ว ข้อมูลที่ส่งเข้า Meta ผ่าน CAPI หยุดไหล และไม่มีใครรู้ว่าทำไม
เหตุการณ์แบบนี้เกิดได้ทั้งสองฝั่ง แต่ฝั่งที่เสียหายคือลูกค้า เพราะข้อมูลที่ระบบโฆษณาใช้เรียนรู้เป็นสินทรัพย์ของธุรกิจเขา ส่วน agency ก็เสียชื่อได้เท่ากัน บทความ เรื่องส่งมอบ tracking ให้ลูกค้า พูดถึงเอกสารและ SOP ไปแล้ว บทความนี้ลงมือทำจริง คือย้ายอะไร ด้วยวิธีไหน และต้องเช็คอะไรก่อนถอนตัว
รายการของที่ต้องย้าย มีมากกว่าตัว container
ทีมส่วนใหญ่ส่งมอบแค่สิทธิ์เข้า GTM แล้วเข้าใจว่าจบ แต่ container ผูกกับระบบอื่นอีกหลายตัว และแต่ละตัวมีวิธีย้ายสิทธิ์ของมันเอง ตารางนี้คือรายการที่ผมไล่ทุกครั้ง
| ของที่ต้องย้าย | ย้ายอย่างไร | ตรวจด้วยอะไร |
|---|---|---|
| GTM account / container | เพิ่มอีเมลลูกค้าเป็น Admin แล้วค่อยถอนอีเมล agency | ลูกค้าเห็นตัวเองเป็น Admin ใน User management |
| GA4 property | เพิ่มลูกค้าเป็น Administrator ระดับ property แล้วถอน agency | ลูกค้าเพิ่มและลบผู้ใช้เองได้ |
| Google Ads และ conversion action | ถ้า agency เป็นผู้จัดการบัญชี ให้ลูกค้าตัดการเชื่อมต่อผู้จัดการ | บัญชีไม่ขึ้นใน MCC ของ agency |
| Meta pixel และ CAPI | pixel ต้องอยู่ใน Business portfolio ของลูกค้า แล้วสร้าง access token ใหม่ | Events Manager ของลูกค้าเห็น event ต่อเนื่อง |
| TikTok pixel และ Events API | อยู่ใน Business Center ของลูกค้า แล้วสร้าง token ใหม่ | Events Manager ของ TikTok ไม่มี error |
| Server container | สร้างใหม่ใน Google Cloud project ของลูกค้า นำ config เข้า แล้วชี้ DNS ใหม่ | เปรียบเทียบ event ระหว่างตัวเก่าและตัวใหม่ช่วงขนานกัน |
| DNS ของโดเมนที่ใช้กับ tagging server | ลูกค้าถือสิทธิ์ DNS เอง | เปลี่ยนค่าได้โดยไม่ต้องขอ agency |
ตัดสินก่อนว่า container จะอยู่ใน account ของใคร
ถ้า container ของลูกค้าอยู่ใน GTM account ที่ agency สร้างไว้เฉพาะลูกค้ารายนี้ ทางที่ปลอดภัยที่สุดคือเก็บ container เดิมไว้ เพิ่มลูกค้าเป็น Admin ระดับ account แล้วถอนตัวเอง โค้ด GTM-XXXX บนเว็บไม่ต้องแก้ ไม่มีช่วงข้อมูลขาด
แต่ agency จำนวนมากเก็บ container ของหลายลูกค้าไว้ใน account เดียว สิทธิ์ Admin ระดับ account จะเปิดให้ลูกค้ารายนี้เห็น container ของรายอื่นทั้งหมด ทำแบบนั้นไม่ได้ กรณีนี้ต้องให้ลูกค้าสร้าง account ของตัวเอง ใช้ Export Container ออกเป็นไฟล์ JSON แล้ว Import เข้า container ใหม่ จากนั้นเปลี่ยนโค้ด snippet บนเว็บเป็นรหัสใหม่ในรอบ deploy เดียว การเก็บทุกลูกค้าไว้ใน account เดียวเป็นนิสัยที่ผมไม่แนะนำ แยกตั้งแต่แรกจะทำให้วันส่งมอบง่ายกว่ามาก ดู การจัด GTM หลายลูกค้า
ไฟล์ JSON พาแท็ก trigger ตัวแปร และ template ไปด้วย แต่ไม่พาสิทธิ์ผู้ใช้ สภาพแวดล้อม และการเชื่อมต่อกับบัญชีอื่น สามอย่างนั้นต้องตั้งใหม่ด้วยมือ
ลำดับงานภายในสองสัปดาห์
- วันที่ 1 ถึง 2 ทำสำเนา ได้แก่ Export Container ของเวอร์ชันที่ไลฟ์อยู่ จับภาพรายการแท็ก trigger ตัวแปร และจดรายชื่อ conversion ใน GA4 กับ Google Ads
- ให้ลูกค้ายืนยันบัญชี Google ที่ใช้รับสิทธิ์ ควรเป็นอีเมลกลางขององค์กร ไม่ใช่อีเมลส่วนตัวของพนักงานที่ลาออกได้
- เพิ่มสิทธิ์ให้อีเมลนั้นในทุกระบบตามตารางด้านบน ต้องเป็นสิทธิ์ Admin เพราะระดับ Edit เพิ่มหรือถอนผู้ใช้ไม่ได้
- ถ้ามี server container ให้ลูกค้าตั้ง Google Cloud project และบัตรชำระเงินของตัวเอง นำ config เข้า ทดสอบขนานกับตัวเดิมหนึ่งสัปดาห์ แล้วค่อยเปลี่ยน DNS ของ tagging server
- หมุน credential ทุกตัวที่เคยฝังไว้ รายละเอียดอยู่ใน การหมุน credential ของ agency
- ให้ลูกค้ากด Publish เวอร์ชันง่าย ๆ จริงหนึ่งครั้ง เช่นเปลี่ยนชื่อเวอร์ชัน เพื่อพิสูจน์ว่าสิทธิ์ใช้ได้
- เฝ้าจำนวน event เจ็ดวัน เทียบกับช่วงก่อนส่งมอบ แล้วจึงถอนสิทธิ์ฝั่ง agency
ของที่ถูกฝังไว้และค่าใช้จ่ายที่ agency จ่ายอยู่โดยไม่มีใครเห็น
ส่วนที่พลาดบ่อยที่สุดคือสิ่งที่ไม่ได้อยู่ใน GTM เลย token ของ CAPI ที่ใส่เป็นตัวแปร Constant ใน container ค่า API secret ของ GA4 เครื่องที่รับ webhook จาก LINE OA แล้วส่งยอดขายไปแพลตฟอร์มโฆษณา และ server container ที่ค่าเครื่องออกบัตรของ agency ทั้งหมดนี้ค้างอยู่กับ agency หลังสัญญาจบ ถ้าไม่ย้ายหรือเปลี่ยน ลูกค้าจะต้องพึ่งคนที่ไม่มีหน้าที่แล้ว
ข้อความที่ผมส่งเปิดงานส่งมอบทุกครั้งสั้น ๆ แบบนี้:
พี่คะ ก่อนสิ้นเดือนเราจะส่งสิทธิ์ GTM, GA4, Meta และ TikTok ให้อีเมลบริษัทของพี่ รบกวนส่งอีเมลที่ใช้ถาวรมาให้ และถ้าพี่มี Google Cloud project ของบริษัทอยู่แล้ว บอกเรานะคะ จะได้ย้ายเครื่องรับ event ไปอยู่ที่นั่นตั้งแต่ต้นสัปดาห์หน้า
ข้อความนี้ทำให้ลูกค้ารู้ล่วงหน้าว่ามีเรื่องค่าใช้จ่ายและเจ้าของบัญชีที่ต้องตัดสินใจ ไม่มีใครมาตกใจตอนเครื่องดับ
พิสูจน์ว่าส่งคืนสำเร็จ ด้วยการให้ลูกค้าลงมือทำเอง
- ลูกค้าเพิ่มผู้ใช้ใหม่และถอนผู้ใช้ออกจาก GTM, GA4 ได้เอง ไม่ต้องขออนุญาต agency
- ลูกค้ากด Publish ได้จริง และเห็นเวอร์ชันของตัวเองในประวัติ
- Tag Assistant บนหน้าไลฟ์แสดงแท็กชุดเดิมครบ ทดสอบด้วยวิธีใน debug ด้วย GTM Preview
- จำนวน event รายวันของเจ็ดวันหลังย้ายอยู่ในช่วงที่ผันผวนปกติของเจ็ดวันก่อนย้าย
- คนของ agency ลองเข้า container แล้วเห็นว่าไม่มีสิทธิ์ เพื่อยืนยันว่าถอนสิทธิ์สำเร็จ
ผูกเรื่องนี้ไว้ในสัญญาตั้งแต่วันแรก
วิธีที่ทำให้วันส่งมอบเหลือแค่ไม่กี่ขั้นคือสร้างทุกอย่างในบัญชีของลูกค้าตั้งแต่เริ่ม GTM, GA4, pixel และ Google Cloud project ล้วนเป็นของลูกค้า ส่วน agency เป็นผู้ใช้ที่ได้สิทธิ์ตามขอบเขตงาน เมื่อสัญญาจบ สิ่งเดียวที่ต้องทำคือถอนตัวเอง ใส่ข้อตกลงนี้และรายการสินทรัพย์ที่ต้องส่งมอบลงในสัญญา พร้อมวันที่ที่สิทธิ์ของ agency จะถูกปิด
ถ้าอีกฝั่งเป็นคนอ่าน คือคุณเป็นลูกค้าที่กำลังจะเปลี่ยน agency มีบทความที่มองจากด้านคุณใน แผนรับมือเมื่อเลิกกับ agency
สรุป
ก่อนส่งมอบ ให้ตอบคำถามหนึ่งข้อก่อน ถ้า agency หายตัวไปพรุ่งนี้ จะมีสิ่งไหนในระบบของลูกค้าหยุดทำงานบ้าง คำตอบคือรายการที่ต้องย้ายก่อนปิดสิทธิ์ และมักเป็น server container กับ token ที่ฝังไว้ มากกว่าตัว container ที่ทุกคนนึกถึง
- ไล่รายการสินทรัพย์ให้ครบ ไม่หยุดแค่ GTM
- container ที่อยู่ใน account เดียวกับลูกค้ารายอื่นต้อง Export และ Import ใหม่
- ถอนสิทธิ์ agency หลังเฝ้าตัวเลขเจ็ดวัน ไม่ใช่วันที่สัญญาจบ
- ให้ลูกค้าลงมือกด Publish และเพิ่มถอนผู้ใช้เองจริงหนึ่งรอบ
คำถามที่พบบ่อย
ลูกค้าไม่มีอีเมลองค์กร ใช้ Gmail ส่วนตัวรับสิทธิ์ได้ไหม
ได้ แต่เสี่ยงเมื่อเจ้าของอีเมลย้ายงานหรือลืมรหัส ผมแนะนำให้สร้างอีเมลกลางขององค์กร แล้วให้เจ้าของธุรกิจถือรหัสกู้คืนไว้ เพราะสิทธิ์ Admin คือกุญแจของข้อมูลโฆษณาทั้งหมด
Export และ Import container ย้ายอะไรไปได้บ้าง
ไฟล์ JSON พาแท็ก trigger ตัวแปร โฟลเดอร์ และ template ไปให้ แต่ไม่พาสิทธิ์ผู้ใช้ environment และการเชื่อมต่อกับบัญชีโฆษณา ตอน Import เลือกได้ว่าจะรวมหรือเขียนทับรายการที่ชื่อชนกัน ควร Import เข้า workspace ใหม่ก่อนเสมอ
agency ควรเก็บสำเนา container หลังส่งมอบไหม
ไม่ควรเก็บไว้โดยไม่มีข้อตกลง ไฟล์ JSON อาจมี ID และ token ที่เป็นข้อมูลของลูกค้า ให้ระบุในสัญญาว่าจะลบเมื่อไร หรือเก็บไว้ตามระยะที่ตกลงกันเท่านั้น
ขอให้ agency เดิมอยู่ในสิทธิ์อ่านอย่างเดียวช่วงเปลี่ยนมือได้ไหม
ได้ ให้สิทธิ์ระดับ Read ที่ container และจดวันถอนไว้ในปฏิทิน เพราะ GTM ไม่ตั้งวันหมดอายุของสิทธิ์ให้เอง ระยะที่เหมาะคือหนึ่งถึงสองสัปดาห์หลังเฝ้าตัวเลข
agency ใหม่ควรทำอะไรก่อนแตะ container
Export container เก็บเป็นสำเนา แล้วตรวจสุขภาพก่อนแก้ ดูแท็กที่ซ้ำ ตัวแปรที่ไม่ได้ใช้ และเวอร์ชันที่ไม่มีโน้ต จะได้รู้ว่าอะไรเป็นปัญหาเดิมและอะไรเป็นของที่ตัวเองทำพัง
อ่านต่อแบบเจาะลึก
พิสูจน์ผลงานแอดเข้า LINE ให้ลูกค้าเห็นถึงยอดขาย
ดูแลลูกค้าหลายราย แต่ละรายมี LINE OA ของตัวเอง linli แยกโปรเจกต์ แยก Tracking และส่ง Conversion กลับแพลตฟอร์มของแต่ละลูกค้า เริ่มฟรี 14 วัน
ทดลองใช้ฟรี 14 วัน