User Activity API ช่วยให้เจ้าของพร็อพเพอร์ตี้ Google Analytics ดึงข้อมูลการวัดผลการวิเคราะห์ทั้งหมดที่เชื่อมโยงกับผู้ใช้รายเดียวได้ กล่าวอย่างเจาะจงคือ API จะดึงข้อมูลการวัดผลทั้งหมดที่เชื่อมโยงกับ User-ID หรือ Client-ID ที่เฉพาะเจาะจง
การส่งคำขอกิจกรรมของผู้ใช้
หากต้องการส่งคำขอกิจกรรมของผู้ใช้ ให้สร้างออบเจ็กต์คำขอด้วยช่องต่อไปนี้
Client-ID หรือ User-ID ที่เชื่อมโยงกับผู้ใช้
- ดูคุกกี้และการระบุตัวตนผู้ใช้สำหรับรายละเอียดเกี่ยวกับวิธีค้นหาช่องเหล่านี้
รหัสข้อมูลพร็อพเพอร์ตี้ Analytics ที่มีข้อมูลที่เชื่อมโยงกับผู้ใช้
- คุณสามารถใช้โปรแกรมสำรวจบัญชีเพื่อค้นหารหัสข้อมูลพร็อพเพอร์ตี้ของคุณ
แม้ว่าจะไม่จำเป็น แต่คุณอาจต้องใช้ช่วงวันที่สำหรับข้อมูลที่สนใจ โดยค่าเริ่มต้น API จะแสดงกิจกรรมของผู้ใช้ในช่วงสัปดาห์ที่ผ่านมา
ตัวอย่างคำขอ
POST https://analyticsreporting.googleapis.com/v4/userActivity:search
{
"viewId": "9999999",
"user": {
"type": "CLIENT_ID",
"userId": "1034600000.76425000000"
},
"dateRange": {
"startDate": "2018-01-01",
"endDate": "2018-12-31",
}
}
ตัวอย่างการตอบกลับ
{
"sessions": [{
"sessionId": "1539184430",
"deviceCategory": "desktop",
"platform": "Windows",
"dataSource": "web",
"sessionDate": "2018-10-10"
"activities": [{
"activityTime": "2018-10-10T08:13:50.555105Z",
"source": "(direct)",
"medium": "(none)",
"channelGrouping": "Direct",
"campaign": "(not set)",
"keyword": "(not set)",
"hostname": "shop.googlemerchandisestore.com",
"landingPagePath": "/gpsmap",
"activityType": "PAGEVIEW",
"customDimension": [{
"index": 1,
"value": "(not set)"
}, ...]
}, ...]
}, ...]
"totalRows": 1000,
"nextPageToken": "A6JGY3",
"sampleRate": 1
}
เซสชันและกิจกรรม
ข้อมูลกิจกรรมของผู้ใช้จะจัดกลุ่มตามเซสชัน เซสชันแต่ละรายการจะมีข้อมูลทั่วไปเกี่ยวกับเซสชัน เช่น รหัสเซสชันและวันที่ รวมถึงรายการกิจกรรมของผู้ใช้ในเซสชันนั้น
กิจกรรมของผู้ใช้ในเซสชันประกอบด้วยทุก "Hit" ที่ผู้ใช้รับผิดชอบ ซึ่งรวมถึงสิ่งต่างๆ เช่น การดูหน้าเว็บ เหตุการณ์อีคอมเมิร์ซ และเหตุการณ์ที่กำหนดเองที่ส่งผ่าน gtag(...)
หรือ ga(...)
การใส่เลขหน้า
User Activity API ใช้การแบ่งหน้าเพื่อแบ่งชุดข้อมูลขนาดใหญ่ออกเป็นคำขอและการตอบกลับหลายรายการ อย่างไรก็ตาม เนื่องจากข้อมูลที่ API ส่งคืนมีโครงสร้างตามลำดับชั้น นักพัฒนาซอฟต์แวร์จึงต้องพิจารณาถึงเรื่องพิเศษบางอย่างเพื่อให้จัดเรียงข้อมูลได้อย่างถูกต้อง
ประเภท "แถว" พื้นฐานของการใส่เลขหน้าคือกิจกรรม เนื่องจากข้อมูลผู้ใช้จัดกลุ่มตามเซสชัน ซึ่งหมายความว่าขอบเขตหน้าเว็บอาจเกิดขึ้นภายในเซสชันหนึ่งๆ และเซสชันนั้นอาจมีกิจกรรมที่ครอบคลุมหลายหน้าได้
ข้อมูลตัวอย่าง
เราจะใช้ข้อมูลตัวอย่างต่อไปนี้เพื่อการสาธิต ในตัวอย่างนี้ ผู้ใช้โต้ตอบกับเว็บไซต์ใน 6 เซสชันภายในระยะเวลา 3 วัน
วันที่ | รหัสเซสชัน | ป้ายกำกับเหตุการณ์ | เวลา |
---|---|---|---|
2018-11-23 | 1 | A | 10:26 |
2018-11-23 | 1 | B | 10:32 |
2018-11-23 | 1 | C | 10:39 |
2018-11-23 | 2 | A | 18:04 |
2018-11-23 | 2 | B | 18:11 |
2018-11-23 | 2 | C | 18:26 |
2018-11-24 | 3 | A | 11:26 |
2018-11-24 | 3 | B | 11:29 |
2018-11-24 | 3 | C | 11:39 |
2018-11-24 | 3 | D | 11:42 |
2018-11-24 | 4 | A | 23:50 |
2018-11-24 | 4 | B | 23:54 |
2018-11-25 | 5 | C | 00:02 |
2018-11-25 | 5 | D | 00:13 |
2018-11-25 | 6 | A | 13:01 |
2018-11-25 | 6 | B | 13:09 |
2018-11-25 | 6 | C | 13:12 |
2018-11-25 | 6 | D | 13:23 |
หน้าเดียว
หากคุณส่งคําขอกิจกรรมของผู้ใช้โดยมี pageSize
อย่างน้อย 18 รายการ ข้อมูลทั้งหมดจะแสดงในหน้าเดียว และจะมีลักษณะดังนี้
POST https://analyticsreporting.googleapis.com/v4/userActivity:search
{
"viewId": "9999999",
"user": {
"type": "CLIENT_ID",
"userId": "1034600000.76425000000",
},
"dateRange": {
"startDate": "2018-11-20",
"endDate": "2018-11-30",
},
"pageSize": 100,
}
{
"totalRows": 18,
"sessions": [{
"sessionId": "1",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T10:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T10:32:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-23T10:39:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "2",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T18:04:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T18:11:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-23T18:26:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "3",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T11:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T11:29:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-24T11:39:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-24T11:42:00",
"event": {"eventLabel": "D"}
}]
}, {
"sessionId": "4",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T23:50:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T23:54:00",
"event": {"eventLabel": "B"}
}]
}, {
"sessionId": "5",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T00:01:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T00:13:00",
"event": {"eventLabel": "D"}
}]
}, {
"sessionId": "6",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T13:01:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-25T13:09:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-25T10:12:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T10:23:00",
"event": {"eventLabel": "D"}
}]
}]
}
หลายหน้า
แต่หากหน้าเว็บมีขนาด 5 ข้อมูลนี้จะแบ่งออกเป็นหน้าการตอบกลับ 4 หน้า ดังนี้
วันที่ | รหัสเซสชัน | ป้ายกำกับเหตุการณ์ | เวลา |
---|---|---|---|
หน้า 1: | |||
2018-11-23 | 1 | A | 10:26 |
2018-11-23 | 1 | B | 10:32 |
2018-11-23 | 1 | C | 10:39 |
2018-11-23 | 2 | A | 18:04 |
2018-11-23 | 2 | B | 18:11 |
หน้า 2: | |||
2018-11-23 | 2 | C | 18:26 |
2018-11-24 | 3 | A | 11:26 |
2018-11-24 | 3 | B | 11:29 |
2018-11-24 | 3 | C | 11:39 |
2018-11-24 | 3 | D | 11:42 |
หน้า 3: | |||
2018-11-24 | 4 | A | 23:50 |
2018-11-24 | 4 | B | 23:54 |
2018-11-25 | 5 | C | 00:02 |
2018-11-25 | 5 | D | 00:13 |
2018-11-25 | 6 | A | 13:01 |
หน้า 4: | |||
2018-11-25 | 6 | B | 13:09 |
2018-11-25 | 6 | C | 13:12 |
2018-11-25 | 6 | D | 13:23 |
โปรดสังเกตว่าเซสชันที่ 2 จะแบ่งออกเป็นหน้าแรกและหน้า 2 และเซสชัน 2 เซสชันในวันที่ 24 พฤศจิกายนจะแบ่งออกเป็นหน้าที่ 2 และ 3 คำตอบจะมีลักษณะดังนี้
{
"totalRows": 18,
"nextPageToken": "UGMGQS",
"sessions": [{
"sessionId": "1",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T10:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T10:32:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-23T10:39:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "2",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T18:04:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-23T18:11:00",
"event": {"eventLabel": "B"}
}]
}]
}
{
"totalRows": 18,
"nextPageToken": "1FKOME",
"sessions": [{
"sessionId": "2",
"sessionDate": "2018-11-23",
"activities": [{
"activityTime": "2018-11-23T18:26:00",
"event": {"eventLabel": "C"}
}]
}, {
"sessionId": "3",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T11:26:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T11:29:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-24T11:39:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-24T11:42:00",
"event": {"eventLabel": "D"}
}]
}]
}
{
"totalRows": 18,
"nextPageToken": "7S77H6",
"sessions": [{
"sessionId": "4",
"sessionDate": "2018-11-24",
"activities": [{
"activityTime": "2018-11-24T23:50:00",
"event": {"eventLabel": "A"}
}, {
"activityTime": "2018-11-24T23:54:00",
"event": {"eventLabel": "B"}
}]
}, {
"sessionId": "5",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T00:01:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T00:13:00",
"event": {"eventLabel": "D"}
}]
}, {
"sessionId": "6",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T13:01:00",
"event": {"eventLabel": "A"}
}]
}]
}
{
"totalRows": 18,
"sessions": [{
"sessionId": "6",
"sessionDate": "2018-11-25",
"activities": [{
"activityTime": "2018-11-25T13:09:00",
"event": {"eventLabel": "B"}
}, {
"activityTime": "2018-11-25T10:12:00",
"event": {"eventLabel": "C"}
}, {
"activityTime": "2018-11-25T10:23:00",
"event": {"eventLabel": "D"}
}]
}]
}
การสุ่มตัวอย่างข้อมูล
หากลูกค้ามีข้อมูลสะสมเป็นจำนวนมากในช่วงวันที่ที่ขอ API อาจแสดงผลเพียงชุดย่อยของกิจกรรมที่ได้รับการสุ่มตัวอย่าง เมื่อเกิดเหตุการณ์ดังกล่าวขึ้น ช่อง sampleRate
จะระบุสัดส่วนของกิจกรรมของผู้ใช้
วิธีสุ่มตัวอย่างข้อมูล
ระบบจะสุ่มตัวอย่างข้อมูลผู้ใช้ที่ระดับกิจกรรม ตัวอย่างเช่น เมื่อใช้อัตราการสุ่มตัวอย่าง 50% (0.5
) กิจกรรมครึ่งหนึ่งของผู้ใช้จะแสดงในคำตอบ
ระบบจะเลือกกิจกรรมการสุ่มตัวอย่างเหล่านี้ตามกฎ API ไม่ได้ให้การรับประกันใดๆ เกี่ยวกับการสุ่มหรือการสุ่มตัวอย่างตามสัดส่วนของกิจกรรมในช่วงวันที่ที่ระบุ
ป้องกันการสุ่มตัวอย่างข้อมูล
เนื่องจาก API นี้จะถือว่าเซสชันเป็นเพียงคอลเล็กชันของกิจกรรมเท่านั้น เซสชันที่ไม่มีกิจกรรมใดๆ ปรากฏในชุดการสุ่มตัวอย่างจะไม่ปรากฏในการตอบกลับ หากคุณต้องการรายการเซสชันหรือกิจกรรมที่ครอบคลุม ให้ส่งคำขอติดตามผลโดยมีช่วงวันที่ที่สั้นลง
เช่น หากคุณขอข้อมูลจาก 2018-01-01
ถึง 2018-12-31
และคำตอบระบุอัตราการสุ่มตัวอย่างเป็น 0.25
ให้แบ่งช่วงวันที่ที่ขอออกเป็น 4 ส่วน เพื่อให้แต่ละส่วนมีข้อมูลเดิมประมาณ 1 ใน 4 ดังนี้
2018-01-01
ถึง2018-03-31
2018-04-01
ถึง2018-06-30
2018-07-01
ถึง2018-09-30
2018-10-01
ถึง2018-12-31