# รวบรวมข้อมูลผู้เล่น

Pushwoosh จำเป็นต้องรู้ว่าผู้เล่นของคุณเป็นใครและทำอะไรในเกม อีเวนต์จะบันทึกการกระทำ ส่วนแท็กจะเก็บสถานะปัจจุบันของผู้เล่นแต่ละคน

<Aside type="tip" title="ให้ AI Assistant สร้างอีเวนต์และแท็กให้">
[AI Assistant](/th/product/pushwoosh-ai/ai-assistant/) สามารถสร้างอีเวนต์และแท็กจากหน้านี้ในแอปพลิเคชันของคุณได้ ส่งลิงก์ของหน้านี้ให้ แล้วขอให้ตั้งแท็กเป็น User-specific ตรวจสอบการเปลี่ยนแปลงแต่ละรายการก่อนอนุมัติ
</Aside>

<span id="identify-players-by-user-id" />

## ระบุตัวผู้เล่นด้วย User ID

<Aside type="caution" icon="setting" title="ต้องการความช่วยเหลือจากนักพัฒนา">
การตั้งค่า User ID เป็นการเปลี่ยนแปลงในโค้ดของเกม โปรดแชร์ [การเก็บ User ID](/th/developer/first-steps/collecting-user-ids/#setuserid-sdk-method) ให้กับนักพัฒนาของคุณ
</Aside>

Pushwoosh จะเชื่อมโยงอุปกรณ์ทั้งหมดของผู้เล่นเข้ากับ User ID เดียว เซกเมนต์และ Journey ของคุณจึงนับคนหนึ่งคนเป็นผู้เล่นหนึ่งคน อีเวนต์และแท็ก User-specific ที่อุปกรณ์บันทึกไว้ก่อนผู้เล่นเข้าสู่ระบบจะยังคงอยู่กับ ID เดิมของอุปกรณ์ ส่วนแท็ก Device-specific จะย้ายไปพร้อมกับอุปกรณ์

โดยค่าเริ่มต้น Pushwoosh จะใช้ ID ฮาร์ดแวร์ (HWID) ของแต่ละอุปกรณ์เป็น User ID ของอุปกรณ์นั้น ผู้เล่นที่เล่นบนสองอุปกรณ์จึงถูกนับเป็นผู้เล่นสองคน หากต้องการหลีกเลี่ยงกรณีนี้สำหรับผู้เล่นที่เข้าสู่ระบบ ให้ตั้ง ID บัญชีของคุณเองเป็น User ID ของผู้เล่น:

1. เลือก ID ที่จะใช้ ใช้ ID บัญชีที่เกมของคุณกำหนดให้ผู้เล่นแต่ละคนอยู่แล้ว
2. ขอให้นักพัฒนาเรียก `setUserId` ด้วย ID นี้เมื่อผู้เล่นเข้าสู่ระบบ
3. ตรวจสอบผลลัพธ์ เข้าสู่ระบบเกมบนอุปกรณ์ทดสอบ จากนั้นเปิด **กลุ่มเป้าหมาย** → **User Explorer** ค้นหาตาม **User Id** แล้วป้อน ID บัญชี โปรไฟล์ของผู้เล่นจะเปิดขึ้น

ผู้เล่นที่ไม่เคยเข้าสู่ระบบจะใช้ HWID เป็น User ID ต่อไป และ Pushwoosh จะตั้งค่านี้ให้

หากต้องการเรียนรู้เพิ่มเติมว่า User ID เกี่ยวข้องกับอุปกรณ์อย่างไร โปรดดู [ผู้ใช้ (User ID)](/th/product/pushwoosh-knowledge-hub/users-userids/)

<span id="set-up-the-events-to-track" />

## ตั้งค่าอีเวนต์ที่จะติดตาม

อีเวนต์คือวิธีที่ Pushwoosh รู้ว่าผู้เล่นทำอะไร ให้สร้างอีเวนต์ก่อน: [เซกเมนต์](/th/tutorials/industry-playbooks/mobile-games/build-the-segments/) จะจัดกลุ่มผู้เล่นตามอีเวนต์ที่ผู้เล่นทริกเกอร์ และ [Journey](/th/tutorials/industry-playbooks/mobile-games/build-the-journeys/) จะเริ่มทำงานเมื่อเกิดอีเวนต์

วางแผนทั้งอีเวนต์และแอตทริบิวต์ของอีเวนต์ก่อนสร้างสิ่งใด [กิจกรรมที่แนะนำสำหรับแอปเกม](/th/product/audience-data-and-segmentation/events/recommended-events-for-gaming-apps/) มีรายการอีเวนต์เกมสำเร็จรูปพร้อมแอตทริบิวต์ และ [อีเวนต์ที่กำหนดเอง](/th/product/audience-data-and-segmentation/events/custom-events/) อธิบายวิธีกำหนดอีเวนต์ของคุณเอง

อีเวนต์มีสองประเภท:

* [อีเวนต์เริ่มต้น](#default-events): การลงทะเบียนอุปกรณ์ การเปิดแอป การซื้อ และอื่นๆ อีกเล็กน้อย SDK จะส่งอีเวนต์เหล่านี้ และคุณไม่ต้องสร้างใน Control Panel
* [อีเวนต์ที่กำหนดเอง](#custom-events): ผ่านด่าน รับรางวัล เปิดร้านค้า และอื่นๆ นักพัฒนาของคุณ [ส่งอีเวนต์เหล่านี้จากเกม](#send-the-events-from-the-game) และ Pushwoosh จะสร้างอีเวนต์แต่ละรายการเมื่อได้รับเป็นครั้งแรก หากต้องการเลือกประเภทแอตทริบิวต์เอง ให้สร้างอีเวนต์ใน Control Panel ก่อน โปรดดู [อีเวนต์ที่กำหนดเอง](/th/product/audience-data-and-segmentation/events/custom-events/) และ [อีเวนต์ที่สร้างโดยอัตโนมัติ](/th/product/audience-data-and-segmentation/events/#events-created-automatically)

<span id="default-events" />

### อีเวนต์เริ่มต้น

SDK จะส่งอีเวนต์เหล่านี้ให้คุณ คุณต้องใช้อีเวนต์เหล่านี้สำหรับ Journey ส่วนใหญ่ในเพลย์บุ๊กนี้ ได้แก่ การเริ่มต้นใช้งาน การดึงผู้เล่นกลับมา และข้อเสนอการซื้อ

* [`PW_DeviceRegistered`](/th/product/audience-data-and-segmentation/events/default-events/#pw_deviceregistered): อุปกรณ์ได้รับ push token แรก SDK จะขอ token ก็ต่อเมื่อเกมเรียก `registerForPushNotifications` ซึ่งบน iOS จะแสดงข้อความขออนุญาตด้วย และ token จะมาถึงไม่ว่าผู้เล่นจะตอบอย่างไร หากเกมขออนุญาตหลังการเปิดครั้งแรก อีเวนต์จะทำงานในตอนนั้น ไม่ใช่ตอนติดตั้ง หากต้องการจับผู้เล่นใหม่ ให้ใช้อีเวนต์ `Tutorial started` แทน
* [`PW_ApplicationOpen`](/th/product/audience-data-and-segmentation/events/default-events/#pw_applicationopen): ผู้เล่นเปิดเกม คุณต้องใช้อีเวนต์นี้เพื่อหาผู้เล่นที่ยังเล่นอยู่และผู้เล่นที่เลิกเล่นไปแล้ว เพื่อดึงพวกเขากลับมา
* [`PW_InAppPurchase`](/th/product/audience-data-and-segmentation/events/default-events/#pw_inapppurchase): ผู้เล่นซื้อบางอย่างในเกม คุณต้องใช้อีเวนต์นี้เพื่อแยกผู้เล่นที่จ่ายเงินออกจากผู้เล่นที่ไม่จ่ายเงิน เช่น เพื่อเสนอการซื้อครั้งแรกเฉพาะผู้เล่นที่ไม่เคยจ่ายเงิน นักพัฒนาจะเปิดการติดตามการซื้อใน iOS SDK หรือส่งการซื้อจากโค้ด และบน Android จะส่งจากโค้ดเสมอ บน iOS อีเวนต์นี้จะทำงานเฉพาะกับผลิตภัณฑ์ที่กำหนดค่าไว้ใน App Store Connect
* ไม่บังคับ: [`PW_UserIdle`](/th/product/audience-data-and-segmentation/events/default-events/#pw_useridle): ทำงานเมื่อผู้เล่นหยุดแตะหน้าจอตามระยะเวลาที่คุณกำหนด อย่างน้อย 30 วินาที ใช้เริ่ม Journey ที่แสดงคำแนะนำแบบ in-app เมื่อผู้เล่นติดขัด นักพัฒนาจะเปิดใช้ในการกำหนดค่า SDK
* ไม่บังคับ: [`PW_ApplicationExit`](/th/product/audience-data-and-segmentation/events/default-events/#pw_applicationexit): ทำงานเมื่อผู้เล่นออกจากเกมและไม่กลับมาภายใน 10 ถึง 30 วินาที ใช้เริ่ม Journey การดึงผู้เล่นกลับมาสำหรับผู้เล่นที่ออกไประหว่างทาง นักพัฒนาจะเปิดใช้ในการกำหนดค่า SDK

อีเวนต์จะปรากฏใน **กลุ่มเป้าหมาย** → **อีเวนต์** หลังจาก SDK ส่งอีเวนต์นั้นเป็นครั้งแรก

หากต้องการเพิ่มอีเวนต์เริ่มต้นอื่นๆ ลงในรายการล่วงหน้า เช่น เพื่อสร้างเซกเมนต์ก่อนที่การอัปเดตเกมจะเผยแพร่:

1. เปิด **กลุ่มเป้าหมาย** → **อีเวนต์** แล้วคลิก **สร้างเหตุการณ์**
2. เลือก **เหตุการณ์เริ่มต้น**
3. เลือกอีเวนต์แล้วคลิก **เปิดใช้งาน**

รายการในขั้นตอนที่ 3 ไม่มี `PW_UserIdle` และ `PW_ApplicationExit` อีเวนต์ทั้งสองจะปรากฏใน **กลุ่มเป้าหมาย** → **อีเวนต์** หลังจาก SDK ส่งเป็นครั้งแรกเท่านั้น


สำหรับรายละเอียดเกี่ยวกับอีเวนต์เหล่านี้และอีเวนต์เริ่มต้นอื่นๆ โปรดดู [อีเวนต์เริ่มต้น](/th/product/audience-data-and-segmentation/events/default-events/)

<span id="custom-events" />

### อีเวนต์ที่กำหนดเอง

อีเวนต์ที่กำหนดเองจะบันทึกสิ่งที่เกิดขึ้นในเกม เช่น การผ่านด่าน คุณเลือกว่าเกมต้องใช้อีเวนต์ใด นักพัฒนาเป็นผู้ส่ง และคุณตรวจสอบว่าอีเวนต์มาถึง

<span id="choose-the-events-to-track" />

#### เลือกอีเวนต์ที่จะติดตาม

เลือกอีเวนต์ที่เกมของคุณต้องใช้และแอตทริบิวต์ที่แต่ละอีเวนต์มี เช่น `level_id` สำหรับ `Level completed` ตารางนี้แสดงตัวอย่าง: ใช้ตามเดิม เปลี่ยนชื่อ หรือเพิ่มอีเวนต์ของคุณเอง ติดตามเฉพาะอีเวนต์ที่ Journey ที่คุณเปิดใช้ต้องการ

| อีเวนต์ | ทำงานเมื่อใด | แอตทริบิวต์หลัก | ใช้ขับเคลื่อนอะไร |
| --- | --- | --- | --- |
| [New level](/th/product/audience-data-and-segmentation/events/recommended-events-for-gaming-apps/#new-level) | ผู้เล่นไปถึงด่านใหม่ | `level_id` (String) | ไม่บังคับ: เซกเมนต์ตามหมุดหมายของคุณเอง |
| [Level completed](/th/product/audience-data-and-segmentation/events/recommended-events-for-gaming-apps/#level-completed) | ผู้เล่นผ่านด่าน | `level_id` (String) | เซกเมนต์ผู้เล่นที่มีส่วนร่วมแต่ยังไม่จ่ายและผู้เล่นที่ติดด่าน, Journey ความช่วยเหลือสำหรับผู้เล่นที่ติดด่าน |
| Level failed | ผู้เล่นผ่านด่านไม่สำเร็จ | `level_id` (String) | เซกเมนต์และ Journey ผู้เล่นที่ติดด่าน |
| Tutorial started | ผู้เล่นเริ่มบทสอนในเกม | `tutorial_name` (String) | Journey การเริ่มต้นใช้งาน, เซกเมนต์ผู้เล่นที่ทิ้งบทสอน |
| [Tutorial completed](/th/product/audience-data-and-segmentation/events/recommended-events-for-gaming-apps/#tutorial-completed) | ผู้เล่นจบบทสอนในเกม | `tutorial_name` (String), `completion` (Boolean) | Journey การเริ่มต้นใช้งาน, โฟลว์ขอสิทธิ์การแจ้งเตือนแบบพุช |
| [Virtual currency earned](/th/product/audience-data-and-segmentation/events/recommended-events-for-gaming-apps/#virtual-currency-earned) | ยอดสกุลเงินในเกมของผู้เล่นเพิ่มขึ้น | `currency_name` (String), `quantity` (Integer) | ไม่บังคับ: เซกเมนต์ตามสกุลเงินของคุณเอง |
| [Achievement unlocked](/th/product/audience-data-and-segmentation/events/recommended-events-for-gaming-apps/#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 สำหรับผู้เล่นที่ออกจากร้านค้าโดยไม่ซื้อ |

<Aside type="tip" title="เกมของคุณไม่มีบทสอนใช่ไหม">
ใช้อีเวนต์ของคุณเองสำหรับการกระทำสองอย่างแรกที่ผู้เล่นใหม่ทุกคนทำ เช่น การเริ่มและผ่านด่านแรก แทน `Tutorial started` และ `Tutorial completed` ในทุกจุดที่เพลย์บุ๊กนี้กล่าวถึง

* อีเวนต์แรกจะเริ่ม Journey การเริ่มต้นใช้งาน และอีเวนต์ที่สองจะบอก Journey ว่าผู้เล่นทำเสร็จแล้ว ข้ามเงื่อนไข `completion` ที่ใช้คู่กับ `Tutorial completed`
* SDK ไม่ได้ส่งอีเวนต์การเปิดครั้งแรกของตัวเอง ดังนั้นทั้งสองอีเวนต์ต้องเป็นอีเวนต์ที่กำหนดเองที่เกมของคุณส่ง
</Aside>

<span id="send-the-events-from-the-game" />

#### ส่งอีเวนต์จากเกม

<Aside type="caution" icon="setting" title="ต้องการความช่วยเหลือจากนักพัฒนา">
การส่งอีเวนต์เป็นการเปลี่ยนแปลงในโค้ดของเกม โปรดแชร์ [อีเวนต์สำหรับนักพัฒนา](/th/developer/guides/audience-and-segmentation/events/) และ [ตัวอย่างอีเวนต์เกม](/th/developer/guides/audience-and-segmentation/events/custom-events-examples#gaming-apps) ให้กับนักพัฒนาของคุณ นักพัฒนาจะส่งแต่ละอีเวนต์ด้วย `postEvent` ในขณะที่การกระทำเกิดขึ้น การซื้อและการมอบรางวัลควรมาจากเซิร์ฟเวอร์เกมพร้อม `userId` ของผู้เล่น
</Aside>

ตกลงกับนักพัฒนาว่าเกมจะส่งอีเวนต์ใดบ้างและแต่ละอีเวนต์มีแอตทริบิวต์ใด ชื่อของอีเวนต์และแอตทริบิวต์ต้องตรงกันทุกตัวอักษร

ตัวอย่างเช่น นี่คือวิธีที่เกมส่ง `Level completed` พร้อมแอตทริบิวต์ `level_id`:

<Tabs>
<TabItem label="Android">
```java
TagsBundle attributes = new TagsBundle.Builder()
    .putString("level_id", "12")
    .build();

InAppManager.getInstance().postEvent("Level completed", attributes);
```
</TabItem>
<TabItem label="iOS">
```swift
PWInAppManager.shared().postEvent("Level completed", withAttributes: ["level_id": "12"])
```
</TabItem>
</Tabs>

หากอีเวนต์เกิดขึ้นบนเซิร์ฟเวอร์ที่ส่งเว็บฮุกของตัวเองอยู่แล้ว เช่น แบ็กเอนด์ของเกมหรือบริการทัวร์นาเมนต์ อีเวนต์นั้นสามารถส่งถึง Pushwoosh ผ่าน [Inbound webhook](/th/product/integrations/inbound-webhook/) แทน `postEvent` ได้ คุณแมปฟิลด์ที่ส่งมากับอีเวนต์ของ Pushwoosh ใน Control Panel และอีเวนต์นั้นจะเริ่ม Journey ได้เหมือนอีเวนต์อื่นๆ

หากต้องการตรวจสอบว่าอีเวนต์มาถึงแล้ว ให้เปิด **กลุ่มเป้าหมาย** → **User Explorer** หาผู้เล่นทดสอบ แล้วเปิดแท็บ **ประวัติเหตุการณ์**


<span id="track-revenue-as-pw_conversion" />

### ติดตามรายได้เป็น PW_Conversion

`PW_Conversion` บันทึกจำนวนเงินและสกุลเงินของการซื้อทุกครั้งในรูปแบบเดียวกัน คุณต้องใช้สำหรับเป้าหมายรายได้ใน Journey และสำหรับระดับการใช้จ่ายใน [การแบ่งกลุ่มแบบ RFM](/th/product/audience-data-and-segmentation/segmentation/rfm-segmentation/) ซึ่งจัดกลุ่มผู้เล่นตามความล่าสุด ความถี่ และยอดเงินที่ซื้อ

การซื้อที่ iOS SDK ติดตามจะเข้าสู่ `PW_Conversion` เองโดยอัตโนมัติ เพราะมีแอตทริบิวต์ `__amount` และ `__currency` การซื้อจาก Android ต้องใช้วิธีใดวิธีหนึ่งต่อไปนี้:

* หากเกมของคุณทำงานทั้งบน iOS และ Android ให้ขอให้นักพัฒนาส่งการซื้อบน Android เป็น `PW_InAppPurchase` พร้อมแอตทริบิวต์ตัวเลข `__amount` และ `__currency` ผ่าน `postEvent` แทนเมธอดการซื้อของ SDK แล้วการแมปอัตโนมัติแบบเดียวกันจะครอบคลุมทั้งสองแพลตฟอร์ม
* หากเกมของคุณทำงานบน Android เท่านั้น ให้แมปการซื้อเองโดยไม่ต้องเขียนโค้ดใหม่ อีเวนต์หนึ่งรายการเก็บการแมปได้เพียงชุดเดียว ดังนั้นในเกมที่มีการซื้อบน iOS การแมปด้วยตนเองจะแทนที่การแมปอัตโนมัติ

หากต้องการแมปการซื้อเอง:

1. เปิด **กลุ่มเป้าหมาย** → **อีเวนต์** แล้วเปิดการตั้งค่าอีเวนต์ Conversion
2. เพิ่ม `PW_InAppPurchase` เป็นอีเวนต์ Conversion
3. เลือกแอตทริบิวต์ที่เก็บ **ราคา** และ **สกุลเงิน**
4. คลิก **นำไปใช้**

<Aside type="caution">
ใช้เพียงวิธีเดียวต่อหนึ่งธุรกรรม หากโค้ดของคุณส่ง `PW_Conversion` สำหรับการซื้อเดียวกันด้วย Pushwoosh จะบันทึกอีเวนต์ Conversion แยกกันสองรายการ
</Aside>

สำหรับตัวเลือกการตั้งค่าทั้งหมด โปรดดู [อีเวนต์ Conversion](/th/product/audience-data-and-segmentation/events/conversion-events/)

<span id="track-subscriptions-from-the-stores" />

### ติดตามการสมัครสมาชิกจากสโตร์

หากเกมของคุณขายการสมัครสมาชิก เช่น VIP pass หรือ battle pass Pushwoosh จะได้รับการเปลี่ยนแปลงสถานะจาก App Store และ Google Play การเปลี่ยนแปลงแต่ละครั้งจะมาถึงเป็นอีเวนต์ `PW_Subscription*` ตัวอย่างเช่น:

* `PW_SubscriptionStart`: ผู้เล่นสมัครสมาชิก
* `PW_SubscriptionCancel`: ผู้เล่นปิดการต่ออายุอัตโนมัติ
* `PW_SubscriptionBillingIssue`: การชำระเงินเพื่อต่ออายุล้มเหลว

ใช้อีเวนต์เหล่านี้เพื่อเริ่ม Journey เช่น การแจ้งเตือนก่อนที่ pass ที่ยกเลิกแล้วจะหมดอายุ

<Aside type="caution" icon="setting" title="ต้องการความช่วยเหลือจากนักพัฒนา">
เกมต้องส่ง Pushwoosh HWID ของผู้เล่นไปพร้อมกับการซื้อทุกครั้ง:

* บน iOS ส่งเป็น `appAccountToken`
* บน Android ส่งเป็น `obfuscatedAccountId` เกมจะส่งค่าของ `getSubscriptionAccountId()` จาก SDK ซึ่งเป็น Application Code และ HWID รวมกัน ไม่ใช่ HWID เพียงอย่างเดียว

หากไม่มีค่านี้ Pushwoosh จะได้รับการแจ้งเตือนแต่จะไม่บันทึกอีเวนต์ใดๆ และการสมัครสมาชิกที่ซื้อไว้ก่อนหน้าจะจับคู่ภายหลังไม่ได้ โปรดแชร์ [การติดตามการสมัครสมาชิก App Store](/th/product/integrations/app-store-subscription-tracking/) และ [การติดตามการสมัครสมาชิก Google Play](/th/product/integrations/google-play-subscription-tracking/) ให้กับนักพัฒนาของคุณ
</Aside>

อีเวนต์เหล่านี้ครอบคลุมเฉพาะการสมัครสมาชิก การซื้อครั้งเดียว เช่น แพ็กเหรียญ ยังคงมาถึงเป็น `PW_InAppPurchase`

<span id="store-player-data-in-tags" />

## จัดเก็บข้อมูลผู้เล่นในแท็ก

[แท็ก](/th/product/audience-data-and-segmentation/user-data-tags/) คือค่าที่ Pushwoosh จัดเก็บไว้ในโปรไฟล์ของผู้เล่น เช่น ด่านของผู้เล่นหรือผู้เล่นเคยจ่ายเงินหรือไม่ อีเวนต์จะบันทึกสิ่งที่เกิดขึ้น ส่วนแท็กจะเก็บสถานะปัจจุบัน แท็กช่วยให้คุณ:

* ส่งข้อความเฉพาะผู้เล่นที่มีค่าบางอย่าง เช่น ส่งข้อเสนอเฉพาะผู้เล่นที่จ่ายเงิน
* ใส่ค่าลงในข้อความ เช่น ด่านของผู้เล่น โปรดดู [สร้าง Journey](/th/tutorials/industry-playbooks/mobile-games/build-the-journeys/)

แท็กเป็นตัวเลือกเสริม Journey ในเพลย์บุ๊กนี้ทำงานด้วยอีเวนต์และแท็กเริ่มต้นที่ Pushwoosh ตั้งค่าเอง ดังนั้นในช่วงแรกคุณจึงข้ามแท็กของคุณเองไปได้ เพิ่มแท็กเมื่อคุณต้องการวิธีจัดกลุ่มผู้เล่นมากขึ้น โปรดดู [เซกเมนต์ตามแท็ก](/th/tutorials/industry-playbooks/mobile-games/build-the-segments/#segments-by-tags)

### แท็กของคุณเอง

นักพัฒนาจะส่งค่าแท็กจากเกม หรือคุณสามารถ [นำเข้าค่าจากไฟล์ CSV](/th/product/audience-data-and-segmentation/user-data-tags/update-tags-via-csv/) ได้ Pushwoosh จะสร้างแท็กเป็นแท็ก User-specific เมื่อนักพัฒนาส่งแท็กนั้นเป็นครั้งแรก หากต้องการเลือกประเภทของแท็กเอง ให้สร้างแท็กใน Control Panel ก่อน โปรดดู [จัดการข้อมูลผู้ใช้ด้วย Tag](/th/product/audience-data-and-segmentation/user-data-tags/tags/)

แท็กเหล่านี้เป็นตัวอย่าง เปลี่ยนชื่อให้ตรงกับคำศัพท์ในเกมของคุณ และเพิ่มแท็กของคุณเอง:

| แท็ก | ประเภท | ตัวอย่าง | ใช้ขับเคลื่อนอะไร |
| --- | --- | --- | --- |
| `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 ให้เปิด [**เฉพาะผู้ใช้**](/th/product/audience-data-and-segmentation/user-data-tags/tags/#tag-scope-general-vs-user-specific) ไว้ตามค่าเริ่มต้น จากนั้น Pushwoosh จะเก็บค่าหนึ่งค่าต่อ User ID ค่าจึงเป็นของผู้เล่น ไม่ใช่ของอุปกรณ์เครื่องใดเครื่องหนึ่ง หากปิด **เฉพาะผู้ใช้** อุปกรณ์แต่ละเครื่องจะเก็บค่าของตัวเอง โปรดดู [ระบุตัวผู้เล่นด้วย User ID](/th/tutorials/industry-playbooks/mobile-games/collect-player-data/#identify-players-by-user-id)

### แท็กเริ่มต้น

Pushwoosh จัดเก็บ [แท็กเริ่มต้น](/th/product/audience-data-and-segmentation/user-data-tags/tags/#default-tags) เหล่านี้สำหรับทุกอุปกรณ์ คุณจึงไม่ต้องสร้างเอง:

* **Language**: ภาษาของอุปกรณ์ Pushwoosh ใช้แท็กนี้เพื่อส่งข้อความถึงผู้เล่นแต่ละคนในภาษาของผู้เล่น
* **Last Application Open**: เวลาที่เปิดเกมบนอุปกรณ์ครั้งล่าสุด ใช้เพื่อหาผู้เล่นที่เลิกเล่นแล้ว
* **Push Alerts Enabled**: อนุญาตการแจ้งเตือนในการตั้งค่าอุปกรณ์หรือไม่ ใช้เพื่อแสดงข้อความ in-app เฉพาะผู้เล่นที่ยังไม่อนุญาต
* **First Install**: เวลาที่ติดตั้งเกมบนอุปกรณ์เป็นครั้งแรก ใช้สำหรับวันครบรอบการติดตั้ง
* **Country**: ประเทศของอุปกรณ์ ใช้เพื่อส่งข้อเสนอหรือประกาศไลฟ์อีเวนต์เฉพาะผู้เล่นในภูมิภาคเดียว