API สถิติ
info นี่คือเวอร์ชันล่าสุดของ Stats API การปรับปรุงในเวอร์ชัน v4 มีดังนี้:
- ใช้การตรวจสอบสิทธิ์พื้นฐาน HTTP เพื่ออนุญาตการเข้าถึง ด้วยวิธีนี้ การร้องขอ API ทั้งหมดสามารถทำได้โดยใช้เครื่องมือ HTTP ทั่วไป เช่น curl และปลั๊กอินเบราว์เซอร์
- เนื้อหาการ push เป็นรูปแบบ JSON
ภาพรวม
Stats API v4 มีฟังก์ชันการสืบค้นข้อมูลหลายรูปแบบ
การตรวจสอบการเรียกใช้
สำหรับข้อมูลเพิ่มเติม โปรดดูที่ /docs/web-push/rest-api/rest-api-overview#authentication-method
สถิติข้อความ
- สอบถามสถิติของแต่ละสถานะในวงจรชีวิตของ message_id
- สถิติของแต่ละข้อความ push สามารถเก็บไว้ได้สูงสุดหนึ่งเดือน
URL การร้องขอ API
GET v4/messages/details
ตัวอย่างการร้องขอ
curl -v https://webpushapi-sgp.engagelab.com/v4/messages/details?message_ids=1613113584,1229760629 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/messages/details?message_ids=1613113584,1229760629 HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
curl -v https://webpushapi-sgp.engagelab.com/v4/messages/details?message_ids=1613113584,1229760629 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/messages/details?message_ids=1613113584,1229760629 HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
โค้ดนี้โชว์เป็นหน้าต่างลอย
พารามิเตอร์การร้องขอ
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
message_ids | String | จำเป็น | <li> รหัสข้อความ สามารถระบุหลาย message_ids โดยคั่นด้วย ","<li> สูงสุด 100 message_ids |
ตัวอย่างการตอบกลับ
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1083008": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0,
"sub": {
"notification": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0,
"sub_web": {
"engageLab_web": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"chrome": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0
},
"safari": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"firefox": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"edge": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"other": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
}
}
},
"message": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
}
},
"plan_id": "engageLab_msg",
"pushContent": {
"message": {
"title": "msg",
"content": "push"
}
}
}
}
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1083008": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0,
"sub": {
"notification": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0,
"sub_web": {
"engageLab_web": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"chrome": {
"targets": 1,
"sent": 1,
"delivered": 1,
"impressions": 1,
"clicks": 0
},
"safari": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"firefox": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"edge": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
},
"other": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
}
}
},
"message": {
"targets": 0,
"sent": 0,
"delivered": 0,
"impressions": 0,
"clicks": 0
}
},
"plan_id": "engageLab_msg",
"pushContent": {
"message": {
"title": "msg",
"content": "push"
}
}
}
}
โค้ดนี้โชว์เป็นหน้าต่างลอย
พารามิเตอร์การตอบกลับ
การตอบกลับที่สำเร็จเป็นออบเจ็กต์ JSON โดยที่คีย์คือแต่ละ message_id และแต่ละข้อความต้องมีสถิติวงจรชีวิตของแต่ละขั้นตอน:
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
targets | Int64 | จำเป็น | เป้าหมายที่มีประสิทธิภาพ จำนวนอุปกรณ์เป้าหมายที่ถูกเลือกโดยงานหลังจากกรองประสิทธิภาพจะถูก push |
sent | Int64 | จำเป็น | จำนวนการส่ง ในบรรดาอุปกรณ์เป้าหมายที่มีประสิทธิภาพ เซิร์ฟเวอร์ Engagelab สร้างจำนวนอุปกรณ์ที่ส่งงานสำเร็จจริง |
delivered | Int64 | จำเป็น | จำนวนการจัดส่ง หลังจากส่งข้อความแจ้งเตือนแล้ว จำนวนการจัดส่งจริงไปยังปลายทางเว็บจะไม่รวมจำนวนการจัดส่งหลังจาก 5 วัน |
impressions | Int64 | จำเป็น | จำนวนการแสดงผล หลังจากจัดส่งข้อความแจ้งเตือนแล้ว จำนวนการแสดงผลที่สำเร็จจริงบนอุปกรณ์ปลายทางจะไม่ถูกนับ |
clicks | Int64 | จำเป็น | จำนวนการคลิก หลังจากแสดงข้อความแจ้งเตือนสำเร็จแล้ว จำนวนการคลิกจริงโดยผู้ใช้จะไม่ถูกนับ |
sub | Object | จำเป็น | ตัวบ่งชี้แยกย่อยของข้อมูลสถิติ <li> notification: สถิติสรุปข้อมูลของประเภทข้อความแจ้งเตือน <li> message: สถิติสรุปข้อมูลของข้อความที่กำหนดเองโดยผู้ใช้ |
plan_id | String | จำเป็น | รหัสแผนการ push ซึ่งระบุประเภทแผนการ push ที่ข้อความนี้เป็นส่วนหนึ่ง |
pushContent | Object | จำเป็น | รายละเอียดเนื้อหาการ push รวมถึงข้อมูลเนื้อหาการ push สำหรับแพลตฟอร์มต่างๆ: - android: เนื้อหาการ push สำหรับแพลตฟอร์ม Android (รวมถึงฟิลด์เช่น title และ content) - ios: เนื้อหาการ push สำหรับแพลตฟอร์ม iOS (รวมถึงฟิลด์เช่น title, content และ subtitle) - message: เนื้อหาข้อความที่กำหนดเอง (รวมถึงฟิลด์เช่น title และ content) |
ตัวบ่งชี้
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
sub_web | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทางการ push ต่างๆ ในช่องทางเว็บ |
engageLab_web | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทาง Engagelab |
chrome | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทาง Chrome |
safari | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทาง Safari |
firefox | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทาง Firefox |
edge | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทาง Edge |
other | Object | ไม่จำเป็น | สถิติสรุปข้อมูลของช่องทางอื่นๆ |
สถิติผู้ใช้
- ให้ข้อมูลสถิติที่เกี่ยวข้องของผู้ใช้ในช่วงเวลาที่กำหนดในช่วง 2 เดือนที่ผ่านมา: รวมถึงผู้ใช้ใหม่ ผู้ใช้ออนไลน์ และผู้ใช้ที่ใช้งานอยู่
- หน่วยเวลา: HOUR, DAY, MONTH
URL การร้องขอ API
GET v4/status/users
ตัวอย่างการร้องขอ
curl -v https://webpushapi-sgp.engagelab.com/v4/status/users?time_unit=DAY&start=2014-06-10&duration=3 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/users?time_unit=&start=&duration= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
curl -v https://webpushapi-sgp.engagelab.com/v4/status/users?time_unit=DAY&start=2014-06-10&duration=3 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/users?time_unit=&start=&duration= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
โค้ดนี้โชว์เป็นหน้าต่างลอย
พารามิเตอร์การร้องขอ
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
time_unit | String | ไม่จำเป็น | หน่วยเวลา: <li> HOUR<li> DAY<li> MONTH |
start | String | ไม่จำเป็น | เวลาเริ่มต้น <li> หากหน่วยเป็นชั่วโมง เวลาเริ่มต้นคือชั่วโมง (รวมวัน และควรเติม 0 หากน้อยกว่าสองหลัก) เช่น: 2006-01-02T15<li> หากหน่วยเป็นวัน เวลาเริ่มต้นคือวันที่ เช่น: 2022-06-11<li> หากหน่วยเป็นเดือน เวลาเริ่มต้นคือเดือน เช่น: 2022-06 |
duration | String | ไม่จำเป็น | ระยะเวลา <li> หากหน่วยเป็นวัน คือจำนวนวัน<li> สามารถสอบถามข้อมูลผู้ใช้ภายใน 60 วันเท่านั้น สำหรับ timeunit เป็น HOUR จะแสดงผลลัพธ์สถิติของวันปัจจุบันเท่านั้น |
ตัวอย่าง
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"time_unit": "DAY",
"start": "2014-06-10",
"duration": 3,
"items": [{
"time": "2014-06-12",
"web": {
"new": 1,
"active": 1,
"online": 2
}
}]
}
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"time_unit": "DAY",
"start": "2014-06-10",
"duration": 3,
"items": [{
"time": "2014-06-12",
"web": {
"new": 1,
"active": 1,
"online": 2
}
}]
}
โค้ดนี้โชว์เป็นหน้าต่างลอย
พารามิเตอร์
การตอบกลับที่สำเร็จเป็นออบเจ็กต์ JSON:
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
time_unit | String | จำเป็น | หน่วยเวลา มีสามค่า: <li> HOUR<li> DAY<li> MONTH |
start | String | จำเป็น | เวลาเริ่มต้น <li> หากหน่วยเป็นชั่วโมง เวลาเริ่มต้นคือชั่วโมง (รวมวัน และควรเติม 0 หากน้อยกว่าสองหลัก) เช่น: 2022-06-11 09<li> หากหน่วยเป็นวัน เวลาเริ่มต้นคือวันที่ เช่น: 2022-06-11<li> หากหน่วยเป็นเดือน เวลาเริ่มต้นคือเดือน เช่น: 2022-06 |
duration | String | จำเป็น | ระยะเวลา <li> หากหน่วยเป็นวัน คือจำนวนวัน<li> สามารถสอบถามข้อมูลผู้ใช้ภายใน 60 วันเท่านั้น สำหรับ timeunit เป็น HOUR จะแสดงผลลัพธ์สถิติของวันปัจจุบันเท่านั้น |
items | JSON Array | จำเป็น | ผลลัพธ์สถิติภายในช่วงเวลาที่กำหนดตามระยะเวลา |
- items:
- web: สถิติสรุปข้อมูลของแพลตฟอร์มเว็บ
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
new | Int64 | ไม่จำเป็น | ผู้ใช้ใหม่ |
online | Int64 | ไม่จำเป็น | ผู้ใช้ออนไลน์ |
active | Int64 | ไม่จำเป็น | ผู้ใช้ที่ใช้งานอยู่ |
สอบถามสถานะวงจรชีวิตข้อความ
- สอบถามสถานะวงจรชีวิตข้อความของอุปกรณ์ที่สอดคล้องกับ message_id
- สถิติของแต่ละข้อความ push สามารถเก็บไว้ได้สูงสุดหนึ่งเดือน
URL การร้องขอ API
GET v4/status/message
ตัวอย่าง
curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584®istration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status?message_id=®istration_ids= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584®istration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"
< GET /v4/status?message_id=®istration_ids= HTTP/1.1
< Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
โค้ดนี้โชว์เป็นหน้าต่างลอย
พารามิเตอร์
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
message_id | String | จำเป็น | รหัสข้อความ |
registration_ids | String | จำเป็น | <li> รหัสลงทะเบียน สามารถระบุหลาย Registration IDs โดยคั่นด้วย ","<li> รองรับสูงสุด 1000 registration_ids |
ตัวอย่าง
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1507bfd3a7c568d4761": {
"status": "plan"
},
"1618cfd3a7c568d4761": {
"error_message": "The `registration_id` does not belong to the appkey"
},
"17259fd3a7c568d4371": {
"error_message": "internal error"
}
}
< HTTP/1.1 200 OK
< Content-Type: application/json
{
"1507bfd3a7c568d4761": {
"status": "plan"
},
"1618cfd3a7c568d4761": {
"error_message": "The `registration_id` does not belong to the appkey"
},
"17259fd3a7c568d4371": {
"error_message": "internal error"
}
}
โค้ดนี้โชว์เป็นหน้าต่างลอย
พารามิเตอร์
การตอบกลับที่สำเร็จเป็นออบเจ็กต์ JSON ที่มีสถานะปัจจุบันของแต่ละ registration_id ภายใต้ข้อความนี้ หากมีข้อมูลข้อผิดพลาดใด ๆ ข้อมูลจะรวมอยู่ใน error-message
คีย์เวิร์ด | ประเภท | ตัวเลือก | คำอธิบาย |
---|---|---|---|
status | String | ไม่จำเป็น | ช่วงของค่า: <li> plan: วัตถุประสงค์แผน<li> target_valid: วัตถุประสงค์ที่ถูกต้อง<li> target_invalid: วัตถุประสงค์ที่ไม่ถูกต้อง<li> sent: ส่งออก<li> sent_failed: ล้มเหลวในการส่ง<li> delivered: จัดส่ง<li> delivered_failed: การจัดส่งล้มเหลว<li> impression: การแสดงผล<li> click: การคลิก |
error_message | String | ไม่จำเป็น | ข้อความแสดงข้อผิดพลาด |
การตอบกลับการร้องขอ
สถานะ HTTP
อ้างอิง: /docs/web-push/rest-api/http-status-code
รหัสธุรกิจการตอบกลับ
รหัส | คำอธิบาย | สถานะ HTTP |
---|---|---|
0 | สำเร็จ | 200 |
21001 | ไม่รองรับเมธอดหรือ URL ผิดพลาด | 404 |
21003 | ค่าพารามิเตอร์ไม่ถูกต้อง | 400 |
23001 | การตรวจสอบสิทธิ์พื้นฐานล้มเหลว | 401 |
23002 | พารามิเตอร์ขาดหายไป! | 400 |
23004 | ค่า time_unit ไม่ตรงกับ start! | 400 |
23007 | รองรับเฉพาะการสอบถาม message_id ภายใน 30 วัน! | 400 |
23100 | ข้อผิดพลาดเซิร์ฟเวอร์ | 500 |
27000 | เซิร์ฟเวอร์ตอบสนองช้า โปรดลองอีกครั้งในภายหลัง | 500 |
27201 | msgid ไม่มีอยู่หรือไม่ใช่ของแอปพลิเคชันนี้ | 400 |