Logo Site EngageLab Mark Colored Transparent
เอกสาร

คู่มือ API

ตั้งค่ารหัสผู้ใช้

เวอร์ชันที่รองรับ

รหัส email และ phone เริ่มรองรับตั้งแต่เวอร์ชัน: 2.1.0

การกำหนดอินเทอร์เฟซ

  • identifyAccount(user);
    • คำอธิบายอินเทอร์เฟซ:
      • ตั้งค่ารหัสผู้ใช้ เช่น หมายเลขบัตรสมาชิกของผู้ใช้
    • คำอธิบายพารามิเตอร์
      • identity: ID รหัสผู้ใช้ Key รองรับ 4 ค่า ได้แก่ user_id, anonymous_id, email และ phone ต้องระบุอย่างน้อยหนึ่งรายการ ไม่จำเป็นต้องกรอกทั้งหมด
      • completion: การเรียกกลับ
    • กฎของรหัสผู้ใช้
      • user_id: ต้องไม่ว่างเปล่าหลังตัดช่องว่างหัวท้าย ความยาวสูงสุด 255 ตัวอักษร ต้องไม่เป็น 0, null, undefined หรือ nan (ไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่)
      • anonymous_id: ต้องไม่ว่างเปล่าหลังตัดช่องว่างหัวท้าย ความยาวสูงสุด 256 ตัวอักษร
      • email: ที่อยู่อีเมลของผู้ใช้ ต้องไม่ว่างเปล่าหลังตัดช่องว่างหัวท้าย ความยาวสูงสุด 256 ตัวอักษร ต้องเป็นรูปแบบอีเมลที่ถูกต้อง เช่น user@example.com
      • phone: หมายเลขโทรศัพท์ของผู้ใช้ ต้องเป็นรูปแบบ E.164 ที่มีรหัสประเทศหรือภูมิภาค เช่น +8613800000000
      • หากฟิลด์ใดไม่เป็นไปตามกฎ การเรียกครั้งนี้จะไม่ส่งคำขอ completion จะส่งคืน -1 และ message ระบุสาเหตุที่แน่ชัด

ตัวอย่างการเรียกใช้

let user = {completion: (code, message)=>{}, identity:{"user_id":"value","anonymous_id":"value","email":"user@example.com","phone":"+8613800000000"}} window.MAInterface.identifyAccount(user)
              
                  let user = {completion: (code, message)=>{}, identity:{"user_id":"value","anonymous_id":"value","email":"user@example.com","phone":"+8613800000000"}}
    window.MAInterface.identifyAccount(user)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

email และ phone ในที่นี้ใช้สำหรับจับคู่ตัวตนของผู้ใช้ และอาจส่งคืน EUID ใหม่ ไม่สามารถใช้แทนกันได้กับข้อมูลติดต่อที่ตั้งค่าผ่าน「ตั้งค่าข้อมูลติดต่อผู้ใช้」(setUserContact)

รับ EUID

การกำหนดอินเทอร์เฟซ

  • + EUID()
    • คำอธิบายอินเทอร์เฟซ:
      • รับ EUID ของ EngageLab MA

ตัวอย่างการเรียกใช้

window.MAInterface.EUID((code,euid)=>{ console.log(code, euid) })
              
                  window.MAInterface.EUID((code,euid)=>{
        console.log(code, euid)
    })

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าข้อมูลติดต่อผู้ใช้

การกำหนดอินเทอร์เฟซ

  • setUserContact(user)
    • คำอธิบายอินเทอร์เฟซ:
      • รองรับการตั้งค่าค่าข้อมูลติดต่อหลายประเภทพร้อมกัน Key คือชื่อข้อมูลติดต่อ value คือค่าของข้อมูลติดต่อ ปัจจุบันรองรับข้อมูลติดต่อ 4 ประเภท ได้แก่ email, mobile_phone, landline_phone และ whatsapp_phone
    • คำอธิบายพารามิเตอร์
      • contacts: ข้อมูลติดต่อของผู้ใช้
      • completion: การเรียกกลับ

ตัวอย่างการเรียกใช้

