ภาษาสำหรับการแบ่งส่วนผู้ใช้ (Segmentation Language)
Pushwoosh นำเสนอเอนจิ้นการแบ่งส่วนผู้ใช้ (segmentation engine) ที่ทรงพลัง สำหรับการสร้างเซกเมนต์ที่ละเอียดตามค่าแท็ก (Tag) Segmentation Language เป็นวิธีการเฉพาะในการเขียนและรวมเกณฑ์การแบ่งส่วนเพื่ออธิบายกลุ่มผู้ใช้ที่ตรงกับเกณฑ์เหล่านั้น และปฏิบัติต่อพวกเขาในฐานะเซกเมนต์กลุ่มเป้าหมายเดียว
บทความนี้อธิบายแนวคิดพื้นฐานและไวยากรณ์ของ Segmentation Language และให้ตัวอย่างที่ครอบคลุมเกี่ยวกับการสร้างเกณฑ์การแบ่งส่วนสำหรับกรณีต่างๆ
พื้นฐาน
Anchor link toอุปกรณ์แต่ละเครื่องในฐานผู้ใช้ของคุณมีแอตทริบิวต์เฉพาะที่เชื่อมโยงอยู่ผ่าน ค่าแท็ก (Tag values)
ตัวอย่างเช่น สมมติว่าผู้ใช้ชื่อ Jane อาศัยอยู่ในโตเกียว และอายุ 28 ปี ผู้ใช้รายนั้นจะมีแท็กต่อไปนี้กำหนดไว้สำหรับอุปกรณ์ของตน:
- Name: Jane
- City: Tokyo
- Age: 28
ในการกำหนดเป้าหมาย Jane คุณจะต้องอธิบายเซกเมนต์ดังนี้:
T("Name", eq, "Jane") * T("Age", eq, 28) * T("City", eq, "Tokyo")
การรวมกันของเงื่อนไขนี้เรียกว่า นิพจน์ตัวกรอง (filter expression) ที่ใช้ใน Segmentation Language เพื่ออธิบายกลุ่มผู้ใช้ หรือที่เรียกว่า เซกเมนต์กลุ่มเป้าหมาย (audience Segments)
นิพจน์ตัวกรอง (Filter expressions)
Anchor link toนิพจน์ตัวกรอง (Filter expression) คือสตริงที่ประกอบด้วยเงื่อนไขเดียวหรือการรวมกันของหลายเงื่อนไขซึ่งอธิบายเซกเมนต์ที่คุณต้องการ
เงื่อนไข (Conditions)
Anchor link toแต่ละเงื่อนไขจะอธิบายเซกเมนต์ของอุปกรณ์ที่ตรงกับเกณฑ์ที่ระบุในเงื่อนไขนั้นๆ
ตัวอย่างเช่น เงื่อนไขต่อไปนี้จะสร้างเซกเมนต์ของผู้ใช้ที่อาศัยอยู่ในโตเกียว:
T("City", e, "Tokyo")
โดยที่
- T คือ แท็ก (ประเภทเงื่อนไข)
- eq คือ โอเปอเรเตอร์ (operator) ที่จะใช้
- “Tokyo” คือ ค่าแท็กที่ผู้ใช้มีเชื่อมโยงกับอุปกรณ์ของตน
ประเภทเงื่อนไข (Condition types)
Anchor link toมีประเภทเงื่อนไขสี่ประเภทที่คุณสามารถใช้สำหรับการแบ่งส่วนของคุณ:
- A (Application) – อธิบายเซกเมนต์ของอุปกรณ์ที่ติดตั้งแอปพลิเคชันใดแอปพลิเคชันหนึ่ง
- T (Tag) – อธิบายเซกเมนต์ของอุปกรณ์ที่มีค่าแท็กที่ระบุ
- AT (App-specific tag) – ใช้ร่วมกับรหัสแอปสำหรับแท็กที่เป็นของแอปนั้นๆ โดยเฉพาะ
- Event – อธิบายเซกเมนต์ของอุปกรณ์ที่กระตุ้นให้เกิดอีเวนต์ (event) ของ Pushwoosh ที่ระบุ
การดำเนินการกับเงื่อนไข
Anchor link toสำหรับการสร้างเซกเมนต์ที่ซับซ้อน สามารถใช้การดำเนินการต่อไปนี้กับเงื่อนไขภายในนิพจน์ตัวกรอง:
ยูเนียน (+)
Anchor link toเข้าร่วมเซกเมนต์ต่างๆ เช่น สร้างเซกเมนต์ใหม่ของผู้ใช้ที่ตรงกับเงื่อนไขที่ระบุอย่างน้อยหนึ่งเงื่อนไข

