ตั้งค่าการติดแท็กฝั่งเซิร์ฟเวอร์ด้วย 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 Console

  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 ให้เปิด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 Logging Explorer
ที่แสดงตัวอย่างบันทึก

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

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

    NOT textPayload:"Custom message:"
    

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

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

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

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 หลายรายการ เส้นทางทั้งหมด (สตริงที่อยู่หลังชื่อโดเมน) จะต้องตรงกัน

Works ไม่ทำงาน
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 ยืนยันว่าการใช้งานปัจจุบันบวกด้วยจํานวนอินสแตนซ์ที่ติดตั้งใช้งานจะยังคงต่ำกว่าขีดจํากัดของภูมิภาคที่ติดตั้งใช้งาน