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 | 








