ตั้งค่าการติดแท็กฝั่งเซิร์ฟเวอร์ด้วย 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. สร้างเซิร์ฟเวอร์การติดแท็กโดยทําตามสคริปต์เชลล์ ตั้งค่าประเภทการทำให้ใช้งานได้เป็น 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 ให้เปิดLogs Router ตรวจสอบว่าคุณอยู่ในโปรเจ็กต์ที่ตรงกับรหัสคอนเทนเนอร์
    ภาพหน้าจอของตัวเลือกโปรเจ็กต์ GCP ที่แสดงตัวอย่างรหัสคอนเทนเนอร์ของ Tag Manager
  2. สำหรับบรรทัดประเภท: ที่เก็บข้อมูลบันทึกของ Cloud, ชื่อ: _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. ยืนยันว่าไม่มีคำขอใหม่ปรากฏในบันทึกของเครื่องมือสำรวจบันทึก

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

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

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

  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 ที่แสดงตัวอย่างบันทึก

วิธีปิดใช้ข้อความบันทึกคอนโซล

  1. ใน Google Cloud Platform ให้เปิด Logs Router ตรวจสอบว่าคุณอยู่ในโปรเจ็กต์ที่ตรงกับรหัสคอนเทนเนอร์:
    ภาพหน้าจอของตัวเลือกโปรเจ็กต์ GCP ที่แสดงตัวอย่างรหัสคอนเทนเนอร์ Tag Manager
  2. สำหรับบรรทัดประเภท: ที่เก็บข้อมูลการบันทึกในระบบคลาวด์ ชื่อ: _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. ในสรุป ให้เลือกแท็บคอนโซล และตรวจสอบว่าไม่มีข้อความขอให้คุณอัปเดตเซิร์ฟเวอร์การติดแท็ก

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

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

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

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

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