ตั้งค่าการติดแท็กฝั่งเซิร์ฟเวอร์ด้วย App Engine

คู่มือนี้จะอธิบายวิธี

  • จัดสรรเซิร์ฟเวอร์การติดแท็กใน App Engine ของ Google Cloud Platform (GCP)
  • อัปเกรดเซิร์ฟเวอร์การติดแท็กเพื่อจัดการการเข้าชมแบบสด
  • เพิ่มหรือลดจำนวนเซิร์ฟเวอร์ที่ใช้งานคอนเทนเนอร์ Google Tag Manager
  • อัปเดตเวอร์ชันของเซิร์ฟเวอร์การติดแท็กให้เป็นปัจจุบันเสมอหลังจากจัดสรรเซิร์ฟเวอร์

ข้อกำหนดเบื้องต้น

  1. คุณต้องมีบัญชี GCP หากยังไม่มีบัญชี ให้สร้างบัญชี GCP ใหม่
  2. คุณต้องมีบัญชีสำหรับการเรียกเก็บเงิน GCP หากยังไม่มี ให้สร้างบัญชีสำหรับการเรียกเก็บเงิน GCP (ต้องมีบทบาทผู้สร้างบัญชีสำหรับการเรียกเก็บเงิน)
  3. คุณต้องมีบทบาทผู้สร้างโปรเจ็กต์และบทบาทผู้ใช้บัญชีสำหรับการเรียกเก็บเงิน ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มบทบาท

1. จัดสรรเซิร์ฟเวอร์

หากต้องการสร้างเซิร์ฟเวอร์การติดแท็กใหม่บนอินสแตนซ์ App Engine คุณต้องทำดังนี้

  • สร้างคอนเทนเนอร์เซิร์ฟเวอร์ใหม่ใน Tag Manager
  • สร้างโปรเจ็กต์ Google Cloud (GCP) ใหม่
  • จัดสรรเซิร์ฟเวอร์การติดแท็ก App Engine ใหม่
  • เพิ่ม URL ของเซิร์ฟเวอร์การติดแท็กใหม่ลงในคอนเทนเนอร์เซิร์ฟเวอร์ Tag Manager

สร้างคอนเทนเนอร์เซิร์ฟเวอร์ของ Google Tag Manager

  1. เปิด Google Tag Manager

  2. ในแถวบัญชี ให้คลิกเมนูรายการเพิ่มเติม > สร้างคอนเทนเนอร์

  3. สร้างคอนเทนเนอร์เซิร์ฟเวอร์ใหม่

  4. คลิกปุ่มตัวเลือก "จัดสรรเซิร์ฟเวอร์การติดแท็กด้วยตนเอง" โปรดสังเกตการกำหนดค่าคอนเทนเนอร์ เพราะคุณต้องใช้ข้อมูลนี้เพื่อจัดสรรเซิร์ฟเวอร์

สร้างโปรเจ็กต์ GCP ใหม่

วิธีสร้างโปรเจ็กต์ GCP ใหม่สำหรับเซิร์ฟเวอร์การติดแท็ก

  1. เปิดคอนโซล Google Cloud

  2. สร้างโปรเจ็กต์ GCP ใหม่

  3. ตั้งชื่อโปรเจ็กต์ เราขอแนะนำให้ใช้รหัสคอนเทนเนอร์เพื่อความสะดวก ชื่อนี้จะใช้ภายใน GCP เท่านั้น

  4. โปรดจดรหัสโปรเจ็กต์ GCP เนื่องจากคุณจะต้องใช้ในการสร้างเซิร์ฟเวอร์การติดแท็ก

จัดสรรเซิร์ฟเวอร์การติดแท็กใหม่

วิธีสร้างเซิร์ฟเวอร์การติดแท็ก

  1. เปิด Cloud Shell

  2. ตั้งค่าโปรเจ็กต์ GCP ใน Cloud Shell แทนที่ project ID ด้วยรหัสโปรเจ็กต์ GCP ที่คุณระบุไว้ก่อนหน้านี้

    gcloud config set project project ID
    
  3. สร้างเซิร์ฟเวอร์การติดแท็กโดยทำตามสคริปต์ Shell ตั้งค่าประเภทการทำให้ใช้งานได้เป็น testing

    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    

