คู่มือ 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)
email และ phone ในที่นี้ใช้สำหรับจับคู่ตัวตนของผู้ใช้ และอาจส่งคืน EUID ใหม่ ไม่สามารถใช้แทนกันได้กับข้อมูลติดต่อที่ตั้งค่าผ่าน「ตั้งค่าข้อมูลติดต่อผู้ใช้」(setUserContact)
รับ EUID
การกำหนดอินเทอร์เฟซ
- + EUID()
- คำอธิบายอินเทอร์เฟซ:
- รับ EUID ของ EngageLab MA
- คำอธิบายอินเทอร์เฟซ:
ตัวอย่างการเรียกใช้
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)
ตั้งค่า 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)=>{})
สวิตช์การรวบรวมข้อมูล
เวอร์ชันที่รองรับ
เวอร์ชันที่เริ่มรองรับ: 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
- enabled:
- คำอธิบายการเรียกใช้:
- เมื่อค่าที่ตั้งเหมือนกับสถานะปัจจุบัน จะไม่ทริกเกอร์การประมวลผลการสลับ ดังนั้นการซิงก์ตัวเลือกของผู้ใช้ทุกครั้งที่โหลดหน้าจึงไม่ส่งผลกระทบเพิ่มเติม
- เมื่อสลับจากเปิดเป็นปิด 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()
ตั้งค่าคุณสมบัติ UTM
การกำหนดอินเทอร์เฟซ
- setUtmProperties(attrs:any)
- คำอธิบายอินเทอร์เฟซ:
- คุณสมบัติ UTM เป็นคุณสมบัติมาตรฐานของเหตุการณ์ หากนักพัฒนาสามารถระบุได้ว่าผู้ใช้มาจากโฆษณาใดเมื่อเข้าสู่แอป ขอแนะนำให้ตั้งค่าข้อมูล UTM เราจะส่งพารามิเตอร์นี้เมื่อรายงานเหตุการณ์ ปัจจุบันสามารถตั้งค่าคุณสมบัติ UTM ได้ดังนี้:
- utm_source: แหล่งที่มาของแคมเปญโฆษณา
- utm_medium: สื่อของแคมเปญโฆษณา
- utm_term: คำหลักของแคมเปญโฆษณา
- utm_content: เนื้อหาของแคมเปญโฆษณา
- utm_campaign: ชื่อของแคมเปญโฆษณา
- utm_id: ID ของแคมเปญโฆษณา
- คุณสมบัติ UTM เป็นคุณสมบัติมาตรฐานของเหตุการณ์ หากนักพัฒนาสามารถระบุได้ว่าผู้ใช้มาจากโฆษณาใดเมื่อเข้าสู่แอป ขอแนะนำให้ตั้งค่าข้อมูล UTM เราจะส่งพารามิเตอร์นี้เมื่อรายงานเหตุการณ์ ปัจจุบันสามารถตั้งค่าคุณสมบัติ UTM ได้ดังนี้:
- คำอธิบายอินเทอร์เฟซ:
ตัวอย่างการเรียกใช้
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)=>{})
กฎของ 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)=>{})
อัปเดตคุณสมบัติผู้ใช้แบบเพิ่มค่า
- increaseProperty(user, completion)
- คำอธิบายอินเทอร์เฟซ:
- ตั้งค่าการเพิ่มค่าสำหรับคุณสมบัติของผู้ใช้
- เพิ่มค่าให้กับคุณสมบัติผู้ใช้ประเภทตัวเลขหลายรายการ รวมค่าทั้งหมดที่รายงาน เช่น ยอดการใช้จ่ายสะสม
- อินเทอร์เฟซนี้เรียกใช้ได้เฉพาะคุณสมบัติผู้ใช้ประเภท number เท่านั้น มิฉะนั้นจะถูกละเว้น หากคุณสมบัติผู้ใช้นี้ไม่มีอยู่ก่อนหน้า ค่าตั้งต้นจะถือว่าเป็น 0
- ตัวอย่างการเรียกใช้:
- คำอธิบายอินเทอร์เฟซ:
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)=>{})
ลบค่าคุณสมบัติผู้ใช้
- removeProperty(key, content completion)
- คำอธิบายอินเทอร์เฟซ:
- ลบค่าหนึ่งหรือหลายค่าจากคุณสมบัติประเภทอาร์เรย์
- ลบบางค่าจากคุณสมบัติประเภท Array องค์ประกอบใน Array นี้ต้องเป็น string มิฉะนั้นจะถูกละเว้น และหากคุณสมบัติผู้ใช้ที่ต้องการ removeEventListAttrValue ไม่มีอยู่ก่อนหน้า จะไม่มีผลใด ๆ
- ตัวอย่างการเรียกใช้:
- คำอธิบายอินเทอร์เฟซ:
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)=>{})
- updateProperty(key, content, completion)
- คำอธิบายอินเทอร์เฟซ:
- ระบุตำแหน่งองค์ประกอบหนึ่งรายการใน object_array ผ่านฟิลด์ย่อยที่เป็นตัวระบุเฉพาะ และผสานอัปเดตฟิลด์ย่อยขององค์ประกอบนั้น
- โครงสร้างของ content คือ
{ $identifier_key, $identifier_value, $new_object }:- $identifier_key: ชื่อฟิลด์ย่อยที่ใช้ระบุตำแหน่งองค์ประกอบ ฟิลด์ย่อยนี้ต้องถูกกำหนดในคอนโซล MA แล้ว โดยมีประเภทเป็น string หรือ number
- $identifier_value: ค่าที่ใช้ระบุตำแหน่ง ประเภท string หรือ number หากตรงกันหลายรายการ การอัปเดตจะใช้กับองค์ประกอบที่ตรงกันทั้งหมด
- 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)=>{})
- removeProperty(key, content, completion)
- คำอธิบายอินเทอร์เฟซ:
- เมื่อพารามิเตอร์ตัวที่สองเป็น
{ $identifier_key, $identifier_value }จะลบองค์ประกอบที่ตรงกันทั้งรายการออกจาก object_array (หากตรงกันหลายรายการ จะลบองค์ประกอบที่ตรงกันทั้งหมด) โดย content ต้องมีเฉพาะสองฟิลด์นี้เท่านั้น - ข้อกำหนดของ identifier_value เหมือนกับ updateProperty
- หากคุณสมบัตินี้ยังไม่ได้กำหนด ฝั่งเซิร์ฟเวอร์จะส่งคืนความล้มเหลว (55004) หากผู้ใช้ปัจจุบันไม่มีค่าของคุณสมบัตินี้ หรือไม่มีองค์ประกอบที่ตรงกัน ฝั่งเซิร์ฟเวอร์จะละเว้นคำขอนี้และส่งคืน code=0 หากตรงกันหลายรายการ องค์ประกอบที่ตรงกันทั้งหมดจะถูกลบ
- เมื่อพารามิเตอร์ตัวที่สองเป็น
- ตัวอย่างการเรียกใช้:
- คำอธิบายอินเทอร์เฟซ:
// ลบองค์ประกอบที่ id เป็น office
window.MAInterface.removeProperty("addresses", {$identifier_key:"id", $identifier_value:"office"}, (code, message)=>{})
ลบคุณสมบัติผู้ใช้
การกำหนดอินเทอร์เฟซ
- deleteProperty(key, completion)
- คำอธิบายอินเทอร์เฟซ:
- ลบเนื้อหา value ทั้งหมดของคุณสมบัติผู้ใช้รายการหนึ่ง
- หากคุณสมบัติผู้ใช้นี้ไม่มีอยู่ก่อนหน้า จะถูกละเว้นโดยตรง
- คำอธิบายอินเทอร์เฟซ:
ตัวอย่างการเรียกใช้
window.MAInterface.deleteProperty("key", (code, message)=>{})
ตั้งค่าเวลาหมดอายุของเซสชัน
การกำหนดอินเทอร์เฟซ
- setSessionTimeout(time)
- คำอธิบายอินเทอร์เฟซ:
- ตั้งค่าเวลาหมดอายุของเซสชัน เมื่อหน้าเว็บถูกย้ายไปยังพื้นหลัง จะเริ่มนับเวลาหมดอายุของเซสชัน หากเกินเวลาที่กำหนด (ค่าเริ่มต้น 30 นาที) เซสชันนี้จะสิ้นสุด
- คำอธิบายอินเทอร์เฟซ:
ตัวอย่างการเรียกใช้
window.MAInterface.setSessionTimeout(60)
ตั้งค่าเวลาที่อยู่ในหน้าเว็บ
การกำหนดอินเทอร์เฟซ
- setPageStayTime(time)
- คำอธิบายอินเทอร์เฟซ:
- ตั้งค่าระยะเวลาที่อยู่ในหน้าเว็บ
- เริ่มนับเวลาหลังจากเข้าสู่หน้าเว็บ หากอยู่ในหน้านี้เป็นเวลา time วินาทีโดยไม่ออกไป จะรายงานเหตุการณ์นั้น
- โดยค่าเริ่มต้นจะรายงานใน 6 จุดเวลา ได้แก่ 5 วินาที, 30 วินาที, 60 วินาที, 2 นาที, 5 นาที และ 10 นาที นักพัฒนาสามารถเรียกใช้อินเทอร์เฟซนี้เพื่อเพิ่มจุดเวลาเพิ่มเติมได้
- คำอธิบายอินเทอร์เฟซ:
ตัวอย่างการเรียกใช้
window.MAInterface.setPageStayTime(60)
รายงานเหตุการณ์
หากเหตุการณ์ไม่มีอยู่และรายงานโดยตรง ระบบจะสร้างเหตุการณ์นั้นโดยอัตโนมัติ
การกำหนดอินเทอร์เฟซ
- onEvent(event)
- คำอธิบายอินเทอร์เฟซ:
- รายงานเหตุการณ์
- คำอธิบายพารามิเตอร์
- event: เหตุการณ์ที่ต้องการรายงาน name คือชื่อเหตุการณ์ properties คือข้อมูลคุณสมบัติของเหตุการณ์ ซึ่ง Key คือชื่อคุณสมบัติ value คือค่าคุณสมบัติ
- คำอธิบายอินเทอร์เฟซ:
ตัวอย่างการเรียกใช้
let event = {name:"name", properties:{key:"value"}}
window.MAInterface.onEvent(event)










