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

คู่มือนี้จะอธิบายวิธีดำเนินการต่อไปนี้

  • จัดสรรเซิร์ฟเวอร์การติดแท็กใน Google Cloud Platform (GCP) App Engine
  • อัปเกรดเซิร์ฟเวอร์การติดแท็กเพื่อจัดการการเข้าชมแบบเรียลไทม์
  • เพิ่มหรือลดจำนวนเซิร์ฟเวอร์ที่เรียกใช้คอนเทนเนอร์ 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)

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

2. การใช้ App Engine ในการใช้งานจริง

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

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

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

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

  1. เปิด Google Cloud Platform Cloud Shell
  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 bucket, ชื่อ: _Default line ให้เลือกเมนูรายการเพิ่มเติม แล้วคลิกแก้ไขซิงก์
  3. ในส่วนปลายทางของซิงก์ ให้เลือก Bucket บันทึก _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. เปิด เครื่องมือสำรวจบันทึกใน GCP
  2. มองหาข้อความบันทึกที่ไม่ต้องการซึ่งมาจากแท็ก เช่น

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

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

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

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

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

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

การยืนยัน UI

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

การยืนยัน API

นอกจากนี้ คุณยังยืนยันได้ว่าเซิร์ฟเวอร์ตอบสนองต่อการตรวจสอบประสิทธิภาพการทำงานโดยใช้ API ของเซิร์ฟเวอร์

  1. คัดลอก URL ของคอนเทนเนอร์เซิร์ฟเวอร์ จากผู้ดูแลระบบ > การตั้งค่าคอนเทนเนอร์
  2. เปิดแท็บเบราว์เซอร์ใหม่
  3. วาง URL แล้วต่อท้าย /healthy ลงในเส้นทาง เช่น https://www.example.com/metrics/healthy
  4. หากบริการทำงาน คุณควรเห็นข้อความ ok ในหน้า

หากคำขอสำหรับผลิตภัณฑ์หนึ่งๆ หายไป ให้ตรวจสอบว่าระบบได้ทริกเกอร์เหตุการณ์แล้ว คำสั่ง config จะเริ่มต้นผลิตภัณฑ์ แต่โดยปกติแล้วระบบจะส่งข้อมูลเมื่อมีการเรียก event เท่านั้น

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

แสดงตัวอย่าง 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. เปิด Google Cloud Platform Cloud Shell
  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 ให้อัปเดตบทบาทโดยคลิกไอคอนดินสอ ทางด้านขวาของบัญชี คลิกเมนูแบบเลื่อนลงของบทบาทที่มีอยู่ เลื่อนขึ้นไปด้านบน แล้วคลิก โปรเจ็กต์ จากนั้นคลิก Editor
  2. โควต้าไม่เพียงพอ - การติดตั้งใช้งานจริงใช้โควต้า Compute Engine หากโปรเจ็กต์มีโควต้าไม่เพียงพอ การติดตั้งใช้งานอาจหมดเวลาขณะพยายามจัดสรรทรัพยากร

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