เพิ่ม URL ของเซิร์ฟเวอร์การติดแท็กลงใน Tag Manager

  1. เปิด Google Tag Manager

  2. ในส่วนผู้ดูแลระบบ > การตั้งค่าคอนเทนเนอร์ คลิกเพิ่ม URL หากไม่ทราบ URL ของเซิร์ฟเวอร์ ให้เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell

    gcloud app browse
    

    ผลลัพธ์: คุณได้ตั้งค่าเซิร์ฟเวอร์การติดแท็กและจัดสรรด้วยการกำหนดค่า testing แล้ว ตอนนี้คุณทดสอบการติดแท็กฝั่งเซิร์ฟเวอร์ได้แล้ว

การกำหนดค่าเซิร์ฟเวอร์เริ่มต้น (testing)

การกำหนดค่าการทดสอบเหมาะสำหรับการสำรวจผลิตภัณฑ์โดยส่งการเข้าชมทดสอบจำนวนเล็กน้อยและใช้ฟีเจอร์แสดงตัวอย่างใน Tag Manager การกำหนดค่านี้เป็นคลาสอินสแตนซ์ F1 ของ App Engine ในสภาพแวดล้อมมาตรฐาน และในกรณีส่วนใหญ่ คุณจะไม่ต้องเสียค่าใช้จ่ายใดๆ

2. การใช้ App Engine ในเวอร์ชันที่ใช้งานจริง

ในการกำหนดค่า production แต่ละเซิร์ฟเวอร์มีค่าใช้จ่ายประมาณ $40 / เดือน (USD) แต่ละเซิร์ฟเวอร์เป็นอินสแตนซ์ App Engine ที่มี vCPU 1 รายการ หน่วยความจำ 0.5 GB ดิสก์ 10 GB ในสภาพแวดล้อมที่ยืดหยุ่น

โปรดดูการจัดการค่าใช้จ่ายของ App Engine เพื่อทำความเข้าใจการเรียกเก็บเงินของ App Engine และวิธีกำหนดค่าการแจ้งเตือนการเรียกเก็บเงิน เราขอแนะนำอย่างยิ่งให้ตั้งค่าการแจ้งเตือนการเรียกเก็บเงิน

เราขอแนะนำให้ใช้เซิร์ฟเวอร์อย่างน้อย 3 เครื่องเพื่อลดความเสี่ยงที่ข้อมูลจะสูญหายในกรณีที่เซิร์ฟเวอร์หยุดทำงาน แต่คุณอาจเลือกใช้เซิร์ฟเวอร์จำนวนน้อยลง (หรือมากกว่า) ก็ได้ เราคาดว่าการปรับขนาดเซิร์ฟเวอร์อัตโนมัติ 3-6 เซิร์ฟเวอร์ (ค่าเริ่มต้น) จะรองรับคำขอ 50-200 รายการต่อวินาทีได้ ประสิทธิภาพจะขึ้นอยู่กับจำนวนแท็กและการทำงานของแท็กเหล่านั้น

วิธีกำหนดค่าเซิร์ฟเวอร์การติดแท็ก

  1. เปิด Cloud Shell ของ Google Cloud Platform
  2. ตั้งค่าโปรเจ็กต์ Cloud Platform ใน Cloud Shell แทนที่ project ID ด้วยรหัสโปรเจ็กต์ GCP ที่คุณระบุไว้ก่อนหน้านี้
    gcloud config set project project ID
  3. หากต้องการกำหนดค่าเซิร์ฟเวอร์การติดแท็กสำหรับสภาพแวดล้อมการใช้งานจริงอีกครั้ง ให้เรียกใช้สคริปต์การตั้งค่าด้านล่าง ทำงานต่อไปนี้
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"
    1. เปลี่ยนประเภทการทำให้ใช้งานได้เป็น production
    2. ตั้งค่าเซิร์ฟเวอร์เพิ่มเติมเพื่อให้บริการการรับส่งข้อมูลที่ใช้งานจริง โดยเราแนะนำให้ใช้เซิร์ฟเวอร์อย่างน้อย 3 เครื่อง

