ส่งเหตุการณ์ 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 > สร้าง

  • measurement_id: รหัสการวัดที่เชื่อมโยงกับสตรีม ซึ่งอยู่ในส่วน UI ของ Google Analytics ในส่วนผู้ดูแลระบบ > สตรีมข้อมูล > เลือก สตรีม > รหัสการวัด

    measurement_id ไม่ใช่รหัสสตรีมของคุณ

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

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

  • client_id: ตัวระบุที่ไม่ซ้ำกันของลูกค้า วิธีนี้แตกต่างจาก Firebase app_instance_id ใช้ gtag.js('get')
  • user_id: ไม่บังคับ ตัวระบุที่ไม่ซ้ำกันสำหรับผู้ใช้ มีได้เฉพาะ UTF-8 อักขระ ดูข้อมูลเพิ่มเติมได้ที่ User-ID สําหรับการวิเคราะห์ข้ามแพลตฟอร์ม เกี่ยวกับตัวระบุนี้

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

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

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

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

    เช่น

```json { "client_id": "123456.7654321", "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" } } ] } ``` While `session_start` is a [reserved event name](/analytics/devguides/collection/protocol/ga4/reference#reserved_names), creating a new `session_id` creates a new session without the need to send `session_start`. Understand how [sessions are counted](//support.google.com/analytics/answer/9191807). ## Try it Here's an example you can use to send a [`tutorial_begin`] event to your Google Analytics server: ```javascript const measurement_id = `G-XXXXXXXXXX`; const api_secret = `<secret_value>`; fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, { method: "POST", body: JSON.stringify({ client_id: 'XXXXXXXXXX.YYYYYYYYYY', events: [{ name: 'tutorial_begin', params: {}, }] }) }); ``` ## Override timestamp The Measurement Protocol uses the *first* timestamp it finds in the following list for each event in the request: 1. The `timestamp_micros` of the event. 1. The `timestamp_micros` of the request. 1. The time that the Measurement Protocol receives the request. The following example sends a request-level timestamp that applies to all of the events in the request. As a result, the Measurement Protocol assigns both the `tutorial_begin` and `join_group` events a timestamp of `requestUnixEpochTimeInMicros`. ```javascript { "timestamp_micros": requestUnixEpochTimeInMicros, "events": [ { "name": "tutorial_begin" }, { "name": "join_group", "params": { "group_id": "G_12345", } } ] } ``` The following example sends both a request-level timestamp and an event-level timestamp. As a result, the Measurement Protocol assigns the `tutorial_begin` event a timestamp of `tutorialBeginUnixEpochTimeInMicros`, and the `join_group` event a timestamp of `requestUnixEpochTimeInMicros`. ```javascript { "timestamp_micros": requestUnixEpochTimeInMicros, "events": [ { "name": "tutorial_begin", "timestamp_micros": tutorialBeginUnixEpochTimeInMicros }, { "name": "join_group", "params": { "group_id": "G_12345", } } ] } ``` ## Limitations The following limitations apply to sending Measurement Protocol events to Google Analytics: Note: For information on the limitations of 360 features, see [Google Analytics 360](//support.google.com/analytics/answer/11202874). * Requests can have a maximum of 25 events. * Events can have a maximum of 25 parameters. * Events can have a maximum of 25 user properties. * User property names must be 24 characters or fewer. * User property values must be 36 characters or fewer. * Event names must be 40 characters or fewer, can only contain alpha-numeric characters and underscores, and must start with an alphabetic character. * Parameter names including item parameters must be 40 characters or fewer, can only contain alpha-numeric characters and underscores, and must start with an alphabetic character. * Parameter values including item parameter values must be 100 characters or fewer for a standard Google Analytics property, and 500 characters or fewer for a Google Analytics 360 property. * Item parameters can have a maximum of 10 custom parameters. * The post body must be smaller than 130kB. * App Measurement Protocol events sent to Google Analytics 4 don't populate Search audiences in Google Ads for app users. For additional requirements of each use case, see [common use cases].