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&registration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1" < GET /v4/status?message_id=&registration_ids= HTTP/1.1 < Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
              
              curl -v https://webpushapi-sgp.engagelab.com/v4/status/message?message_id=1613113584&registration_ids=1507bfd3a7c568d4761,1618cfd3a7c568d4761,17259fd3a7c568d4371 -u "7d431e42dfa6a6d693ac2d04:5e987ac6d2e04d95a9d8f0d1"

< GET /v4/status?message_id=&registration_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
icon
ติดต่อฝ่ายขาย