# Guideline 4.5.4: Apple ปฏิเสธแอปเพราะ push notification

> Guideline 4.5.4: การแจ้งเตือนเชิงโปรโมชันต้องได้รับความยินยอมชัดเจนในแอปและมีวิธียกเลิก และแอปต้องใช้งานได้แม้ไม่เปิดการแจ้งเตือน

หน้าต้นฉบับ: [Guideline 4.5.4: Apple ปฏิเสธแอปเพราะ push notification](https://devoria.fr/th/blog/guideline-4-5-4-push-notifications-app-store)
ผู้เขียน: [Mehdi Azizi](https://devoria.fr/th/mehdi-azizi)
เผยแพร่: 2026-11-04
แก้ไขเนื้อหาล่าสุด: 2026-11-04


Guideline 4.5.4 กำกับดูแลเรื่อง push notification แอปของคุณต้องใช้งานได้โดยไม่ต้องพึ่งการแจ้งเตือน ห้ามใส่ข้อมูลอ่อนไหวลงไป และห้ามใช้เพื่อโปรโมชันโดยไม่ได้รับความยินยอม **การแจ้งเตือนเชิงการตลาดต้องมีข้อความขอความยินยอมเป็นลายลักษณ์อักษรในแอป และมีสวิตช์ให้ถอนความยินยอมได้ นอกเหนือจากการอนุญาตของ iOS**

ผมเผยแพร่แอป iOS ของตัวเองด้วย Expo ใน TradaZen ซึ่งเป็นแอปจำลองการเทรดของผม ผมลบการแจ้งเตือนที่ประกาศส่วนลดออก แล้วแทนที่ด้วยการเตือนที่ไม่มีข้อเสนอใด ๆ และแจ้งให้ reviewer ทราบ คู่มือนี้อ้างอิงจากข้อความของ Apple, ข้อตกลงสิทธิ์สำหรับนักพัฒนา, เอกสารของ Apple และกรณีนี้ ถ้าอยากเห็นภาพรวมของเหตุผลที่ถูกปฏิเสธ อ่าน [ทำไม Apple ถึงปฏิเสธแอป](https://devoria.fr/th/blog/apple-app-rejection-reasons-real-cases)

## Guideline 4.5.4 ว่าไว้อย่างไร?

กฎนี้อยู่ในหมวด 4 "Design" ส่วน 4.5 "Apple Sites and Services" ของ [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#4.5.4) จึงเป็นที่มาของหัวข้อการปฏิเสธ: "Guideline 4.5.4 - Design - Apple Sites and Services" ข้อความนี้กำหนดข้อจำกัดไว้สามข้อ

1. **ห้ามบังคับให้เปิดการแจ้งเตือน** "Push Notifications must not be required for the app to function." การปฏิเสธหน้าต่างขออนุญาตของ iOS ต้องไม่ทำให้อะไรติดขัด
2. **ห้ามมีข้อมูลอ่อนไหว** การแจ้งเตือน "should not be used to send sensitive personal or confidential information" เพราะการแจ้งเตือนแสดงบนหน้าจอล็อก ใครก็มองเห็นได้
3. **ห้ามโปรโมชันโดยไม่ได้รับความยินยอม** การตลาดเป็นสิ่งต้องห้าม "unless customers have explicitly opted in to receive them via consent language displayed in your app's UI" และต้องมี "a method in your app for a user to opt out"

ประโยคสุดท้ายเตือนว่าการใช้ในทางที่ผิดอาจทำให้เสียสิทธิ์ใช้บริการ มีกฎใกล้เคียงอีกสองข้อที่เติมภาพให้ครบ ข้อ 4.5.3 ห้ามสแปมผ่านการแจ้งเตือน ข้อ [5.1.2(i)](https://devoria.fr/th/blog/guideline-5-1-2-third-party-ai-att-data-sharing) ห้ามบังคับให้เปิดการแจ้งเตือนเพื่อเข้าถึงฟีเจอร์ เนื้อหา หรือรางวัล

## สิ่งที่ข้อตกลงสิทธิ์สำหรับนักพัฒนาเพิ่มเติม

Guidelines พูดถึง push notification แต่ภาคผนวก 1 ของ [Apple Developer Program License Agreement](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#A1) ซึ่งคุณยอมรับตอนสมัคร ไปไกลกว่านั้นในสามประเด็น

- **การแจ้งเตือนแบบ local ก็นับด้วย** ข้อ 2.2 ครอบคลุม "the APN or Local Notifications" การเตือนที่ตั้งเวลาไว้ในแอปโดยไม่มีเซิร์ฟเวอร์ ก็ต้องทำตามกฎเดียวกัน
- **นิยามของโปรโมชันกว้างมาก** รวมถึงการขายเพิ่ม (upsell) และ "sending any messages to promote the use of Your Application or advertise the availability of new features or versions"
- **ห้ามแตะต้องหน้าต่างขออนุญาตของ iOS** ข้อ 1.3 ห้ามเลี่ยงหน้าต่างขอความยินยอมของ Apple ถ้าผู้ใช้ปฏิเสธหรือถอนความยินยอม คุณต้องไม่ส่งอะไรอีก

ความเห็นของผม: **ข้อความแบบ "กลับมาที่แอปสิ" ใกล้เคียงกับโปรโมชัน แม้จะไม่มีราคาก็ตาม** Apple ไม่ได้ชี้ขาดกรณีนี้ และนั่นคือเหตุผลที่ผมแจ้งการเตือนแบบนี้ให้ reviewer ทราบ

## ข้อความปฏิเสธ 4.5.4 หมายความว่าอะไร?

การปฏิเสธที่มีหลักฐานชัดที่สุดคือแอปที่ใช้งานไม่ได้ถ้าไม่มีการแจ้งเตือน ใน[กระทู้ฟอรัม B4X](https://www.b4x.com/android/forum/threads/apple-app-store-rejected.89295/) ปี 2018 Apple เขียนว่า: "Push notifications must be optional and must obtain the user's consent to be used within the app." จากนั้นนักพัฒนาบอกว่าเจอหน้าจอดำหลังปฏิเสธการอนุญาต สาเหตุที่คนในกระทู้สันนิษฐานคือ UI ที่รอ token ของการแจ้งเตือนก่อนจะแสดงผล

**ให้ถือว่า reviewer จะปฏิเสธการอนุญาตทุกอย่างเพื่อดูว่าเกิดอะไรขึ้น** ถ้าแอปค้าง เซ้าซี้ หรือตัดฟีเจอร์ออก คุณจะโดน 4.5.4 หรือ 5.1.2(i) ส่วนเรื่องการตลาดโดยไม่ได้รับความยินยอม ผมยังไม่เจอข้อความปฏิเสธที่เผยแพร่ต่อสาธารณะเมื่อเร็ว ๆ นี้

## การแจ้งเตือนแต่ละแบบต้องได้รับความยินยอมแบบไหน?

ตารางของผมนำข้อความของ Apple, ข้อตกลงสิทธิ์ และคู่มือการออกแบบ UI มาประกอบกัน แถว "สิ้นสุดช่วงทดลองใช้" และ "เตือนให้กลับมา" เป็นความเห็นของผม ไม่ใช่จุดยืนที่ Apple เขียนไว้

| ประเภทการแจ้งเตือน                    | ความยินยอมที่ต้องมี       | ตัวอย่างที่ถูกต้อง                 |
| ------------------------------------- | ------------------------- | ---------------------------------- |
| ตอบสนองต่อการกระทำ                    | หน้าต่าง iOS              | "ไฟล์ export ของคุณพร้อมแล้ว"      |
| การเตือนที่ผู้ใช้เลือกเอง             | หน้าต่าง iOS              | บทเรียนประจำวันตอน 19:00           |
| สิ้นสุดช่วงทดลองใช้, การต่ออายุ       | หน้าต่าง iOS              | "ช่วงทดลองใช้ของคุณจะหมดวันที่ 12" |
| เตือนให้กลับมา                        | หน้าต่าง iOS + ระมัดระวัง | ไม่มีราคา ส่งครั้งเดียว            |
| ข้อเสนอหรือส่วนลด                     | หน้าต่าง iOS + ความยินยอม | ช่องที่ติ๊กในแอป                   |
| ของใหม่ในแอป                          | หน้าต่าง iOS + ความยินยอม | ส่งเฉพาะผู้ที่สมัครรับ             |
| ข้อความส่วนตัว, สุขภาพ                | ห้ามมีเนื้อหาเด็ดขาด      | "ข้อความใหม่"                      |
| การแจ้งเตือนแบบชั่วคราว (provisional) | ไม่มีหน้าต่างในตอนแรก     | มาถึงแบบไม่มีเสียงและไม่มีแบนเนอร์ |

"หน้าต่าง iOS" คือการอนุญาตของระบบ "ความยินยอม" คือตัวเลือกแยกต่างหากในแอปของคุณ: ประโยคที่บอกว่าคุณจะส่งอะไร และสวิตช์ที่ปิดไว้เป็นค่าเริ่มต้น

### การเตือนเรื่อง subscription และข้อเสนอ

หน้า [Managing notifications](https://developer.apple.com/design/human-interface-guidelines/managing-notifications) ในคู่มือการออกแบบ UI ของ Apple ยกตัวอย่าง subscription: ผู้ใช้อาจชอบ "an offer to become a subscriber" ถ้าเขายอมรับการแจ้งเตือนเชิงการตลาดแล้ว และยังเพิ่มข้อบังคับอีกสองข้อ: ต้องมีหน้าตั้งค่าในแอปให้เปลี่ยนใจได้ และห้ามใช้ระดับ "Time Sensitive" กับการตลาดเด็ดขาด

เส้นแบ่งที่ผมยึดไว้: **การเตือนที่ให้ข้อมูลเกี่ยวกับสิ่งที่ซื้อไปแล้วไม่ใช่ข้อเสนอ ส่วนข้อความที่กระตุ้นให้ซื้อคือข้อเสนอ** "ช่วงทดลองใช้ของคุณจะหมดวันที่ 12" คือการให้ข้อมูล "ลด 50% ภายใน 24 ชั่วโมง" คือการขาย หน้าซื้อที่การแจ้งเตือนเปิดขึ้นมายังคงต้องทำตาม[กฎ 3.1.2](https://devoria.fr/th/blog/guideline-3-1-2-app-rejected-subscription)

## การแจ้งเตือนแบบนุ่มนวล หรือแบบชั่วคราว

Apple เรียกสิ่งนี้ว่า "provisional authorization" ใน[เอกสารเรื่องการขออนุญาต](https://developer.apple.com/documentation/usernotifications/asking-permission-to-use-notifications) แอปส่งการแจ้งเตือนได้โดยไม่ต้องแสดงหน้าต่างของ iOS การแจ้งเตือนจะมาถึงแบบไม่มีเสียงและไม่มีแบนเนอร์ อยู่แค่ในประวัติของศูนย์การแจ้งเตือน พร้อมปุ่มให้เลือกเก็บไว้หรือปิด ใน Expo นี่คือออปชันหนึ่งของ [requestPermissionsAsync](https://docs.expo.dev/versions/latest/sdk/notifications/):

```ts
import * as Notifications from "expo-notifications";

await Notifications.requestPermissionsAsync({
  ios: {
    allowAlert: true,
    allowBadge: true,
    allowSound: true,
    allowProvisional: true,
  },
});
```

ฟิลด์ `ios.status` จะมีค่าเป็น `IosAuthorizationStatus.PROVISIONAL` ตราบใดที่ผู้ใช้ยังไม่ได้เลือก **การแจ้งเตือนแบบชั่วคราวใช้แทนหน้าต่างของ iOS ได้ แต่ใช้แทนความยินยอมทางการตลาดไม่ได้** โปรโมชันที่ส่งแบบชั่วคราวก็ยังเป็นโปรโมชันอยู่ดี

ระวังเรื่องคำศัพท์ด้วย ใน TradaZen ผมเรียกการเตือนที่มีน้ำเสียงสบาย ๆ และส่งเฉพาะเมื่อผู้ใช้ยอมรับหน้าต่างของ iOS แล้วว่า "การแจ้งเตือนแบบนุ่มนวล" ซึ่งไม่ใช่การอนุญาตแบบชั่วคราว

## ตั้งค่าความยินยอมที่ชัดเจนด้วย Expo

1. **ขออนุญาต iOS ในจังหวะที่เหมาะสม** Apple แนะนำให้ขอหลังการกระทำที่แสดงให้เห็นประโยชน์ ไม่ใช่ตอนเปิดแอปครั้งแรก ใน TradaZen หน้าต่างนี้จะขึ้นหลังได้รับรางวัลใน onboarding หรือหลังเรียนจบบทเรียน เป็นต้น ตรรกะเดียวกับ[การขอให้รีวิว](https://devoria.fr/th/blog/guideline-5-6-3-app-review-request-rejected)
2. **เพิ่มความยินยอมทางการตลาดแยกต่างหาก** สวิตช์ที่ปิดไว้เป็นค่าเริ่มต้น พร้อมประโยคที่ชัดเจน เช่น "รับข้อเสนอและของใหม่ ไม่เกินสัปดาห์ละครั้ง"
3. **มีหน้าตั้งค่า** การเตือนและข้อเสนอต้องปิดได้ในแอป ไม่ใช่แค่ในการตั้งค่าของ iOS
4. **กรองตอนส่ง** เซิร์ฟเวอร์ของคุณ หรือตัวตั้งเวลาแบบ local จะส่งโปรโมชันเฉพาะคนที่ยอมรับแล้วเท่านั้น
5. **ให้ทุกอย่างใช้งานได้แม้ไม่ยินยอม** การปฏิเสธต้องไม่บล็อกหน้าจอ ฟีเจอร์ หรือรางวัลใด ๆ

## TradaZen: การแจ้งเตือนที่ผมลบออก

วันที่ 12 ตุลาคม 2026 TradaZen เวอร์ชันหนึ่งถูกปฏิเสธด้วยกฎ 5.6 ซึ่งว่าด้วยการซื้อที่ได้มาจากการชักจูงหลอกล่อ Apple ไม่ได้ระบุว่าองค์ประกอบไหนที่เป็นปัญหา ผมจึงไล่ตรวจขั้นตอนการซื้อทั้งหมด รวมถึงการแจ้งเตือนด้วย

มีการแจ้งเตือนหนึ่งที่เป็นปัญหา การออกจากแอประหว่าง onboarding หรือที่หน้า subscription จะตั้งเวลาข้อความ local นี้ไว้: "ผมมีส่วนลดพิเศษสำหรับคุณคนเดียว" ข้อความนี้ขึ้นอยู่กับการอนุญาตของ iOS อย่างเดียว ไม่มีความยินยอมทางการตลาดแยกต่างหาก **นี่คือโปรโมชันที่ไม่มีความยินยอมชัดเจนตามที่ 4.5.4 และข้อตกลงสิทธิ์อธิบายไว้** ผมลบมันออกจากทั้งสามสิบภาษาของแอป

แทนที่ด้วยการเตือนเพียงครั้งเดียว: "เส้นทางของคุณรออยู่ กลับมาต่อเมื่อไหร่ก็ได้ ไม่ต้องรีบ" ข้อจำกัดของมันคือ:

- ส่งเฉพาะเมื่อผู้ใช้อนุญาตการแจ้งเตือนแล้ว
- ส่งครั้งเดียวต่อการติดตั้ง ห้านาทีหลังออกจาก onboarding หรือหน้า subscription
- ยกเลิกถ้าผู้ใช้กลับมาก่อน
- ไม่มีราคา ไม่มีส่วนลด ไม่มีตัวนับเวลาถอยหลัง ไม่มีเสียง

การเตือนนี้ยังอยู่ในพื้นที่สีเทาที่อธิบายไว้ข้างบน ผมไม่ได้ซ่อนมัน: มันถูกอธิบายไว้ในโน้ตสำหรับการรีวิวและในคำตอบถึง reviewer **การเตือนที่แจ้งไว้ยังคุยกันได้ แต่การเตือนที่ซ่อนไว้ดูเหมือนกลอุบาย**

## จะตอบกลับการปฏิเสธ 4.5.4 อย่างไร?

การสนทนาเกิดขึ้นใน App Store Connect ซึ่งเป็นที่ที่คุณ[ตอบกลับข้อความของ App Review](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/reply-to-app-review-messages/) แก้ไขก่อน: เอาการบังคับออก เพิ่มความยินยอมทางการตลาด หรือปรับข้อความให้สะอาด แล้วสร้าง build ใหม่ นี่คือเทมเพลตที่ผมจะใช้ ปรับตามแอปของคุณได้:

```text
Hello,

Thank you for your feedback on Guideline 4.5.4.

In the new build:
- The app works fully if notifications are denied.
- Promotional notifications are sent only to users
  who turn on "[toggle name]" in [screen]. It is off
  by default and can be turned off at any time.
- Notifications never include [sensitive data].

How to test:
1. Deny notifications at the first prompt.
2. Open [feature]: it works without them.
3. Open [screen] to see both toggles.

Best regards,
```

## เช็กลิสต์ 4.5.4 ก่อนส่งรีวิว

- แอปใช้งานได้ครบหลังปฏิเสธการอนุญาต ไม่มีหน้าจอค้างหรือรางวัลที่ถูกตัด
- หน้าต่างของ iOS ขึ้นหลังการกระทำที่มีประโยชน์ ไม่ใช่ที่หน้าจอแรก
- โปรโมชันทุกอัน ทั้งแบบ local และแบบ remote ขึ้นอยู่กับความยินยอมทางการตลาดที่ปิดไว้เป็นค่าเริ่มต้น
- มีหน้าตั้งค่าในแอปสำหรับปิดการเตือนและข้อเสนอ
- ไม่มีข้อความแจ้งเตือนใดแสดงข้อมูลสุขภาพ จำนวนเงิน หรือข้อความส่วนตัว
- ไม่มีโปรโมชันในระดับ "Time Sensitive"
- โน้ตสำหรับการรีวิวระบุการแจ้งเตือนที่ส่งในช่วงไม่กี่วันแรก
- คุณทดสอบขั้นตอนทั้งหมดโดยปฏิเสธการอนุญาตทุกอย่างแล้ว คู่มือ [TestFlight](https://devoria.fr/th/blog/testflight-test-iphone-app-before-app-store) จะแสดงวิธีติดตั้ง build ของคุณสำหรับการทดสอบนี้

## ตรวจเอกสารของคุณก่อนส่ง

[Review Kit](https://devoria.fr/th/kits/app-review) รวบรวมเช็กลิสต์ก่อนส่งของผม เทมเพลตโน้ตสำหรับผู้ทดสอบ และ skills ของ Claude Code ที่ช่วยตรวจโปรเจกต์ของคุณ ถ้าอยากให้คนช่วยดู [จองเวลาหนึ่งชั่วโมงกับผม](https://devoria.fr/th/coaching): เราจะตรวจการแจ้งเตือนและหน้าตั้งค่าของคุณด้วยกันผ่านวิดีโอคอล ขั้นตอนทั้งหมดอยู่ที่หน้า [แอปถูก Apple ปฏิเสธ](https://devoria.fr/th/expertise/app-rejected-by-apple)

กำลังเตรียมเปิดตัวแอปแรกอยู่ใช่ไหม? [ทำการวินิจฉัยฟรี](https://devoria.fr/th/diagnostic): มันจะเรียงขั้นตอนให้ถูกลำดับ และส่งเช็กลิสต์กันโดน Apple ปฏิเสธของผมให้คุณ

## คำถามที่พบบ่อย

### "Guideline 4.5.4 - Design - Apple Sites and Services" หมายความว่าอะไร?

นี่คือหัวข้อการปฏิเสธเมื่อ Apple เห็นว่าการแจ้งเตือนของคุณเป็นแบบบังคับ เปิดเผยข้อมูลมากเกินไป หรือเป็นโปรโมชันโดยไม่ได้รับความยินยอม อ่านประโยคที่ตามหลังหัวข้อ: มันบอกว่า reviewer เจออะไร

### ขอสิทธิ์การแจ้งเตือนระหว่าง onboarding ได้ไหม?

ได้ ถ้าการปฏิเสธไม่บล็อกอะไร และการขอเกิดขึ้นหลังจังหวะที่แสดงให้เห็นประโยชน์ อย่าผูกรางวัลไว้กับการยินยอมเด็ดขาด: ข้อ 5.1.2(i) ห้ามไว้

### การแจ้งเตือนว่าช่วงทดลองใช้กำลังจะหมดถือเป็นการตลาดไหม?

ความเห็นของผม: ไม่ ถ้ามันแค่ให้ข้อมูลเกี่ยวกับช่วงทดลองใช้ปัจจุบัน แต่ถ้ามันเสนอส่วนลดหรือ subscription แบบอื่น มันจะกลายเป็นโปรโมชันและต้องมีความยินยอมทางการตลาด

### การแจ้งเตือนแบบ local อยู่ภายใต้ 4.5.4 ด้วยไหม?

Guideline พูดถึง push notification แต่ภาคผนวก 1 ของข้อตกลงสิทธิ์สำหรับนักพัฒนาใช้กฎเรื่องโปรโมชันกับการแจ้งเตือนแบบ local ด้วย ให้ปฏิบัติกับมันแบบเดียวกัน

### การแจ้งเตือนแบบชั่วคราวทำให้ไม่ต้องขอความยินยอมทางการตลาดได้ไหม?

ไม่ได้ มันช่วยให้ไม่ต้องแสดงหน้าต่างของ iOS ในตอนแรก แต่โปรโมชันก็ยังเป็นโปรโมชัน: ต้องมีความยินยอมที่ชัดเจนในแอปและมีวิธีให้ยกเลิกได้


## โปรเจกต์ของคุณ

[Review Kit](https://devoria.fr/th/kits/app-review): เช็กลิสต์รีวิว App Store ของผม การถูก Apple ปฏิเสธที่ผมแก้ไขแล้ว เช็กลิสต์ของ Google Play และ skill ของ Claude Code อีกสามตัว ฿1,849

[iOS & Android Kit](https://devoria.fr/th/kits/ios): สร้างแอป iPhone และ Android ของคุณด้วย Claude Code: โค้ดเริ่มต้นจากแอปของผม เส้นทางจนถึงสโตร์ และชุดคิททั้งหมด ฿3,699

[แบบประเมิน: อะไรกั้นคุณไว้จากแอป iPhone ของคุณ](https://devoria.fr/th/diagnostic): 7 คำถาม 60 วินาที: รู้ว่าอะไรที่ขวางคุณจากการเผยแพร่แอป iPhone จริง ๆ พร้อมเส้นทาง 4 ขั้นตอนและชุดคิทที่เหมาะกับคุณ