ไม่บังคับ: ปิดใช้การบันทึก

ขอบันทึก

โดยค่าเริ่มต้น App Engine จะบันทึกข้อมูลเกี่ยวกับทุกคำขอ (เช่น เส้นทางคำขอ พารามิเตอร์การค้นหา ฯลฯ) ที่ได้รับ หากเซิร์ฟเวอร์การติดแท็กของคุณจัดการคำขอจำนวนมากต่อเดือน (เช่น มากกว่า 1 ล้านรายการ) ข้อความบันทึกเหล่านั้นอาจทำให้เกิดค่าใช้จ่ายในการบันทึกจำนวนมาก หากต้องการลดหรือกำจัดค่าใช้จ่ายในการบันทึก เราขอแนะนำให้ปิดใช้การบันทึกคำขอของ App Engine

หากต้องการปิดใช้การบันทึกคำขอของ App Engine ให้ทำดังนี้

  1. ใน Google Cloud Platform ให้เปิดเราเตอร์ของบันทึก ตรวจสอบว่าคุณอยู่ในโปรเจ็กต์ที่ตรงกับรหัสคอนเทนเนอร์:
    ภาพหน้าจอของตัวเลือกโปรเจ็กต์ GCP ตัวอย่างรหัสคอนเทนเนอร์
Tag Manager
  2. สำหรับประเภท: ที่เก็บข้อมูล Cloud Logging บรรทัดชื่อ: _Default ให้เลือกเมนูรายการเพิ่มเติม แล้วคลิกแก้ไขซิงก์
  3. ในส่วนปลายทางของซิงก์ ให้เลือกที่เก็บข้อมูลบันทึก _Default
  4. เพิ่มบรรทัดใหม่ในส่วน เลือกบันทึกที่จะรวมไว้ในซิงก์ ป้อนกฎต่อไปนี้ลงในตัวกรองการรวมที่มีอยู่

    NOT LOG_ID("appengine.googleapis.com/nginx.request") AND NOT
    LOG_ID("appengine.googleapis.com/request_log")
    
  5. หากต้องการปิดใช้การบันทึกจากตัวจัดสรรภาระงาน ให้เพิ่มบรรทัดใหม่และป้อนกฎต่อไปนี้ลงในตัวกรองการรวมที่มีอยู่

    NOT LOG_ID("requests")
    
  6. ซิงก์การอัปเดตเพื่อใช้การเปลี่ยนแปลง ตอนนี้คำขอ App Engine จะถูกยกเว้นจากการบันทึก

  7. ตรวจสอบว่าไม่มีคำขอใหม่ปรากฏในบันทึกของ Logs Explorer

การบันทึกคอนโซล

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

ระบุบันทึกของคอนโซลที่ไม่ต้องการดังนี้

  1. เปิด Logs Explorer ใน GCP
  2. มองหาข้อความบันทึกที่ไม่ต้องการซึ่งมาจากแท็กของคุณ เช่น

    แท็กอาจส่งบันทึกต่อไปนี้

    const logToConsole = require('logToConsole');
    
    logToConsole('Custom message: ' + data.param1);
    logToConsole('An important message to keep around!');
    data.gtmOnSuccess()
    

    มองหาข้อความบันทึกที่เกี่ยวข้องในช่อง textPayload
    ภาพหน้าจอของ GCP Logging Explorer
ที่แสดงตัวอย่างบันทึก

หากต้องการปิดใช้ข้อความบันทึกของคอนโซล ให้ทำดังนี้

  1. ใน Google Cloud Platform ให้เปิดเราเตอร์ของบันทึก ตรวจสอบว่าคุณอยู่ในโปรเจ็กต์ที่ตรงกับรหัสคอนเทนเนอร์:
    ภาพหน้าจอของตัวเลือกโปรเจ็กต์ GCP ตัวอย่างรหัสคอนเทนเนอร์