let user = { completion: (code, message)=>{ }, contacts: {} } user.contacts["ชื่อข้อมูลติดต่อ"] = "ค่าของข้อมูลติดต่อ" //เช่น: mobile_phone=18800000000 window.MAInterface.setUserContact(user)
              
                    let user = {
          completion: (code, message)=>{ },
          contacts: {}
       }
      user.contacts["ชื่อข้อมูลติดต่อ"] = "ค่าของข้อมูลติดต่อ"   //เช่น: mobile_phone=18800000000
      window.MAInterface.setUserContact(user)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่า ID ติดต่อของช่องทาง

เวอร์ชันที่รองรับ

เวอร์ชันที่เริ่มรองรับ: 2.1.0

การกำหนดอินเทอร์เฟซ

  • setChannelValue(channelId, values, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • ตั้งค่า RID หรือ Token ให้กับช่องทาง Push ที่กำหนดค่าไว้ในคอนโซล MA (เช่น WebPush หรือ Push ของบุคคลที่สาม)
      • ต้องเรียกใช้หลังจาก SDK เริ่มต้นสำเร็จแล้ว มิฉะนั้น completion จะส่งคืน -1
      • เมื่อ RID หรือ Token เปลี่ยนแปลง ต้องเรียกอินเทอร์เฟซอีกครั้งเพื่ออัปเดต
    • คำอธิบายพารามิเตอร์
      • channelId: ID ของช่องทาง Push ที่กำหนดค่าไว้ในคอนโซล MA ต้องเป็นจำนวนเต็มที่มากกว่า 0
      • values: อาร์เรย์ของค่า ID ติดต่อของช่องทาง (เช่น RID หรือ Token) ต้องไม่ว่างเปล่า และองค์ประกอบในอาร์เรย์ต้องไม่เป็นสตริงว่าง
      • completion: การเรียกกลับ code เป็น 0 หมายถึงสำเร็จ

ตัวอย่างการเรียกใช้

window.MAInterface.setChannelValue(136, ["push rid or token"], (code, message)=>{})
              
                 window.MAInterface.setChannelValue(136, ["push rid or token"], (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

สวิตช์การรวบรวมข้อมูล

เวอร์ชันที่รองรับ

เวอร์ชันที่เริ่มรองรับ: 2.2.0

คำอธิบายฟีเจอร์

แอปพลิเคชันเปิดหรือปิดการรวบรวมข้อมูลของ MA SDK ตามผลการให้ความยินยอมของผู้ใช้ เพื่อให้เป็นไปตามข้อกำหนดด้านการปฏิบัติตามกฎระเบียบที่ห้ามรายงานข้อมูลพฤติกรรมหลังจากผู้ใช้ปฏิเสธหรือถอนความยินยอม

  • ปิด: หยุดการสร้าง การแคช และการรายงานเหตุการณ์ คุณสมบัติผู้ใช้ UTM และข้อมูลอุปกรณ์ ส่วนการเริ่มต้น การรับ EUID/RID การตั้งค่ารหัสผู้ใช้ การตั้งค่าข้อมูลติดต่อ และการตั้งค่า ID ติดต่อของช่องทางยังใช้งานได้ตามปกติ
  • เปิด: กลับมารวบรวมข้อมูลต่อ โดยไม่ส่งข้อมูลย้อนหลังในช่วงที่ปิดไว้
  • เปิดเป็นค่าเริ่มต้น: หากไม่ได้ตั้งค่า ค่าเริ่มต้นคือเปิด สอดคล้องกับพฤติกรรมก่อนการอัปเกรด
  • บันทึกในเครื่อง: สถานะจะถูกบันทึกไว้ในเบราว์เซอร์ภายในเครื่อง (localStorage) และยังคงอยู่หลังรีเฟรชหรือเปิดหน้าใหม่ เมื่อล้างข้อมูลไซต์จะกลับเป็นค่าเริ่มต้น
  • แอปพลิเคชันเป็นผู้ตัดสินใจเปิด/ปิด: SDK จะไม่ตรวจสอบภูมิภาคของผู้ใช้ ไม่แสดงหน้าต่างขอความยินยอม และไม่อ่านค่าจากแพลตฟอร์มจัดการความยินยอม (CMP)

การกำหนดอินเทอร์เฟซ

  • init({ dataCollectionEnabled })

    • คำอธิบายอินเทอร์เฟซ: ตั้งค่าสถานะสวิตช์สำหรับการเริ่มใช้งานครั้งแรกขณะเริ่มต้น
    • คำอธิบายพารามิเตอร์: true เปิด; false ปิด; หากไม่ส่งค่า ค่าเริ่มต้นคือเปิด
  • setDataCollectionEnabled(enabled, completion)

    • คำอธิบายอินเทอร์เฟซ: เปิดหรือปิดการรวบรวมข้อมูล มีผลทันทีและบันทึกไว้ในเครื่อง
    • คำอธิบายพารามิเตอร์:
      • enabled: true เปิด, false ปิด
      • completion: การเรียกกลับ code เป็น 0 หมายถึงสำเร็จ หากพารามิเตอร์ไม่ใช่ค่าบูลีนจะส่งคืน -1
    • คำอธิบายการเรียกใช้:
      • เมื่อค่าที่ตั้งเหมือนกับสถานะปัจจุบัน จะไม่ทริกเกอร์การประมวลผลการสลับ ดังนั้นการซิงก์ตัวเลือกของผู้ใช้ทุกครั้งที่โหลดหน้าจึงไม่ส่งผลกระทบเพิ่มเติม
      • เมื่อสลับจากเปิดเป็นปิด SDK จะพยายามส่งข้อมูลที่เกิดขึ้นก่อนการสลับทันทีหนึ่งครั้ง (พร้อมแนบเหตุการณ์สิ้นสุดของเซสชันปัจจุบัน) หากล้มเหลวจะไม่ลองใหม่ จากนั้นจะล้างแคชในเครื่อง
      • เมื่อสลับจากปิดเป็นเปิด SDK จะรายงานข้อมูลอุปกรณ์และเริ่มเซสชันใหม่ (รายงาน el_session_start และ el_page_view ของหน้าปัจจุบัน)
      • ในช่วงที่ปิด จะไม่นับการระบุแหล่งที่มาของการแปลงจากการคลิกการแจ้งเตือน WebPush อีกต่อไป
  • isDataCollectionEnabled()

    • คำอธิบายอินเทอร์เฟซ: ส่งคืนสถานะสวิตช์ปัจจุบัน อ่านเฉพาะสถานะในเครื่อง ไม่ส่งคำขอผ่านเครือข่าย
    • คำอธิบายค่าที่ส่งคืน: true เปิด, false ปิด; หากยังไม่เคยบันทึกจะส่งคืน true ค่าที่ส่งคืนแสดงถึงสถานะสวิตช์ของ SDK ไม่ได้หมายความว่าผู้ใช้ได้ให้ความยินยอมแล้ว

พฤติกรรมของแต่ละอินเทอร์เฟซในช่วงที่ปิด

อินเทอร์เฟซ ในช่วงที่ปิด ฝั่งธุรกิจรับรู้ได้อย่างไร
อินเทอร์เฟซคุณสมบัติผู้ใช้ทั้งหมด ถูกดักจับ ไม่ส่งคำขอ completion ส่งคืน -8, "data collection disabled"
รายงานเหตุการณ์ (onEvent), ตั้งค่าคุณสมบัติ UTM (setUtmProperties) ทิ้งแบบเงียบ ไม่มีการเรียกกลับ แนะนำให้ใช้ isDataCollectionEnabled() ตรวจสอบก่อนเรียก
การเริ่มต้น (init), ตั้งค่ารหัสผู้ใช้ (identifyAccount), รับ EUID, ตั้งค่าข้อมูลติดต่อผู้ใช้ (setUserContact), ตั้งค่า ID ติดต่อของช่องทาง (setChannelValue), ตั้งค่าเวลาหมดอายุของเซสชัน (setSessionTimeout), ตั้งค่าเวลาที่อยู่ในหน้าเว็บ (setPageStayTime) ไม่ถูกดักจับ พฤติกรรมไม่เปลี่ยนแปลง ค่าที่ตั้งผ่าน setSessionTimeout และ setPageStayTime จะมีผลหลังจากเปิด

ตัวอย่างการเรียกใช้

// ขณะเริ่มต้น โปรดส่งค่า dataCollectionEnabled แบบไดนามิกตามสถานะการให้ความยินยอมของผู้ใช้ อย่าเขียนค่าตายตัว เพื่อหลีกเลี่ยงไม่ให้สถานะถูกรีเซ็ตเป็นค่าตายตัวทุกครั้งที่เริ่มต้น window.MAInterface.init({ appKey: "your appKey", dataCollectionEnabled: false, completion: (code, msg) => {} }) // หลังจากผู้ใช้ให้ความยินยอม window.MAInterface.setDataCollectionEnabled(true, (code, msg) => {}) // หลังจากผู้ใช้ถอนความยินยอม window.MAInterface.setDataCollectionEnabled(false, (code, msg) => {}) // สอบถามสถานะ const enabled = window.MAInterface.isDataCollectionEnabled()
              
                // ขณะเริ่มต้น โปรดส่งค่า dataCollectionEnabled แบบไดนามิกตามสถานะการให้ความยินยอมของผู้ใช้ อย่าเขียนค่าตายตัว เพื่อหลีกเลี่ยงไม่ให้สถานะถูกรีเซ็ตเป็นค่าตายตัวทุกครั้งที่เริ่มต้น
  window.MAInterface.init({
    appKey: "your appKey",
    dataCollectionEnabled: false,
    completion: (code, msg) => {}
  })

  // หลังจากผู้ใช้ให้ความยินยอม
  window.MAInterface.setDataCollectionEnabled(true, (code, msg) => {})

  // หลังจากผู้ใช้ถอนความยินยอม
  window.MAInterface.setDataCollectionEnabled(false, (code, msg) => {})

  // สอบถามสถานะ
  const enabled = window.MAInterface.isDataCollectionEnabled()

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าคุณสมบัติ UTM

การกำหนดอินเทอร์เฟซ

  • setUtmProperties(attrs:any)
    • คำอธิบายอินเทอร์เฟซ:
      • คุณสมบัติ UTM เป็นคุณสมบัติมาตรฐานของเหตุการณ์ หากนักพัฒนาสามารถระบุได้ว่าผู้ใช้มาจากโฆษณาใดเมื่อเข้าสู่แอป ขอแนะนำให้ตั้งค่าข้อมูล UTM เราจะส่งพารามิเตอร์นี้เมื่อรายงานเหตุการณ์ ปัจจุบันสามารถตั้งค่าคุณสมบัติ UTM ได้ดังนี้:
        • utm_source: แหล่งที่มาของแคมเปญโฆษณา
        • utm_medium: สื่อของแคมเปญโฆษณา
        • utm_term: คำหลักของแคมเปญโฆษณา
        • utm_content: เนื้อหาของแคมเปญโฆษณา
        • utm_campaign: ชื่อของแคมเปญโฆษณา
        • utm_id: ID ของแคมเปญโฆษณา

ตัวอย่างการเรียกใช้

window.MAInterface.setUtmProperties({"utm_source":"value1"})
              
                 window.MAInterface.setUtmProperties({"utm_source":"value1"})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าคุณสมบัติผู้ใช้

ตั้งค่าค่าคุณสมบัติของผู้ใช้ หากคุณสมบัติของผู้ใช้ไม่มีอยู่ ระบบจะสร้างขึ้นโดยอัตโนมัติ

เขียนทับและอัปเดตคุณสมบัติผู้ใช้

  • setProperty(user, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • เขียนทับและอัปเดตค่าคุณสมบัติของผู้ใช้
      • บันทึกเฉพาะข้อมูลล่าสุดที่รายงาน เขียนทับข้อมูลในอดีต เช่น ระดับสมาชิกของผู้ใช้
      • เนื้อหาคุณสมบัติของผู้ใช้เหล่านี้ถูกเก็บไว้ในออบเจ็กต์หนึ่ง โดย key เป็นชื่อคุณสมบัติของผู้ใช้และต้องเป็น string ส่วน Value เป็นเนื้อหาคุณสมบัติของผู้ใช้ รองรับประเภท string, number, Array, object และ object_array
      • ปัจจุบัน ค่าประเภท Array รองรับเฉพาะองค์ประกอบที่เป็น string อาร์เรย์ที่องค์ประกอบทั้งหมดเป็น object จะถูกจัดการเป็น object_array ส่วนอาร์เรย์ที่ผสม object กับประเภทอื่นถือว่าไม่ถูกต้อง
      • หากคุณสมบัติของผู้ใช้มีอยู่ก่อนหน้านี้ จะถูกเขียนทับในครั้งนี้ หากไม่มี จะถูกสร้างขึ้น กฎการอัปเดตของ object และ object_array ดูด้านล่าง
    • ตัวอย่างการเรียกใช้:
window.MAInterface.setProperty({key:"value"}, (code, message)=>{})
              
                 window.MAInterface.setProperty({key:"value"}, (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

กฎของ object / object_array

เวอร์ชันที่เริ่มรองรับ: 2.1.0

  • object คือออบเจ็กต์ธรรมดาที่ไม่ว่างเปล่า เช่น { city: "Singapore", score: 100 }; object_array คืออาร์เรย์ที่องค์ประกอบทั้งหมดเป็นออบเจ็กต์ธรรมดาที่ไม่ว่างเปล่า
  • ชื่อฟิลด์ย่อยต้องเป็น string ที่ไม่ว่างเปล่า และต้องไม่มี . หรือ $ ค่าของฟิลด์ย่อยรองรับ string, number และอาร์เรย์ของ string ไม่รองรับการซ้อน object หรือ object_array ต่อไปอีก
  • object ใช้ความหมายแบบผสานฟิลด์ย่อย: เมื่อตั้งค่าอีกครั้ง จะอัปเดตเฉพาะฟิลด์ย่อยที่ส่งมาในครั้งนี้ ฟิลด์ย่อยที่ไม่ได้ส่งจะคงเดิม การส่งค่าฟิลด์ย่อยเป็น null หมายถึงลบฟิลด์ย่อยนั้น
  • object_array ใช้ความหมายแบบแทนที่ทั้งหมด: เมื่อตั้งค่าอีกครั้ง จะใช้อาร์เรย์ใหม่แทนที่อาร์เรย์เดิมทั้งหมด และคงลำดับของอาร์เรย์ไว้ เมื่อสร้าง object_array ครั้งแรก โปรดส่งอาร์เรย์ของออบเจ็กต์ที่ไม่ว่างเปล่า
  • ประเภทของฟิลด์ย่อยต้องสอดคล้องกับการกำหนดคุณสมบัติผู้ใช้นั้นในคอนโซล MA หากไม่สอดคล้อง ฝั่งเซิร์ฟเวอร์จะส่งคืนความล้มเหลว
window.MAInterface.setProperty({ profile: { city: "Singapore", score: 100 }, addresses: [ { id: "home", city: "Singapore" }, { id: "office", city: "Tokyo" } ] }, (code, message)=>{}) // อัปเดตเฉพาะ profile.score ส่วน profile.city คงเดิม window.MAInterface.setProperty({ profile: { score: 200 } }, (code, message)=>{})
              
                 window.MAInterface.setProperty({
       profile: { city: "Singapore", score: 100 },
       addresses: [
           { id: "home", city: "Singapore" },
           { id: "office", city: "Tokyo" }
       ]
   }, (code, message)=>{})

   // อัปเดตเฉพาะ profile.score ส่วน profile.city คงเดิม
   window.MAInterface.setProperty({ profile: { score: 200 } }, (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

อัปเดตคุณสมบัติผู้ใช้แบบเพิ่มค่า

  • increaseProperty(user, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • ตั้งค่าการเพิ่มค่าสำหรับคุณสมบัติของผู้ใช้
      • เพิ่มค่าให้กับคุณสมบัติผู้ใช้ประเภทตัวเลขหลายรายการ รวมค่าทั้งหมดที่รายงาน เช่น ยอดการใช้จ่ายสะสม
      • อินเทอร์เฟซนี้เรียกใช้ได้เฉพาะคุณสมบัติผู้ใช้ประเภท number เท่านั้น มิฉะนั้นจะถูกละเว้น หากคุณสมบัติผู้ใช้นี้ไม่มีอยู่ก่อนหน้า ค่าตั้งต้นจะถือว่าเป็น 0
    • ตัวอย่างการเรียกใช้:
window.MAInterface.increaseProperty({key:1}, (code, message)=>{})
              
               window.MAInterface.increaseProperty({key:1}, (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

เพิ่มค่าคุณสมบัติผู้ใช้

  • addProperty(key, content completion)
    • คำอธิบายอินเทอร์เฟซ:
      • เพิ่มค่าต่อท้ายคุณสมบัติของผู้ใช้
      • สามารถเพิ่มองค์ประกอบในชุดข้อมูลนี้ได้อย่างต่อเนื่อง องค์ประกอบจะถูกลบค่าซ้ำเมื่อเก็บลงฐานข้อมูล หากมี ABC อยู่แล้วและเพิ่ม CD ผลลัพธ์สุดท้ายจะเป็น ABCD เช่น ข่าวที่ผู้ใช้กดถูกใจ
      • เพิ่มค่าบางอย่างให้กับคุณสมบัติประเภท Array องค์ประกอบใน Array นี้ต้องเป็น string มิฉะนั้นจะถูกละเว้น และหากคุณสมบัติผู้ใช้ที่ต้องการ append ไม่มีอยู่ก่อนหน้า จะสร้าง Array ว่างขึ้นมาก่อน
    • ตัวอย่างการเรียกใช้:
window.MAInterface.addProperty("key",["value1", "value2"], (code, message)=>{})
              
               window.MAInterface.addProperty("key",["value1", "value2"], (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ลบค่าคุณสมบัติผู้ใช้

  • removeProperty(key, content completion)
    • คำอธิบายอินเทอร์เฟซ:
      • ลบค่าหนึ่งหรือหลายค่าจากคุณสมบัติประเภทอาร์เรย์
      • ลบบางค่าจากคุณสมบัติประเภท Array องค์ประกอบใน Array นี้ต้องเป็น string มิฉะนั้นจะถูกละเว้น และหากคุณสมบัติผู้ใช้ที่ต้องการ removeEventListAttrValue ไม่มีอยู่ก่อนหน้า จะไม่มีผลใด ๆ
    • ตัวอย่างการเรียกใช้:
window.MAInterface.removeProperty("key",["value1", "value2"], (code, message)=>{})
              
               window.MAInterface.removeProperty("key",["value1", "value2"], (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

จัดการองค์ประกอบของ object_array

เวอร์ชันที่รองรับ

เวอร์ชันที่เริ่มรองรับ: 2.1.0

วิธีใช้งานต่อไปนี้ใช้กับคุณสมบัติผู้ใช้ประเภท object_array เท่านั้น โดยระบุตำแหน่งองค์ประกอบในอาร์เรย์ผ่านฟิลด์ย่อยที่เป็นตัวระบุเฉพาะ เมื่อ addProperty และ removeProperty รับอาร์เรย์ของสตริง จะยังคงใช้กับอาร์เรย์ของสตริงและพฤติกรรมไม่เปลี่ยนแปลง

  • addProperty(key, object, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • เมื่อพารามิเตอร์ตัวที่สองเป็น object เดี่ยว (ไม่ใช่อาร์เรย์) จะเพิ่มองค์ประกอบหนึ่งรายการต่อท้าย object_array โดยไม่กระทบองค์ประกอบที่มีอยู่
      • object ต้องเป็นออบเจ็กต์ที่ไม่ว่างเปล่า กฎของฟิลด์ย่อยเหมือนกับประเภท object ไม่รองรับการซ้อน object หรือ object_array
      • หากคุณสมบัตินี้ยังไม่ได้กำหนดในคอนโซล MA ฝั่งเซิร์ฟเวอร์จะสร้างเป็นคุณสมบัติประเภท object_array โดยอัตโนมัติและเขียนองค์ประกอบนี้ลงไป หากกำหนดคุณสมบัติแล้วแต่ผู้ใช้ปัจจุบันยังไม่มีค่า จะสร้างอาร์เรย์ด้วยองค์ประกอบนี้รายการเดียว
    • ตัวอย่างการเรียกใช้:
window.MAInterface.addProperty("addresses", { id: "school", city: "Osaka" }, (code, message)=>{})
              
               window.MAInterface.addProperty("addresses", { id: "school", city: "Osaka" }, (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  • updateProperty(key, content, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • ระบุตำแหน่งองค์ประกอบหนึ่งรายการใน object_array ผ่านฟิลด์ย่อยที่เป็นตัวระบุเฉพาะ และผสานอัปเดตฟิลด์ย่อยขององค์ประกอบนั้น
      • โครงสร้างของ content คือ { $identifier_key, $identifier_value, $new_object }:
        • $identifier_key: ชื่อฟิลด์ย่อยที่ใช้ระบุตำแหน่งองค์ประกอบ ฟิลด์ย่อยนี้ต้องถูกกำหนดในคอนโซล MA แล้ว โดยมีประเภทเป็น string หรือ number
        • $identifier_value: ค่าที่ใช้ระบุตำแหน่ง ประเภท string หรือ number หากตรงกันหลายรายการ การอัปเดตจะใช้กับองค์ประกอบที่ตรงกันทั้งหมด
        • newobject:ฟิลด์ย่อยที่ต้องการอัปเดตต้องเป็นออบเจ็กต์ที่ไม่ว่างเปล่าและต้องไม่มีฟิลด์ย่อยที่ตรงกับnew_object: ฟิลด์ย่อยที่ต้องการอัปเดต ต้องเป็นออบเจ็กต์ที่ไม่ว่างเปล่า และต้องไม่มีฟิลด์ย่อยที่ตรงกับ identifier_key ฟิลด์ย่อยที่ไม่ได้ส่งจะคงเดิม การส่งค่าฟิลด์ย่อยเป็น null หมายถึงลบฟิลด์ย่อยนั้น
      • หากไม่มีองค์ประกอบที่ตรงกันในอาร์เรย์ หรือฟิลด์ย่อยไม่สอดคล้องกับการกำหนดคุณสมบัติ ฝั่งเซิร์ฟเวอร์จะส่งคืนความล้มเหลว และจะไม่แก้ไของค์ประกอบอื่น หากตรงกันหลายรายการ จะใช้การอัปเดตเดียวกันกับองค์ประกอบที่ตรงกันทั้งหมด
      • หากคุณสมบัตินี้ยังไม่ได้กำหนด ฝั่งเซิร์ฟเวอร์จะส่งคืนความล้มเหลว (55004) หากกำหนดคุณสมบัติแล้วแต่ผู้ใช้ปัจจุบันยังไม่มีค่าของคุณสมบัตินี้ ฝั่งเซิร์ฟเวอร์จะส่งคืน code=0 แต่ไม่มีการแก้ไข
    • ตัวอย่างการเรียกใช้:
// อัปเดต city ขององค์ประกอบที่ id เป็น home ให้เป็น Tokyo และลบฟิลด์ย่อย zip window.MAInterface.updateProperty("addresses", {$identifier_key:"id", $identifier_value:"home", $new_object:{city:"Tokyo", zip:null}}, (code, message)=>{})
              
               // อัปเดต city ขององค์ประกอบที่ id เป็น home ให้เป็น Tokyo และลบฟิลด์ย่อย zip
 window.MAInterface.updateProperty("addresses", {$identifier_key:"id", $identifier_value:"home", $new_object:{city:"Tokyo", zip:null}}, (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
  • removeProperty(key, content, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • เมื่อพารามิเตอร์ตัวที่สองเป็น { $identifier_key, $identifier_value } จะลบองค์ประกอบที่ตรงกันทั้งรายการออกจาก object_array (หากตรงกันหลายรายการ จะลบองค์ประกอบที่ตรงกันทั้งหมด) โดย content ต้องมีเฉพาะสองฟิลด์นี้เท่านั้น
      • ข้อกำหนดของ identifierkeyและidentifier_key และ identifier_value เหมือนกับ updateProperty
      • หากคุณสมบัตินี้ยังไม่ได้กำหนด ฝั่งเซิร์ฟเวอร์จะส่งคืนความล้มเหลว (55004) หากผู้ใช้ปัจจุบันไม่มีค่าของคุณสมบัตินี้ หรือไม่มีองค์ประกอบที่ตรงกัน ฝั่งเซิร์ฟเวอร์จะละเว้นคำขอนี้และส่งคืน code=0 หากตรงกันหลายรายการ องค์ประกอบที่ตรงกันทั้งหมดจะถูกลบ
    • ตัวอย่างการเรียกใช้:
// ลบองค์ประกอบที่ id เป็น office window.MAInterface.removeProperty("addresses", {$identifier_key:"id", $identifier_value:"office"}, (code, message)=>{})
              
               // ลบองค์ประกอบที่ id เป็น office
 window.MAInterface.removeProperty("addresses", {$identifier_key:"id", $identifier_value:"office"}, (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ลบคุณสมบัติผู้ใช้

การกำหนดอินเทอร์เฟซ

  • deleteProperty(key, completion)
    • คำอธิบายอินเทอร์เฟซ:
      • ลบเนื้อหา value ทั้งหมดของคุณสมบัติผู้ใช้รายการหนึ่ง
      • หากคุณสมบัติผู้ใช้นี้ไม่มีอยู่ก่อนหน้า จะถูกละเว้นโดยตรง

ตัวอย่างการเรียกใช้

window.MAInterface.deleteProperty("key", (code, message)=>{})
              
               window.MAInterface.deleteProperty("key", (code, message)=>{})

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าเวลาหมดอายุของเซสชัน

การกำหนดอินเทอร์เฟซ

  • setSessionTimeout(time)
    • คำอธิบายอินเทอร์เฟซ:
      • ตั้งค่าเวลาหมดอายุของเซสชัน เมื่อหน้าเว็บถูกย้ายไปยังพื้นหลัง จะเริ่มนับเวลาหมดอายุของเซสชัน หากเกินเวลาที่กำหนด (ค่าเริ่มต้น 30 นาที) เซสชันนี้จะสิ้นสุด

ตัวอย่างการเรียกใช้

window.MAInterface.setSessionTimeout(60)
              
               window.MAInterface.setSessionTimeout(60)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตั้งค่าเวลาที่อยู่ในหน้าเว็บ

การกำหนดอินเทอร์เฟซ

  • setPageStayTime(time)
    • คำอธิบายอินเทอร์เฟซ:
      • ตั้งค่าระยะเวลาที่อยู่ในหน้าเว็บ
      • เริ่มนับเวลาหลังจากเข้าสู่หน้าเว็บ หากอยู่ในหน้านี้เป็นเวลา time วินาทีโดยไม่ออกไป จะรายงานเหตุการณ์นั้น
      • โดยค่าเริ่มต้นจะรายงานใน 6 จุดเวลา ได้แก่ 5 วินาที, 30 วินาที, 60 วินาที, 2 นาที, 5 นาที และ 10 นาที นักพัฒนาสามารถเรียกใช้อินเทอร์เฟซนี้เพื่อเพิ่มจุดเวลาเพิ่มเติมได้

ตัวอย่างการเรียกใช้

window.MAInterface.setPageStayTime(60)
              
               window.MAInterface.setPageStayTime(60)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

รายงานเหตุการณ์

หากเหตุการณ์ไม่มีอยู่และรายงานโดยตรง ระบบจะสร้างเหตุการณ์นั้นโดยอัตโนมัติ

การกำหนดอินเทอร์เฟซ

  • onEvent(event)
    • คำอธิบายอินเทอร์เฟซ:
      • รายงานเหตุการณ์
    • คำอธิบายพารามิเตอร์
      • event: เหตุการณ์ที่ต้องการรายงาน name คือชื่อเหตุการณ์ properties คือข้อมูลคุณสมบัติของเหตุการณ์ ซึ่ง Key คือชื่อคุณสมบัติ value คือค่าคุณสมบัติ

ตัวอย่างการเรียกใช้

let event = {name:"name", properties:{key:"value"}} window.MAInterface.onEvent(event)
              
                 let event = {name:"name", properties:{key:"value"}}
    window.MAInterface.onEvent(event)

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย