# แคมเปญตามตำแหน่งที่ตั้ง

แคมเปญตามตำแหน่งที่ตั้งจะส่ง push notification โดยอัตโนมัติเมื่ออุปกรณ์ของผู้ใช้เข้าสู่ตำแหน่งที่คุณกำหนดไว้บนแผนที่ เช่น ร้านค้า สถานที่จัดงาน จุดจัดส่ง หรือศูนย์กลางการขนส่ง

Pushwoosh ใช้ geozones เพื่อกำหนดว่าแคมเปญสามารถทริกเกอร์ได้ที่ไหน คุณสามารถจัดกลุ่ม geozones หลายแห่งเป็นคลัสเตอร์เพื่อใช้คูลดาวน์ร่วมกันและหลีกเลี่ยงการส่งซ้ำในพื้นที่ใกล้เคียง

## วิธีการทำงาน

หลังจากที่คุณตั้งค่าแคมเปญตามตำแหน่งที่ตั้งแล้ว Pushwoosh จะส่ง push เมื่ออุปกรณ์ของผู้ใช้เข้าสู่ geozone โดยแคมเปญนั้นต้องทำงานอยู่และคูลดาวน์อนุญาตให้จัดส่งได้

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

<Aside type="caution" title="สำคัญ">
สำหรับ Android 10 ขึ้นไป จำเป็นต้องได้รับอนุญาตให้เข้าถึงตำแหน่งที่ตั้งในเบื้องหลัง
</Aside>


## กรณีการใช้งาน

- ส่งข้อเสนอในร้านค้าเมื่อผู้ใช้เข้าสู่ geozone รอบๆ สถานที่ค้าปลีก
- ทริกเกอร์ข้อความแจ้งเตือนการมาถึง ณ สถานที่จัดงาน จุดรับสินค้า หรือสำนักงานสาขา
- จำกัดการส่งซ้ำในพื้นที่ที่มีผู้คนหนาแน่นโดยใช้คูลดาวน์เดียวกับคลัสเตอร์ของ geozones ที่อยู่ใกล้เคียง


## ข้อกำหนดเบื้องต้น

<Aside type="caution" icon="setting" title="ต้องการความช่วยเหลือจากนักพัฒนา">
คุณจะต้องได้รับความช่วยเหลือจากทีมนักพัฒนาของคุณเพื่อผสานรวมการติดตามตำแหน่งที่ตั้งในแอปของคุณ
</Aside>

ก่อนที่คุณจะสร้างแคมเปญตามตำแหน่งที่ตั้งครั้งแรก ตรวจสอบให้แน่ใจว่า:

1. มีการกำหนดค่าแพลตฟอร์มมือถืออย่างน้อยหนึ่งแพลตฟอร์ม (Android หรือ iOS) ในโปรเจกต์ [เรียนรู้วิธีกำหนดค่าแพลตฟอร์ม](/th/product/first-steps/start-with-your-project/configure-platforms/)
2. Pushwoosh SDK ได้รับการผสานรวมในแอปของคุณและเปิดใช้งานการติดตามตำแหน่งที่ตั้งแล้ว
3. การติดตามตำแหน่งที่ตั้งได้รับการกำหนดค่าในแอปแล้ว สำหรับรายละเอียดการติดตั้ง โปรดดูที่ [Geozones สำหรับ iOS](/th/developer/pushwoosh-sdk/ios-sdk/customizing-ios-sdk/#geozones-push-notifications) และ [Geozones สำหรับ Android](/th/developer/pushwoosh-sdk/android-sdk/customizing-android-sdk-50/#geozones-push-notification)


<Aside type="note">
- การส่งข้อความตามตำแหน่งที่ตั้งไม่สามารถใช้ได้กับอุปกรณ์ HMS (Huawei Mobile Services) เนื่องจากต้องอาศัยบริการตำแหน่งที่ตั้งของ Google
- สำหรับแอปบน Google Play จำเป็นต้องได้รับการอนุมัติสำหรับการเข้าถึงตำแหน่งที่ตั้งในเบื้องหลัง โปรดอ้างอิง <a href="https://support.google.com/googleplay/android-developer/answer/9799150#zippy=%2Cstep-review-best-practices-for-accessing-location" target="_blank">นโยบายของ Google Play</a> และส่ง <a href="https://support.google.com/googleplay/android-developer/answer/10144311" target="_blank">การประกาศสิทธิ์</a> ก่อนที่จะรวบรวมตำแหน่งที่ตั้งของผู้ใช้
</Aside>


## สร้าง geozone

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

ไปที่ **Campaigns → Geo campaigns** คลิก **Create geozone** เพื่อเริ่มต้น

<img src="/push-notifications-geo-based-push-1.webp" alt="หน้าจอเริ่มต้นของ Geo campaigns พร้อมมุมมองแผนที่และการดำเนินการสร้าง geozone ใน Pushwoosh control panel"/>

### ตั้งชื่อแคมเปญและสถิติรวม

ในช่อง **Campaign name** ให้ป้อนป้ายกำกับที่มีความยาวไม่เกิน 64 ตัวอักษร ควรตั้งให้สั้นและจดจำได้ง่าย เช่น `Spring sale at downtown shops`

คุณสามารถเลือกแคมเปญที่มีอยู่แล้วในช่อง **Aggregated statistics** ได้ ซึ่ง push ของแคมเปญตามตำแหน่งที่ตั้งจะถูกนับรวมกับ touchpoints อื่นๆ ใน [สถิติข้อความรวม](/th/product/statistics-and-analytics/aggregated-messages/) ของแคมเปญนั้น

<img src="/push-notifications-geo-based-push-2.webp" alt="ส่วนของฟอร์ม Geozone ที่มีช่อง Campaign name และ Aggregated statistics"/>

### เขียนข้อความ push

เลือกวิธีเขียนการแจ้งเตือน:

- **เขียนข้อความ**: ป้อนข้อความ push ลงในฟอร์มโดยตรง (สูงสุด 1024 ตัวอักษร) ใช้ตัวเลือกนี้สำหรับข้อความที่ส่งครั้งเดียวอย่างรวดเร็วใน geozone เดียว
- **ใช้ preset ที่มีอยู่**: เลือก [preset](/th/product/content/push-presets/) ที่บันทึกไว้เพื่อการสร้างเทมเพลตเต็มรูปแบบพร้อมชื่อเรื่อง, deep link, เสียงที่กำหนดเอง และ payloads เฉพาะแพลตฟอร์ม

<img src="/push-notifications-geo-based-push-3.webp" alt="ฟอร์มสร้างแคมเปญตามตำแหน่งที่ตั้งที่แสดงชื่อแคมเปญ การตั้งค่าข้อความ push และตัวเลือกเสียงและ inbox ของ iOS"/>

กำหนดค่าการตั้งค่าข้อความเพิ่มเติม:

- **เล่นเสียงเริ่มต้นบน iOS**: ใช้เสียง push ของระบบบนอุปกรณ์ iOS
- **บันทึกลงใน inbox**: เก็บ push ไว้ใน in-app inbox ของอุปกรณ์หลังจากการจัดส่ง เพื่อให้ผู้ใช้สามารถกลับมาดูได้ในภายหลัง เมื่อเปิดใช้งาน ให้ตั้งค่า **Inbox expire** (1–365 วัน) และสามารถกำหนด **Inbox icon URL** ได้ [เรียนรู้เพิ่มเติม](/th/product/messaging-channels/message-inbox/mobile-message-inbox/#choosing-which-messages-to-save-to-inbox)

### ตั้งค่าตำแหน่งทริกเกอร์

1. ค้นหาที่อยู่ วางพิกัดดิบลงในแถบค้นหา หรือคลิกที่ใดก็ได้บนแผนที่เพื่อวางหมุด
2. ลากจุดจับบนวงกลมเพื่อตั้งค่า **Range** (ระยะ) สามารถตั้งค่าระยะได้ระหว่าง 50 เมตร ถึง 100 กิโลเมตร ค่าเริ่มต้นคือ 200 เมตร

<img src="/push-notifications-geo-based-push-5.webp" alt="มุมมองแผนที่สำหรับการตั้งค่าตำแหน่งทริกเกอร์พร้อมการค้นหาที่อยู่ การวางหมุด และการปรับวงกลมระยะ"/>

### เลือกคลัสเตอร์และคูลดาวน์

คูลดาวน์คือช่วงเวลาเงียบหลังจากส่ง push ไปแล้ว อุปกรณ์เดียวกันจะไม่ได้รับการแจ้งเตือนอื่นจาก geozone นั้นอีกจนกว่าคูลดาวน์จะหมดอายุ แม้ว่าจะออกจากพื้นที่แล้วกลับเข้ามาใหม่ก็ตาม

ในช่อง **Cooldown** ให้เลือกหนึ่งในสามโหมด:

| โหมด | วิธีการตั้งค่าคูลดาวน์ | ลักษณะการทำงาน |
|---|---|---|
| **แบบเดี่ยว** | ตั้งค่าวัน ชั่วโมง และนาทีโดยตรงสำหรับ geozone นี้ ต่ำสุดคือ 1 นาที สูงสุดคือ 41 วัน | คูลดาวน์จะใช้กับ geozone นี้เท่านั้น |
| **ใช้คลัสเตอร์ที่มีอยู่** | ใช้คูลดาวน์จาก [คลัสเตอร์](#create-a-cluster) ที่มีอยู่ | คูลดาวน์ของคลัสเตอร์จะแทนที่คูลดาวน์ของ geozone นี้ |
| **คลัสเตอร์ใหม่** | สร้างคลัสเตอร์ใหม่และตั้งค่าคูลดาวน์ | คูลดาวน์ของคลัสเตอร์จะแทนที่คูลดาวน์ของ geozone นี้ |


<img src="/push-notifications-geo-based-push-6.webp" alt="ดรอปดาวน์โหมดคูลดาวน์ที่แสดงตัวเลือกแบบเดี่ยว, ใช้คลัสเตอร์ที่มีอยู่ และคลัสเตอร์ใหม่ใน Geo campaigns"/>

### กำหนดตารางเวลาที่แคมเปญสามารถทำงานได้

ส่วน **Campaign schedule** จะกำหนดว่า geozone ได้รับอนุญาตให้ทริกเกอร์ push เมื่อใด:

- **ทำงานตลอดเวลา**: geozone จะทำงานตลอด 24 ชั่วโมงทุกวัน
- **ในวันและเวลาที่เลือก**: เปิดใช้งานวันในสัปดาห์ที่ต้องการและเลือกช่วงเวลาหนึ่งช่วงต่อวัน (เริ่มต้น – สิ้นสุด) แคมเปญจะทำงานเฉพาะในช่วงเวลาเหล่านั้นเท่านั้น


<img src="/push-notifications-geo-based-push-7.webp" alt="การตั้งค่าแคมเปญตามตำแหน่งที่ตั้งบนแผนที่พร้อมวงกลมระยะ ตัวเลือกโหมดคลัสเตอร์ และการกำหนดค่าตารางเวลาแคมเปญ"/>

ตารางเวลาจะถูกจัดเก็บในเขตเวลาท้องถิ่นของเบราว์เซอร์ ณ เวลาที่สร้าง

<Aside type="note">
Control panel รองรับช่วงเวลาเดียวต่อวัน หาก geozone ถูกกำหนดค่าผ่าน API ให้มีหลายช่วงเวลาต่อวัน การแก้ไขตารางเวลาในฟอร์มจะไม่สามารถทำได้ คลิก **Save** เพื่อคงตารางเวลาเดิมไว้ หากต้องการแก้ไข ให้ใช้ API
</Aside>

คลิก **Save** เพื่อสร้าง geozone ระบบจะบันทึกและเปิดใช้งาน geozone ทันที หากคุณตั้งค่าตารางเวลา push จะทำงานเฉพาะในช่วงเวลาที่กำหนดค่าไว้เท่านั้น

Push จะถูกส่งเมื่ออุปกรณ์เข้าสู่ geozone ในช่วงเวลาที่กำหนดและไม่ถูกบล็อกโดยคูลดาวน์

## สร้างคลัสเตอร์

ใช้คลัสเตอร์เมื่ออุปกรณ์เดียวกันอาจเข้าสู่โซนของคุณหลายแห่งในช่วงเวลาสั้นๆ เช่น ร้านค้าสองแห่งบนถนนเดียวกัน เมื่ออุปกรณ์ได้รับการแจ้งเตือน push จาก geozone ใดๆ ในคลัสเตอร์ อุปกรณ์นั้นจะยังคงเงียบสำหรับ geozones อื่นๆ ทั้งหมดในคลัสเตอร์นั้นจนกว่าคูลดาวน์จะหมดอายุ

หลังจากที่คุณสร้าง geozone แรกแล้ว คุณสามารถสร้างคลัสเตอร์ได้จากหน้า **Geo campaigns**


1. บนหน้า **Geo campaigns** คลิก **Create cluster**

<img src="/push-notifications-geo-based-push-10.webp" alt="หน้า Geo campaigns พร้อมปุ่มสร้างคลัสเตอร์ก่อนเข้าสู่การตั้งค่าคลัสเตอร์"/>

2. ป้อน **Cluster name** และ **Cluster cooldown**
<img src="/push-notifications-geo-based-push-8.webp" alt="ฟอร์มสร้างคลัสเตอร์ใน Geo campaigns พร้อมการตั้งค่าชื่อคลัสเตอร์และคูลดาวน์ก่อนบันทึก"/>
3. คลิก **Create**

เมื่อสร้างแล้ว คลัสเตอร์จะปรากฏบนหน้า **Geo campaigns** หากต้องการกำหนด geozones ให้กับคลัสเตอร์:
- เลือก **Use existing cluster** ในช่อง **Cooldown** เมื่อ [สร้างหรือแก้ไข geozone](#choose-a-cluster-and-cooldown)
- ใช้ **Move to cluster** บนหน้า [Geo campaigns](#manage-geozones-and-clusters)


## จัดการ geozones และคลัสเตอร์

หน้า **Geo campaigns** จะแสดง geozones ทั้งหมดของคุณที่พล็อตบนแผนที่และแสดงรายการในตาราง โดยจัดกลุ่มตามคลัสเตอร์ โซนแบบเดี่ยวจะปรากฏในส่วน **Without cluster**

<img src="/push-notifications-geo-based-push-9.webp" alt="ภาพรวม Geo campaigns ที่มี geozones บนแผนที่และตารางที่จัดกลุ่มตามคลัสเตอร์ รวมถึงส่วน Without cluster"/>

สำหรับแต่ละ geozone คุณสามารถ:

- **หยุดชั่วคราว** หรือ **ดำเนินการต่อ** สำหรับทริกเกอร์
- **แก้ไข** geozone ในฟอร์ม
- **ย้ายไปยังคลัสเตอร์**: กำหนดให้กับคลัสเตอร์อื่น หรือลบออกจากคลัสเตอร์ปัจจุบัน
- **ลบ** geozone อย่างถาวร

สำหรับแต่ละคลัสเตอร์ คุณสามารถ:

- **หยุดชั่วคราว** หรือ **ดำเนินการต่อ** สำหรับคลัสเตอร์ การหยุดคลัสเตอร์ชั่วคราวจะเป็นการหยุด geozone ทุกแห่งที่อยู่ภายในคลัสเตอร์นั้นด้วย
- **แก้ไข** ชื่อคลัสเตอร์หรือคูลดาวน์
- **ลบ** คลัสเตอร์ สามารถลบได้เฉพาะคลัสเตอร์ที่ไม่มี geozones แนบอยู่เท่านั้น