Tag Manager
  2. สำหรับประเภท: ที่เก็บข้อมูล Cloud Logging บรรทัดชื่อ: _Default ให้เลือกเมนูรายการเพิ่มเติม แล้วคลิกแก้ไขซิงก์
  3. ในส่วนปลายทางของซิงก์ ให้เลือกที่เก็บข้อมูลบันทึก _Default
  4. เพิ่มบรรทัดใหม่ในส่วน เลือกบันทึกที่จะรวมไว้ในซิงก์ ป้อนกฎต่อไปนี้ลงในตัวกรองการรวมที่มีอยู่

    NOT textPayload:"Custom message:"
    

    สำหรับบันทึกของคอนโซล ให้แทนที่ข้อความ Custom message: ด้วยสตริงย่อยจากบันทึกของคอนโซลที่คุณต้องการปิดใช้ หากต้องการตัวกรองที่ละเอียดขึ้น ให้ใช้ภาษาการค้นหาการบันทึก

  5. ซิงก์การอัปเดตเพื่อใช้การเปลี่ยนแปลง ข้อความ logToConsole ที่ตรงกันควรไม่รวมอยู่ในการบันทึก

  6. ตรวจสอบว่าไม่มีข้อความบันทึกของคอนโซลใหม่ปรากฏใน Logs Explorer

3. แมปการทำให้ใช้งานได้กับโดเมนที่กำหนดเอง

การติดตั้งใช้งานการติดแท็กฝั่งเซิร์ฟเวอร์เริ่มต้นจะโฮสต์อยู่บนโดเมน App Engine เราขอแนะนำให้คุณแก้ไขการทำให้ใช้งานได้ให้ใช้โดเมนย่อยของเว็บไซต์

แมปโดเมนย่อยของเว็บไซต์กับเซิร์ฟเวอร์การติดแท็ก

4. เพิ่ม URL ของเซิร์ฟเวอร์ลงใน Google Tag Manager

เมื่อมีเซิร์ฟเวอร์แล้ว คุณจะต้องตรวจสอบว่า Google Tag Manager รู้ว่าควรใช้เซิร์ฟเวอร์ของคุณ

  1. เปิด Google Tag Manager

  2. คลิกคอนเทนเนอร์เซิร์ฟเวอร์ที่ต้องการชี้ไปที่เซิร์ฟเวอร์การติดแท็ก

  3. เปิดการตั้งค่าคอนเทนเนอร์เซิร์ฟเวอร์ในแท็บผู้ดูแลระบบ > การตั้งค่าคอนเทนเนอร์

  4. คลิกเพิ่ม URL แล้ววาง URL ของเซิร์ฟเวอร์

  5. บันทึกและกลับไปยังพื้นที่ทํางาน

5. การตรวจสอบความถูกต้อง

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

การดูตัวอย่าง URL หลายรายการ

หากคุณแมปหลายโดเมนกับเซิร์ฟเวอร์การติดแท็กเดียว โปรดตรวจสอบว่าได้เพิ่ม URL แต่ละรายการลงในการตั้งค่าคอนเทนเนอร์

หากคุณระบุ URL หลายรายการ เส้นทางทั้งหมด (สตริงหลังชื่อโดเมน) ต้องตรงกัน

ผลงาน ไม่ทำงาน
URL 1: example.com/abc
URL 2: example2.com/abc
URL 1: example.com/abc
URL 2: example2.com/def

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

อัปเดตเวอร์ชันของเซิร์ฟเวอร์การติดแท็ก

การอัปเดตเซิร์ฟเวอร์การติดแท็กใหม่มีการแก้ไขช่องโหว่ด้านความปลอดภัยและฟีเจอร์ใหม่ๆ อย่างน้อยเราขอแนะนำให้อัปเดตเซิร์ฟเวอร์การติดแท็กของคุณสำหรับการเผยแพร่เวอร์ชันหลักแต่ละเวอร์ชัน (เช่น อัปเกรดจากเวอร์ชัน 1.x.x เป็น 2.x.x) เมื่อ Tag Manager แจ้งเตือนให้คุณอัปเดต

หากต้องการอัปเดตเซิร์ฟเวอร์การติดแท็ก ให้เรียกใช้สคริปต์การตั้งค่าอีกครั้งโดยใช้การตั้งค่าเดียวกับที่คุณใช้ก่อนหน้านี้ ระบบจะกำหนดการตั้งค่าที่มีอยู่โดยค่าเริ่มต้น

วิธีอัปเดตเซิร์ฟเวอร์การติดแท็ก

  1. เปิด Cloud Shell ของ Google Cloud Platform
  2. ตั้งค่าโปรเจ็กต์ Cloud Platform ใน Cloud Shell แทนที่ project ID ด้วยรหัสโปรเจ็กต์ GCP ที่คุณระบุไว้ก่อนหน้านี้
    gcloud config set project project ID
  3. เรียกใช้สคริปต์การตั้งค่าโดยใช้การตั้งค่าเดียวกับที่คุณใช้ก่อนหน้านี้ ระบบจะกำหนดการตั้งค่าที่มีอยู่โดยค่าเริ่มต้น
    bash -c "$(curl -fsSL https://googletagmanager.com/static/serverjs/setup.sh)"

วิธียืนยันว่าการอัปเดตเสร็จสมบูรณ์แล้ว

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

เครื่องจัดการแท็กอาจแสดงข้อความที่ขอให้คุณอัปเดตเซิร์ฟเวอร์การติดแท็กภายใน 1 วันหลังจากที่อัปเดตเซิร์ฟเวอร์เสร็จเรียบร้อยแล้ว อย่างไรก็ตาม หน้าตัวอย่างจะแสดงข้อความที่อัปเดตล่าสุดเกี่ยวกับเวอร์ชันของเซิร์ฟเวอร์การติดแท็ก

แก้ปัญหาระยะหมดเวลาของการติดตั้งใช้งานเวอร์ชันที่ใช้งานจริง

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

  1. บัญชีบริการมีสิทธิ์ที่ไม่ถูกต้อง - บัญชีบริการ Compute Engine และ App Engine มีหน้าที่รับผิดชอบในการทำให้ใช้งานได้และบำรุงรักษาการติดตั้งใช้งานจริง โดยค่าเริ่มต้น แอปจะได้รับ สิทธิ์ที่เหมาะสมซึ่งกำหนดค่าไว้ล่วงหน้า แต่ในบางกรณี นโยบายขององค์กรอาจทำให้ข้อมูลไม่ถูกต้อง

    1. ไปที่หน้า IAM และผู้ดูแลระบบในแถบนำทางด้านซ้ายใน Google Cloud Console
    2. ค้นหาบัญชีบริการ Compute Engine <project_number>-compute@developer.gserviceaccount.com และบัญชีบริการ App Engine <project_name>@appspot.gserviceaccount.com
    3. บัญชีบริการทั้ง 2 บัญชีต้องมีบทบาท Editor หากบัญชีใดไม่มีบทบาท Editor ให้อัปเดตบทบาทโดยคลิกไอคอนดินสอที่ด้านขวาของบัญชี คลิกเมนูแบบเลื่อนลงของบทบาทที่มีอยู่ เลื่อนขึ้นด้านบนแล้วคลิกโปรเจ็กต์ จากนั้นคลิกผู้แก้ไข
  2. โควต้าไม่เพียงพอ - การทำให้ใช้งานได้ของเวอร์ชันที่ใช้งานจริงใช้โควต้าของ Compute Engine หากโปรเจ็กต์มีโควต้าไม่เพียงพอ การทำให้ใช้งานได้อาจหมดเวลาขณะพยายามจัดสรรทรัพยากร

    1. ไปที่หน้า IAM และผู้ดูแลระบบในแถบนำทางด้านซ้ายในคอนโซล Google Cloud จากนั้นคลิกแท็บโควต้าในแถบนำทางด้านซ้าย
    2. ใกล้กับด้านบนของหน้า ให้คลิกกล่องข้อความที่มีข้อความว่าตารางตัวกรองแล้วพิมพ์ Compute Engine API คลิกผลการค้นหาเพียงรายการเดียว
    3. ตรวจสอบว่าสถานะโควต้าทั้งหมดอยู่ภายในขีดจำกัดหรือมีเครื่องหมายถูกสีเขียว
    4. ค้นหาและคลิก CPU ตรวจสอบว่าการใช้งานปัจจุบันและจำนวนอินสแตนซ์ที่ทำให้ใช้งานได้ยังคงต่ำกว่าขีดจำกัดสำหรับภูมิภาคการทำให้ใช้งานได้