ตัวอย่างเช่น หากต้องการกำหนดเป้าหมายผู้ใช้ที่อาศัยอยู่ในโตเกียวหรือโอซาก้า คุณจะต้องอธิบายเซกเมนต์ด้วยเงื่อนไขต่อไปนี้:
T("City", eq, "Tokyo") + T("City", eq, "Osaka")
อินเตอร์เซกชัน (*)
Anchor link toสร้างเซกเมนต์ของผู้ใช้ที่เป็นสมาชิกของทั้งสองเซกเมนต์ที่อธิบายโดยเงื่อนไข ดังนั้น จะรวมเฉพาะผู้ใช้ที่ปฏิบัติตามแต่ละเงื่อนไขที่คุณระบุเท่านั้น

นิพจน์ต่อไปนี้อธิบายเซกเมนต์ของผู้ใช้ที่อาศัยอยู่ในโตเกียวและได้ระบุชื่อของตนเอง:
T("City", eq, "Tokyo") * T("Name", any)
ผลต่าง (\)
Anchor link toสร้างเซกเมนต์ของผู้ใช้ที่เป็นสมาชิกของเซกเมนต์หนึ่งที่อธิบายไว้และไม่ได้เป็นสมาชิกของอีกเซกเมนต์หนึ่ง

ผู้ใช้ที่อาศัยอยู่ในโตเกียวแต่ยังไม่ได้ให้ชื่อจะถูกอธิบายดังนี้:
T("City", eq, "Tokyo") \ T("Name", any)
วงเล็บ ()
Anchor link toกำหนดลำดับของการดำเนินการที่จะทำกับเงื่อนไขในนิพจน์ตัวกรองของคุณ
ตัวอย่างเช่น นิพจน์ตัวกรองต่อไปนี้จะทำการดึงเซกเมนต์ของผู้สมัครรับข้อมูลแอป 12345-67890 ที่มีอายุ 18 ปีก่อน แล้วจึงลบผู้ชายทั้งหมดออกจากเซกเมนต์นั้น:
( A("12345-67890") * T("Age", eq, 18) ) \ T("Gender", eq, "Male")
โอเปอเรเตอร์สำหรับเงื่อนไขแท็ก (Tag conditions operators)
Anchor link toสำหรับแท็กแต่ละประเภท จะมีโอเปอเรเตอร์ที่ใช้แตกต่างกันไป
โอเปอเรเตอร์สำหรับแท็กประเภท Integer
Anchor link to- eq - เท่ากับค่าที่ระบุ
- noteq - ไม่เท่ากับค่าที่ระบุ
- lte - น้อยกว่าหรือเท่ากับค่าที่ระบุ
- gte - มากกว่าหรือเท่ากับค่าที่ระบุ
- in - ค่าใดค่าหนึ่งจากที่ระบุ
- notin - ไม่เท่ากับค่าใดๆ ที่ระบุ
- between - อยู่ในช่วงที่ระบุ
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
โอเปอเรเตอร์สำหรับแท็กประเภท String
Anchor link to- eq - เท่ากับค่าที่ระบุ
- noteq - ไม่เท่ากับค่าที่ระบุ
- in - เท่ากับค่าใดค่าหนึ่งจากที่ระบุ
- notin - ไม่เท่ากับค่าใดๆ ที่ระบุ
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
โอเปอเรเตอร์สำหรับแท็กประเภท List
Anchor link to- in - อุปกรณ์ที่มีค่าแท็กใดๆ ที่ระบุ
- notin - ไม่มีค่าแท็กใดๆ ที่ระบุเชื่อมโยงกับอุปกรณ์
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
โอเปอเรเตอร์สำหรับแท็กประเภท Date
Anchor link to- eq - เท่ากับวันที่ที่ระบุ
- noteq - ไม่เท่ากับวันที่ที่ระบุ
- lte - ก่อนหรือในวันที่ที่ระบุ
- gte - หลังหรือในวันที่ที่ระบุ
- in - เท่ากับวันที่ใดๆ ที่ระบุ
- notin - ไม่เท่ากับวันที่ใดๆ ที่ระบุ
- between - อยู่ในช่วงที่ระบุ
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
- match - ตรงกับเดือนของปีและวันที่ของเดือนที่ระบุ
- daysago eq - เท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- daysago noteq - ไม่เท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- daysago lte - น้อยกว่าหรือเท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- daysago gte - มากกว่าหรือเท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- daysago between - ระหว่างจำนวนวันที่ระบุ
โอเปอเรเตอร์สำหรับแท็กประเภท Boolean
Anchor link to- eq - เท่ากับค่าที่ระบุ
- noteq - ไม่เท่ากับค่าที่ระบุ
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
โอเปอเรเตอร์สำหรับแท็กประเภท Price
Anchor link to- eq - เท่ากับค่าที่ระบุ
- noteq - ไม่เท่ากับค่าที่ระบุ
- lte - น้อยกว่าหรือเท่ากับค่าที่ระบุ
- gte - มากกว่าหรือเท่ากับค่าที่ระบุ
- in - เท่ากับค่าใดค่าหนึ่งจากที่ระบุ
- notin - ไม่เท่ากับค่าใดๆ ที่ระบุ
- between - อยู่ในช่วงที่ระบุ
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
โอเปอเรเตอร์สำหรับแท็กประเภท Version
Anchor link to- eq - เท่ากับค่าที่ระบุ
- noteq - ไม่เท่ากับค่าที่ระบุ
- lte - น้อยกว่าหรือเท่ากับค่าที่ระบุ
- gte - มากกว่าหรือเท่ากับค่าที่ระบุ
- in - เท่ากับค่าใดค่าหนึ่งจากที่ระบุ
- notin - ไม่เท่ากับค่าใดๆ ที่ระบุ
- between - อยู่ในช่วงที่ระบุ
- any - อุปกรณ์ที่มีการตั้งค่าค่าใดๆ สำหรับแท็ก
- notset - อุปกรณ์ที่ไม่มีการตั้งค่าค่าสำหรับแท็ก
โอเปอเรเตอร์สำหรับเงื่อนไข “Event”
Anchor link toจำนวนครั้งของอีเวนต์
Anchor link to- count gte - อุปกรณ์ที่กระตุ้นอีเวนต์มากกว่าหรือเท่ากับ n ครั้ง
- count lte - อุปกรณ์ที่กระตุ้นอีเวนต์น้อยกว่าหรือเท่ากับ n ครั้ง
- count eq - อุปกรณ์ที่กระตุ้นอีเวนต์เท่ากับ n ครั้งพอดี
- count noteq - อุปกรณ์ที่กระตุ้นอีเวนต์จำนวนครั้งใดๆ แต่ไม่เท่ากับ n
วันที่ของอีเวนต์
Anchor link to- date gte - อุปกรณ์ที่กระตุ้นอีเวนต์หลังหรือในวันที่ระบุพอดี
- date lte - อุปกรณ์ที่กระตุ้นอีเวนต์ก่อนหรือในวันที่ระบุพอดี
- date eq - อุปกรณ์ที่กระตุ้นอีเวนต์ในวันที่ระบุพอดี
- date noteq - อุปกรณ์ที่กระตุ้นอีเวนต์เมื่อใดก็ได้แต่ไม่ใช่ในวันที่ระบุ
- date in - อุปกรณ์ที่กระตุ้นอีเวนต์ในวันใดวันหนึ่งที่ระบุ
- date notin - อุปกรณ์ที่กระตุ้นอีเวนต์เมื่อใดก็ได้แต่ไม่ใช่ในวันที่ระบุ
- date between - อุปกรณ์ที่กระตุ้นอีเวนต์ภายในช่วงเวลาที่ระบุ
- date daysago eq - วันที่กระตุ้นอีเวนต์เท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- date daysago noteq - วันที่กระตุ้นอีเวนต์ไม่เท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- date daysago lte - วันที่กระตุ้นอีเวนต์น้อยกว่าหรือเท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- date daysago gte - วันที่กระตุ้นอีเวนต์มากกว่าหรือเท่ากับจำนวนวันที่ระบุก่อนวันปัจจุบัน
- date daysago between - วันที่กระตุ้นอีเวนต์อยู่ระหว่างจำนวนวันที่ระบุ
ตัวอย่างนิพจน์ตัวกรอง
Anchor link to- อุปกรณ์ iOS และ Android ที่ติดตั้งแอปและมี push token:
A("11111-11111", ["ios","android"], [with_tokens])
2. อุปกรณ์ iOS และ Android ที่ติดตั้งแอปแต่ไม่มี push token:
A("11111-11111", ["ios","android"], [without_tokens])
3. อุปกรณ์ iOS และ Android ที่ติดตั้งแอป ไม่ว่าจะมี push token หรือไม่:
A("11111-11111", ["ios","android"], [with_tokens, without_tokens])
4. ผู้สมัครรับข้อมูลแอปทั้งหมดที่ซื้อของในแอป:
AT( "11111-11111", "In-App Purchase", gte, 1)