รวบรวมข้อมูลผู้เล่น
Pushwoosh จำเป็นต้องรู้ว่าผู้เล่นของคุณเป็นใครและทำอะไรในเกม อีเวนต์จะบันทึกการกระทำ ส่วนแท็กจะเก็บสถานะปัจจุบันของผู้เล่นแต่ละคน
ระบุตัวผู้เล่นด้วย User ID
Anchor link toPushwoosh จะเชื่อมโยงอุปกรณ์ทั้งหมดของผู้เล่นเข้ากับ User ID เดียว เซกเมนต์และ Journey ของคุณจึงนับคนหนึ่งคนเป็นผู้เล่นหนึ่งคน อีเวนต์และแท็ก User-specific ที่อุปกรณ์บันทึกไว้ก่อนผู้เล่นเข้าสู่ระบบจะยังคงอยู่กับ ID เดิมของอุปกรณ์ ส่วนแท็ก Device-specific จะย้ายไปพร้อมกับอุปกรณ์
โดยค่าเริ่มต้น Pushwoosh จะใช้ ID ฮาร์ดแวร์ (HWID) ของแต่ละอุปกรณ์เป็น User ID ของอุปกรณ์นั้น ผู้เล่นที่เล่นบนสองอุปกรณ์จึงถูกนับเป็นผู้เล่นสองคน หากต้องการหลีกเลี่ยงกรณีนี้สำหรับผู้เล่นที่เข้าสู่ระบบ ให้ตั้ง ID บัญชีของคุณเองเป็น User ID ของผู้เล่น:
- เลือก ID ที่จะใช้ ใช้ ID บัญชีที่เกมของคุณกำหนดให้ผู้เล่นแต่ละคนอยู่แล้ว
- ขอให้นักพัฒนาเรียก
setUserIdด้วย ID นี้เมื่อผู้เล่นเข้าสู่ระบบ - ตรวจสอบผลลัพธ์ เข้าสู่ระบบเกมบนอุปกรณ์ทดสอบ จากนั้นเปิด กลุ่มเป้าหมาย → User Explorer ค้นหาตาม User Id แล้วป้อน ID บัญชี โปรไฟล์ของผู้เล่นจะเปิดขึ้น
ผู้เล่นที่ไม่เคยเข้าสู่ระบบจะใช้ HWID เป็น User ID ต่อไป และ Pushwoosh จะตั้งค่านี้ให้
หากต้องการเรียนรู้เพิ่มเติมว่า User ID เกี่ยวข้องกับอุปกรณ์อย่างไร โปรดดู ผู้ใช้ (User ID)
ตั้งค่าอีเวนต์ที่จะติดตาม
Anchor link toอีเวนต์คือวิธีที่ Pushwoosh รู้ว่าผู้เล่นทำอะไร ให้สร้างอีเวนต์ก่อน: เซกเมนต์ จะจัดกลุ่มผู้เล่นตามอีเวนต์ที่ผู้เล่นทริกเกอร์ และ Journey จะเริ่มทำงานเมื่อเกิดอีเวนต์
วางแผนทั้งอีเวนต์และแอตทริบิวต์ของอีเวนต์ก่อนสร้างสิ่งใด กิจกรรมที่แนะนำสำหรับแอปเกม มีรายการอีเวนต์เกมสำเร็จรูปพร้อมแอตทริบิวต์ และ อีเวนต์ที่กำหนดเอง อธิบายวิธีกำหนดอีเวนต์ของคุณเอง
อีเวนต์มีสองประเภท:
- อีเวนต์เริ่มต้น: การลงทะเบียนอุปกรณ์ การเปิดแอป การซื้อ และอื่นๆ อีกเล็กน้อย SDK จะส่งอีเวนต์เหล่านี้ และคุณไม่ต้องสร้างใน Control Panel
- อีเวนต์ที่กำหนดเอง: ผ่านด่าน รับรางวัล เปิดร้านค้า และอื่นๆ นักพัฒนาของคุณ ส่งอีเวนต์เหล่านี้จากเกม และ Pushwoosh จะสร้างอีเวนต์แต่ละรายการเมื่อได้รับเป็นครั้งแรก หากต้องการเลือกประเภทแอตทริบิวต์เอง ให้สร้างอีเวนต์ใน Control Panel ก่อน โปรดดู อีเวนต์ที่กำหนดเอง และ อีเวนต์ที่สร้างโดยอัตโนมัติ
อีเวนต์เริ่มต้น
Anchor link toSDK จะส่งอีเวนต์เหล่านี้ให้คุณ คุณต้องใช้อีเวนต์เหล่านี้สำหรับ Journey ส่วนใหญ่ในเพลย์บุ๊กนี้ ได้แก่ การเริ่มต้นใช้งาน การดึงผู้เล่นกลับมา และข้อเสนอการซื้อ
PW_DeviceRegistered: อุปกรณ์ได้รับ push token แรก SDK จะขอ token ก็ต่อเมื่อเกมเรียกregisterForPushNotificationsซึ่งบน iOS จะแสดงข้อความขออนุญาตด้วย และ token จะมาถึงไม่ว่าผู้เล่นจะตอบอย่างไร หากเกมขออนุญาตหลังการเปิดครั้งแรก อีเวนต์จะทำงานในตอนนั้น ไม่ใช่ตอนติดตั้ง หากต้องการจับผู้เล่นใหม่ ให้ใช้อีเวนต์Tutorial startedแทนPW_ApplicationOpen: ผู้เล่นเปิดเกม คุณต้องใช้อีเวนต์นี้เพื่อหาผู้เล่นที่ยังเล่นอยู่และผู้เล่นที่เลิกเล่นไปแล้ว เพื่อดึงพวกเขากลับมาPW_InAppPurchase: ผู้เล่นซื้อบางอย่างในเกม คุณต้องใช้อีเวนต์นี้เพื่อแยกผู้เล่นที่จ่ายเงินออกจากผู้เล่นที่ไม่จ่ายเงิน เช่น เพื่อเสนอการซื้อครั้งแรกเฉพาะผู้เล่นที่ไม่เคยจ่ายเงิน นักพัฒนาจะเปิดการติดตามการซื้อใน iOS SDK หรือส่งการซื้อจากโค้ด และบน Android จะส่งจากโค้ดเสมอ บน iOS อีเวนต์นี้จะทำงานเฉพาะกับผลิตภัณฑ์ที่กำหนดค่าไว้ใน App Store Connect- ไม่บังคับ:
PW_UserIdle: ทำงานเมื่อผู้เล่นหยุดแตะหน้าจอตามระยะเวลาที่คุณกำหนด อย่างน้อย 30 วินาที ใช้เริ่ม Journey ที่แสดงคำแนะนำแบบ in-app เมื่อผู้เล่นติดขัด นักพัฒนาจะเปิดใช้ในการกำหนดค่า SDK - ไม่บังคับ:
PW_ApplicationExit: ทำงานเมื่อผู้เล่นออกจากเกมและไม่กลับมาภายใน 10 ถึง 30 วินาที ใช้เริ่ม Journey การดึงผู้เล่นกลับมาสำหรับผู้เล่นที่ออกไประหว่างทาง นักพัฒนาจะเปิดใช้ในการกำหนดค่า SDK
อีเวนต์จะปรากฏใน กลุ่มเป้าหมาย → อีเวนต์ หลังจาก SDK ส่งอีเวนต์นั้นเป็นครั้งแรก
หากต้องการเพิ่มอีเวนต์เริ่มต้นอื่นๆ ลงในรายการล่วงหน้า เช่น เพื่อสร้างเซกเมนต์ก่อนที่การอัปเดตเกมจะเผยแพร่:
- เปิด กลุ่มเป้าหมาย → อีเวนต์ แล้วคลิก สร้างเหตุการณ์
- เลือก เหตุการณ์เริ่มต้น
- เลือกอีเวนต์แล้วคลิก เปิดใช้งาน
รายการในขั้นตอนที่ 3 ไม่มี PW_UserIdle และ PW_ApplicationExit อีเวนต์ทั้งสองจะปรากฏใน กลุ่มเป้าหมาย → อีเวนต์ หลังจาก SDK ส่งเป็นครั้งแรกเท่านั้น
สำหรับรายละเอียดเกี่ยวกับอีเวนต์เหล่านี้และอีเวนต์เริ่มต้นอื่นๆ โปรดดู อีเวนต์เริ่มต้น
อีเวนต์ที่กำหนดเอง
Anchor link toอีเวนต์ที่กำหนดเองจะบันทึกสิ่งที่เกิดขึ้นในเกม เช่น การผ่านด่าน คุณเลือกว่าเกมต้องใช้อีเวนต์ใด นักพัฒนาเป็นผู้ส่ง และคุณตรวจสอบว่าอีเวนต์มาถึง
เลือกอีเวนต์ที่จะติดตาม
Anchor link toเลือกอีเวนต์ที่เกมของคุณต้องใช้และแอตทริบิวต์ที่แต่ละอีเวนต์มี เช่น level_id สำหรับ Level completed ตารางนี้แสดงตัวอย่าง: ใช้ตามเดิม เปลี่ยนชื่อ หรือเพิ่มอีเวนต์ของคุณเอง ติดตามเฉพาะอีเวนต์ที่ Journey ที่คุณเปิดใช้ต้องการ
| อีเวนต์ | ทำงานเมื่อใด | แอตทริบิวต์หลัก | ใช้ขับเคลื่อนอะไร |
|---|---|---|---|
| New level | ผู้เล่นไปถึงด่านใหม่ | level_id (String) | ไม่บังคับ: เซกเมนต์ตามหมุดหมายของคุณเอง |
| Level completed | ผู้เล่นผ่านด่าน | level_id (String) | เซกเมนต์ผู้เล่นที่มีส่วนร่วมแต่ยังไม่จ่ายและผู้เล่นที่ติดด่าน, Journey ความช่วยเหลือสำหรับผู้เล่นที่ติดด่าน |
| Level failed | ผู้เล่นผ่านด่านไม่สำเร็จ | level_id (String) | เซกเมนต์และ Journey ผู้เล่นที่ติดด่าน |
| Tutorial started | ผู้เล่นเริ่มบทสอนในเกม | tutorial_name (String) | Journey การเริ่มต้นใช้งาน, เซกเมนต์ผู้เล่นที่ทิ้งบทสอน |
| Tutorial completed | ผู้เล่นจบบทสอนในเกม | tutorial_name (String), completion (Boolean) | Journey การเริ่มต้นใช้งาน, โฟลว์ขอสิทธิ์การแจ้งเตือนแบบพุช |
| Virtual currency earned | ยอดสกุลเงินในเกมของผู้เล่นเพิ่มขึ้น | currency_name (String), quantity (Integer) | ไม่บังคับ: เซกเมนต์ตามสกุลเงินของคุณเอง |
| Achievement unlocked | ผู้เล่นปลดล็อกความสำเร็จ | achievement_name (String), level (Integer) | เซกเมนต์นักล่าความสำเร็จ |
| Daily reward claimed | ผู้เล่นรับรางวัลรายวัน | day_number (Integer) | Journey เตือนรับรางวัลรายวัน |
| Live event joined | ผู้เล่นเข้าร่วมไลฟ์อีเวนต์ | event_id (String) | เป้าหมาย Conversion ของ Journey ไลฟ์อีเวนต์ |
| Store opened | ผู้เล่นเปิดร้านค้าในเกม | section (String) | Journey สำหรับผู้เล่นที่ออกจากร้านค้าโดยไม่ซื้อ |
ส่งอีเวนต์จากเกม
Anchor link toตกลงกับนักพัฒนาว่าเกมจะส่งอีเวนต์ใดบ้างและแต่ละอีเวนต์มีแอตทริบิวต์ใด ชื่อของอีเวนต์และแอตทริบิวต์ต้องตรงกันทุกตัวอักษร
ตัวอย่างเช่น นี่คือวิธีที่เกมส่ง Level completed พร้อมแอตทริบิวต์ level_id:
TagsBundle attributes = new TagsBundle.Builder() .putString("level_id", "12") .build();
InAppManager.getInstance().postEvent("Level completed", attributes);PWInAppManager.shared().postEvent("Level completed", withAttributes: ["level_id": "12"])หากอีเวนต์เกิดขึ้นบนเซิร์ฟเวอร์ที่ส่งเว็บฮุกของตัวเองอยู่แล้ว เช่น แบ็กเอนด์ของเกมหรือบริการทัวร์นาเมนต์ อีเวนต์นั้นสามารถส่งถึง Pushwoosh ผ่าน Inbound webhook แทน postEvent ได้ คุณแมปฟิลด์ที่ส่งมากับอีเวนต์ของ Pushwoosh ใน Control Panel และอีเวนต์นั้นจะเริ่ม Journey ได้เหมือนอีเวนต์อื่นๆ
หากต้องการตรวจสอบว่าอีเวนต์มาถึงแล้ว ให้เปิด กลุ่มเป้าหมาย → User Explorer หาผู้เล่นทดสอบ แล้วเปิดแท็บ ประวัติเหตุการณ์
ติดตามรายได้เป็น PW_Conversion
Anchor link toPW_Conversion บันทึกจำนวนเงินและสกุลเงินของการซื้อทุกครั้งในรูปแบบเดียวกัน คุณต้องใช้สำหรับเป้าหมายรายได้ใน Journey และสำหรับระดับการใช้จ่ายใน การแบ่งกลุ่มแบบ RFM ซึ่งจัดกลุ่มผู้เล่นตามความล่าสุด ความถี่ และยอดเงินที่ซื้อ
การซื้อที่ iOS SDK ติดตามจะเข้าสู่ PW_Conversion เองโดยอัตโนมัติ เพราะมีแอตทริบิวต์ __amount และ __currency การซื้อจาก Android ต้องใช้วิธีใดวิธีหนึ่งต่อไปนี้:
- หากเกมของคุณทำงานทั้งบน iOS และ Android ให้ขอให้นักพัฒนาส่งการซื้อบน Android เป็น
PW_InAppPurchaseพร้อมแอตทริบิวต์ตัวเลข__amountและ__currencyผ่านpostEventแทนเมธอดการซื้อของ SDK แล้วการแมปอัตโนมัติแบบเดียวกันจะครอบคลุมทั้งสองแพลตฟอร์ม - หากเกมของคุณทำงานบน Android เท่านั้น ให้แมปการซื้อเองโดยไม่ต้องเขียนโค้ดใหม่ อีเวนต์หนึ่งรายการเก็บการแมปได้เพียงชุดเดียว ดังนั้นในเกมที่มีการซื้อบน iOS การแมปด้วยตนเองจะแทนที่การแมปอัตโนมัติ
หากต้องการแมปการซื้อเอง:
- เปิด กลุ่มเป้าหมาย → อีเวนต์ แล้วเปิดการตั้งค่าอีเวนต์ Conversion
- เพิ่ม
PW_InAppPurchaseเป็นอีเวนต์ Conversion - เลือกแอตทริบิวต์ที่เก็บ ราคา และ สกุลเงิน
- คลิก นำไปใช้
สำหรับตัวเลือกการตั้งค่าทั้งหมด โปรดดู อีเวนต์ Conversion
ติดตามการสมัครสมาชิกจากสโตร์
Anchor link toหากเกมของคุณขายการสมัครสมาชิก เช่น VIP pass หรือ battle pass Pushwoosh จะได้รับการเปลี่ยนแปลงสถานะจาก App Store และ Google Play การเปลี่ยนแปลงแต่ละครั้งจะมาถึงเป็นอีเวนต์ PW_Subscription* ตัวอย่างเช่น:
PW_SubscriptionStart: ผู้เล่นสมัครสมาชิกPW_SubscriptionCancel: ผู้เล่นปิดการต่ออายุอัตโนมัติPW_SubscriptionBillingIssue: การชำระเงินเพื่อต่ออายุล้มเหลว
ใช้อีเวนต์เหล่านี้เพื่อเริ่ม Journey เช่น การแจ้งเตือนก่อนที่ pass ที่ยกเลิกแล้วจะหมดอายุ
อีเวนต์เหล่านี้ครอบคลุมเฉพาะการสมัครสมาชิก การซื้อครั้งเดียว เช่น แพ็กเหรียญ ยังคงมาถึงเป็น PW_InAppPurchase
จัดเก็บข้อมูลผู้เล่นในแท็ก
Anchor link toแท็ก คือค่าที่ Pushwoosh จัดเก็บไว้ในโปรไฟล์ของผู้เล่น เช่น ด่านของผู้เล่นหรือผู้เล่นเคยจ่ายเงินหรือไม่ อีเวนต์จะบันทึกสิ่งที่เกิดขึ้น ส่วนแท็กจะเก็บสถานะปัจจุบัน แท็กช่วยให้คุณ:
- ส่งข้อความเฉพาะผู้เล่นที่มีค่าบางอย่าง เช่น ส่งข้อเสนอเฉพาะผู้เล่นที่จ่ายเงิน
- ใส่ค่าลงในข้อความ เช่น ด่านของผู้เล่น โปรดดู สร้าง Journey
แท็กเป็นตัวเลือกเสริม Journey ในเพลย์บุ๊กนี้ทำงานด้วยอีเวนต์และแท็กเริ่มต้นที่ Pushwoosh ตั้งค่าเอง ดังนั้นในช่วงแรกคุณจึงข้ามแท็กของคุณเองไปได้ เพิ่มแท็กเมื่อคุณต้องการวิธีจัดกลุ่มผู้เล่นมากขึ้น โปรดดู เซกเมนต์ตามแท็ก
แท็กของคุณเอง
Anchor link toนักพัฒนาจะส่งค่าแท็กจากเกม หรือคุณสามารถ นำเข้าค่าจากไฟล์ CSV ได้ Pushwoosh จะสร้างแท็กเป็นแท็ก User-specific เมื่อนักพัฒนาส่งแท็กนั้นเป็นครั้งแรก หากต้องการเลือกประเภทของแท็กเอง ให้สร้างแท็กใน Control Panel ก่อน โปรดดู จัดการข้อมูลผู้ใช้ด้วย Tag
แท็กเหล่านี้เป็นตัวอย่าง เปลี่ยนชื่อให้ตรงกับคำศัพท์ในเกมของคุณ และเพิ่มแท็กของคุณเอง:
| แท็ก | ประเภท | ตัวอย่าง | ใช้ขับเคลื่อนอะไร |
|---|---|---|---|
player_level | Integer | 12 | กรองข้อความตามระดับความก้าวหน้า |
is_paying_user | Boolean | true | แยกข้อความสำหรับผู้เล่นที่จ่ายเงินและไม่จ่ายเงิน |
soft_currency_balance | Integer | 1500 | เสนอแพ็กสกุลเงินให้ผู้เล่นที่ยอดคงเหลือต่ำ |
vip_tier | String | gold | มอบข้อเสนอเฉพาะและสิทธิ์เข้าถึงก่อนให้ผู้เล่น VIP |
favorite_mode | String | pvp | ประกาศไลฟ์อีเวนต์สำหรับโหมดที่ผู้เล่นชอบ |
เมื่อคุณสร้างแท็กใน Control Panel ให้เปิด เฉพาะผู้ใช้ ไว้ตามค่าเริ่มต้น จากนั้น Pushwoosh จะเก็บค่าหนึ่งค่าต่อ User ID ค่าจึงเป็นของผู้เล่น ไม่ใช่ของอุปกรณ์เครื่องใดเครื่องหนึ่ง หากปิด เฉพาะผู้ใช้ อุปกรณ์แต่ละเครื่องจะเก็บค่าของตัวเอง โปรดดู ระบุตัวผู้เล่นด้วย User ID
แท็กเริ่มต้น
Anchor link toPushwoosh จัดเก็บ แท็กเริ่มต้น เหล่านี้สำหรับทุกอุปกรณ์ คุณจึงไม่ต้องสร้างเอง:
- Language: ภาษาของอุปกรณ์ Pushwoosh ใช้แท็กนี้เพื่อส่งข้อความถึงผู้เล่นแต่ละคนในภาษาของผู้เล่น
- Last Application Open: เวลาที่เปิดเกมบนอุปกรณ์ครั้งล่าสุด ใช้เพื่อหาผู้เล่นที่เลิกเล่นแล้ว
- Push Alerts Enabled: อนุญาตการแจ้งเตือนในการตั้งค่าอุปกรณ์หรือไม่ ใช้เพื่อแสดงข้อความ in-app เฉพาะผู้เล่นที่ยังไม่อนุญาต
- First Install: เวลาที่ติดตั้งเกมบนอุปกรณ์เป็นครั้งแรก ใช้สำหรับวันครบรอบการติดตั้ง
- Country: ประเทศของอุปกรณ์ ใช้เพื่อส่งข้อเสนอหรือประกาศไลฟ์อีเวนต์เฉพาะผู้เล่นในภูมิภาคเดียว