ส่งเหตุการณ์ Measurement Protocol ไปยัง Google Analytics

คู่มือนี้จะอธิบายวิธีส่ง สตรีมเว็บและแอปของ Google Analytics Measurement Protocol กิจกรรมเป็น Google Analytics เพื่อให้คุณสามารถดูเหตุการณ์ Measurement Protocol ใน รายงาน Google Analytics

เลือกแพลตฟอร์มที่ต้องการดูในคู่มือนี้

จัดรูปแบบคำขอ

Measurement Protocol ของ Google Analytics รองรับเฉพาะคำขอ HTTP POST

หากต้องการส่งกิจกรรม ให้ใช้รูปแบบต่อไปนี้

POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data>

คุณต้องระบุข้อมูลต่อไปนี้ใน URL ของคำขอ

  • api_secret: ข้อมูลลับ API ที่สร้างขึ้นใน UI ของ Google Analytics

    หากต้องการสร้างข้อมูลลับใหม่ ให้ไปที่ผู้ดูแลระบบ > สตรีมข้อมูล > เลือก สตรีมของคุณ > Measurement Protocol > สร้าง

  • firebase_app_id: รหัสแอป Firebase อยู่ในคอนโซล Firebase ในส่วน การตั้งค่าโปรเจ็กต์ > ทั่วไป > แอปของคุณ > รหัสแอป

    firebase_app_id ไม่เหมือนกับ app_instance_id firebase_app_id ระบุแอปของคุณ ในขณะที่ app_instance_id ระบุ สำหรับการติดตั้งแอปเพียงครั้งเดียว

ดูพารามิเตอร์การค้นหาสำหรับข้อมูลอ้างอิงแบบเต็ม

คุณต้องระบุข้อมูลต่อไปนี้ในเนื้อหาคำขอ

  • user_id: ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันสำหรับผู้ใช้ มีได้เฉพาะ UTF-8 อักขระ ดูข้อมูลเพิ่มเติมได้ที่ User-ID สําหรับการวิเคราะห์ข้ามแพลตฟอร์ม เกี่ยวกับตัวระบุนี้

  • consent: ไม่บังคับ ดูวิธีตั้งค่าความยินยอม การตั้งค่า

  • timestamp_micros: ไม่บังคับ เวลา Unix Epoch ในหน่วยไมโครวินาทีสําหรับ เหตุการณ์และพร็อพเพอร์ตี้ผู้ใช้ในคำขอ หากไม่ได้ระบุไว้ จะมีค่าเริ่มต้นเป็น เวลาส่งคำขอ

  • events: อาร์เรย์ของรายการเหตุการณ์ คุณสามารถรวมหลายกิจกรรมไว้ในแคมเปญเดียว อีกครั้ง

    วิธีแสดงกิจกรรมของผู้ใช้ในรายงาน เช่น เรียลไทม์ ต้องระบุ engagement_time_msec และ session_id เป็นส่วนหนึ่งของ params ในราคา event พารามิเตอร์ engagement_time_msec ควรแสดง เวลาในการมีส่วนร่วมของเหตุการณ์เป็นมิลลิวินาที

    เช่น

  {
   "app_instance_id": "12345678901234567890123456789012",
   "events": [
     {
        "name": "campaign_details",
        "params": {
          "campaign_id": "google_1234",
          "campaign": "Summer_fun",
          "source": "google",
          "medium": "cpc",
          "term": "summer+travel",
          "content": "logolink",
          "session_id": "123",
          "engagement_time_msec": "100"
        }
     }
   ]
  }

แม้ว่า session_start จะเป็นกิจกรรมที่จองไว้ ชื่อ การสร้าง session_id ใหม่จะเป็นการสร้างเซสชันใหม่โดยไม่ต้องส่ง session_start ทำความเข้าใจว่าเซสชัน นับได้

ลองใช้

นี่คือตัวอย่างที่คุณสามารถใช้เพื่อส่งเหตุการณ์ tutorial_begin ไปยัง Google เซิร์ฟเวอร์ Analytics:

const firebase_app_id = `1:1234567890:android:321abc456def7890`;
const api_secret = `<secret_value>`;

fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebase_app_id}&api_secret=${api_secret}`, {
  method: "POST",
  body: JSON.stringify({
    app_instance_id: 'app_instance_id',
    events: [{
      name: 'tutorial_begin',
      params: {},
    }]
  })
});

รูปแบบของ firebase_app_id คือเฉพาะแพลตฟอร์ม โปรดดูรหัสแอปพลิเคชัน ในส่วนไฟล์การกำหนดค่าและออบเจ็กต์ของ Firebase

ลบล้างการประทับเวลา

Measurement Protocol ใช้การประทับเวลาแรกที่พบในรายการต่อไปนี้ สำหรับแต่ละเหตุการณ์ในคำขอ

  1. timestamp_micros ของเหตุการณ์
  2. timestamp_micros ของคำขอ
  3. เวลาที่ Measurement Protocol ได้รับคำขอ

ตัวอย่างต่อไปนี้จะส่งการประทับเวลาระดับคำขอที่ใช้กับ เหตุการณ์ในคำขอ ดังนั้น Measurement Protocol จะกำหนดทั้งฟิลด์ การประทับเวลาของ tutorial_begin และเหตุการณ์ join_group รายการ requestUnixEpochTimeInMicros

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}

ตัวอย่างต่อไปนี้จะส่งทั้งการประทับเวลาระดับคำขอและระดับเหตุการณ์ ของคุณ ดังนั้น Measurement Protocol จะกำหนด tutorial_begin เหตุการณ์มีการประทับเวลา tutorialBeginUnixEpochTimeInMicros และ join_group การประทับเวลาเป็น requestUnixEpochTimeInMicros

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}

ข้อจำกัด

ข้อจำกัดต่อไปนี้มีผลกับการส่งเหตุการณ์ Measurement Protocol ไปยัง Google การวิเคราะห์:

  • คำขอมีเหตุการณ์ได้สูงสุด 25 รายการ
  • เหตุการณ์มีพารามิเตอร์ได้สูงสุด 25 รายการ
  • เหตุการณ์มีพร็อพเพอร์ตี้ผู้ใช้ได้สูงสุด 25 รายการ
  • ชื่อพร็อพเพอร์ตี้ผู้ใช้ต้องมีความยาวไม่เกิน 24 อักขระ
  • ค่าพร็อพเพอร์ตี้ผู้ใช้ต้องมีความยาวไม่เกิน 36 อักขระ
  • ชื่อเหตุการณ์ต้องมีอักขระไม่เกิน 40 ตัว และต้องประกอบด้วยตัวอักษรและตัวเลขเท่านั้น อักขระและขีดล่าง และต้องขึ้นต้นด้วยตัวอักษร
  • ชื่อพารามิเตอร์ซึ่งรวมถึงพารามิเตอร์ของรายการต้องมีอักขระไม่เกิน 40 ตัว ต้องประกอบด้วยอักขระที่เป็นตัวอักษร ตัวเลข และเครื่องหมายขีดล่างเท่านั้น และต้องขึ้นต้นด้วย ที่มีอักขระเป็นพยัญชนะ
  • ค่าพารามิเตอร์ ซึ่งรวมถึงค่าพารามิเตอร์ของรายการต้องยาว 100 อักขระ หรือ น้อยกว่าสําหรับพร็อพเพอร์ตี้ Google Analytics มาตรฐาน และไม่เกิน 500 อักขระ สำหรับพร็อพเพอร์ตี้ Google Analytics 360
  • พารามิเตอร์รายการมีพารามิเตอร์ที่กําหนดเองได้สูงสุด 10 รายการ
  • เนื้อหาของโพสต์ต้องเล็กกว่า 130 kB
  • เหตุการณ์ Measurement Protocol ของแอปที่ส่งไปยัง Google Analytics ไม่ป้อนข้อมูลใน Search กลุ่มเป้าหมายใน Google Ads สำหรับผู้ใช้แอป

ดูข้อกำหนดเพิ่มเติมของแต่ละกรณีการใช้งานได้ที่กรณีการใช้งานทั่วไป