# Guideline 4.5.4とは：Appleにプッシュ通知でリジェクトされたら

> Guideline 4.5.4では、プロモーション通知にアプリ内での明示的な同意とオプトアウト手段が必要です。また、アプリは通知なしでも動作しなければなりません。

元のページ：[Guideline 4.5.4とは：Appleにプッシュ通知でリジェクトされたら](https://devoria.fr/ja/blog/guideline-4-5-4-push-notifications-app-store-rejection)
著者：[Mehdi Azizi](https://devoria.fr/ja/mehdi-azizi)
公開日：2026-11-04
内容の最終更新：2026-11-04


Guideline 4.5.4はプッシュ通知に関するルールです。アプリは通知なしでも動作しなければならず、通知にセンシティブな情報を含めてはいけません。同意なしにプロモーションに使うことも禁止です。**マーケティング通知には、iOSの許可とは別に、アプリ内に書かれた同意文と、同意を取り消すためのスイッチが必要です。**

僕は自分のiOSアプリをExpoで公開しています。トレードシミュレーターのTradaZenでは、割引を告知する通知を削除しました。代わりにオファーを含まないリマインダーにして、そのことをレビュアーに申告しています。このガイドは、Appleのガイドライン本文、開発者ライセンス、公式ドキュメント、そしてこの実例をもとにしています。リジェクト理由の全体像は[Appleがアプリをリジェクトする理由](https://devoria.fr/ja/blog/apple-app-rejection-reasons-fixes)を読んでください。

## Guideline 4.5.4には何が書かれている？

このルールは[App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/#4.5.4)のセクション4「Design」、4.5「Apple Sites and Services」にあります。だからリジェクトの見出しは「Guideline 4.5.4 - Design - Apple Sites and Services」になります。本文が定めている制限は3つです。

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」が求められます。

最後の一文では、悪用するとサービスへのアクセスを失う可能性があると警告しています。関連するルールも2つあります。4.5.3は通知によるスパムを禁止しています。[5.1.2(i)](https://devoria.fr/ja/blog/guideline-5-1-2-third-party-ai-att-data-sharing)は、機能、コンテンツ、報酬を利用する条件として通知の有効化を求めることを禁止しています。

## 開発者ライセンスで追加されること

ガイドラインが扱うのはプッシュ通知です。登録時に同意した[Apple Developer Program License Agreement](https://developer.apple.com/support/terms/apple-developer-program-license-agreement/#A1)の付属書1(Attachment 1)は、3つの点でさらに踏み込んでいます。

- **ローカル通知も対象。** 第2.2条は「the APN or Local Notifications」を対象にしています。サーバーを使わずアプリ内でスケジュールしたリマインダーにも、同じルールが適用されます。
- **プロモーションの定義が広い。** アップセルに加えて、「sending any messages to promote the use of Your Application or advertise the availability of new features or versions」も含まれます。
- **iOSのダイアログは迂回できない。** 第1.3条は、Appleの同意パネルを回避することを禁止しています。同意を拒否または取り消されたら、もう何も送れません。

僕の解釈では、**「アプリに戻ってきて」というメッセージは、価格が入っていなくてもプロモーションに近いものです。** Appleはこのケースについて明言していません。だから僕は、この種のリマインダーをレビュアーに申告しています。

## 4.5.4のリジェクトメッセージは何を意味する？

一番よく記録されているリジェクトは、通知なしでは動かないアプリに対するものです。2018年の[B4Xフォーラムのスレッド](https://www.b4x.com/android/forum/threads/apple-app-store-rejected.89295/)では、Appleが「Push notifications must be optional and must obtain the user's consent to be used within the app.」と書いています。その後、開発者は許可を拒否すると画面が真っ黒になると報告しています。スレッドで挙がった原因は、通知トークンを受け取るまで表示されないUIでした。

**レビュアーは、何が起きるかを見るために許可を拒否するものと考えてください。** アプリが止まる、しつこく求める、機能を取り上げる、といったことがあれば、4.5.4か5.1.2(i)に引っかかります。同意なしのマーケティングについては、最近の公開されたリジェクトメッセージは見つけられませんでした。

## どの通知にどの同意が必要？

僕の判断表は、Appleのガイドライン本文、ライセンス、ヒューマンインターフェイスガイドラインを突き合わせたものです。「トライアル終了」と「復帰リマインダー」の行は僕の解釈で、Appleが文書で示した立場ではありません。

| 通知の種類                   | 必要な同意               | 準拠した例                         |
| ---------------------------- | ------------------------ | ---------------------------------- |
| 操作への応答                 | iOSのダイアログ          | 「エクスポートの準備ができました」 |
| ユーザーが選んだリマインダー | iOSのダイアログ          | 19時に今日のレッスン               |
| トライアル終了、更新         | iOSのダイアログ          | 「トライアルは12日に終了します」   |
| 復帰リマインダー             | iOSのダイアログ + 慎重に | 価格なし、1回だけ                  |
| オファー、割引               | iOSのダイアログ + 同意   | アプリ内のチェックボックス         |
| アプリの新機能               | iOSのダイアログ + 同意   | 登録者にだけ送信                   |
| プライベートメッセージ、健康 | 内容は絶対に含めない     | 「新しいメッセージ」               |
| 仮通知(provisional)          | 最初はダイアログなし     | 音もバナーもなしで届く             |

「iOSのダイアログ」はシステムの許可のことです。「同意」はアプリ内の独立した選択で、何を送るかを説明する一文と、デフォルトでオフのスイッチを指します。

### サブスクリプションのリマインダーとオファー

Appleのヒューマンインターフェイスガイドラインの[Managing notifications](https://developer.apple.com/design/human-interface-guidelines/managing-notifications)のページでは、サブスクリプションが例に挙がっています。マーケティング通知を承諾した人なら「an offer to become a subscriber」を歓迎するかもしれない、という内容です。さらに2つの義務が加えられています。考えを変えられるアプリ内の設定画面を用意すること、そしてマーケティングには「Time Sensitive」レベルを絶対に使わないことです。

僕が引いている線はこうです。**すでに済んだ購入について知らせるリマインダーはオファーではなく、購入を促すメッセージはオファーです。**「トライアルは12日に終了します」は情報です。「24時間限定50%オフ」は販売です。通知から開く購入画面は、引き続き[ガイドライン3.1.2](https://devoria.fr/ja/blog/guideline-3-1-2-subscription-rejection)の対象です。

## ソフトな通知、つまり仮通知

Appleは[許可に関するドキュメント](https://developer.apple.com/documentation/usernotifications/asking-permission-to-use-notifications)で「provisional authorization」について説明しています。アプリは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では、オンボーディングの報酬やレッスン完了の後などに表示しています。[レビュー依頼](https://devoria.fr/ja/blog/guideline-5-6-3-app-review-request-rejection)と同じ考え方です。
2. **マーケティングの同意を別に用意する。** デフォルトでオフのスイッチに、わかりやすい一文を添えます。たとえば「オファーと新機能のお知らせを受け取る(最大週1回)」です。
3. **設定画面を用意する。** リマインダーとオファーは、iOSの「設定」だけでなくアプリ内でもオフにできるようにします。
4. **送信時にフィルタする。** サーバー、またはローカルのスケジューラーは、承諾した人にだけプロモーションを送ります。
5. **通知なしでもすべて動くようにする。** 拒否しても、画面も機能も報酬もブロックされないようにします。

## TradaZen：僕が削除した通知

2026年10月12日、TradaZenのあるバージョンが、操作的な手段で購入させることを対象とするガイドライン5.6でリジェクトされました。Appleは問題の箇所を指摘しませんでした。そこで、通知も含めて購入までの流れを全部見直しました。

問題のある通知が1つありました。オンボーディング中やサブスクリプション画面でアプリを離れると、「あなただけの限定割引があります。」というローカル通知がスケジュールされていました。これはiOSの許可だけに依存していて、別のマーケティング同意はありませんでした。**まさに4.5.4とライセンスが禁じている、明示的な同意のないプロモーションです。** アプリの30言語すべてから削除しました。

代わりに置いたのは、1回だけのリマインダーです。「あなたのコースが待っています。急がなくて大丈夫、好きなときに再開してください。」制限は次のとおりです。

- 通知が許可されている場合にだけ送る
- 1インストールにつき1回だけ、オンボーディングまたはサブスクリプション画面を離れてから5分後に送る
- それより前にユーザーが戻ってきたらキャンセルする
- 価格、割引、タイマー、音は一切なし

このリマインダーは、先ほど説明したグレーゾーンに入ったままです。隠してはいません。審査メモ(App Review notes)とレビュアーへの返信に書いています。**申告したリマインダーなら議論の余地がありますが、隠したリマインダーは小細工に見えます。**

## 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/)します。まず修正してください。必須化をやめる、マーケティングの同意を追加する、または通知文を整理する。そのうえで新しいビルドを作ります。僕なら使うテンプレートです。状況に合わせて調整してください。

```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のダイアログは役に立つ操作の後に表示し、最初の画面では絶対に出さない。
- ローカルでもリモートでも、すべてのプロモーションが、デフォルトでオフのマーケティング同意に基づいている。
- アプリ内の設定画面で、リマインダーとオファーをオフにできる。
- 通知文に、健康データ、金額、プライベートメッセージを表示しない。
- プロモーションに「Time Sensitive」レベルを使わない。
- 審査メモに、最初の数日間に送る通知を列挙している。
- すべての許可を拒否してフローをテストした。テスト用にビルドをインストールする方法は[TestFlight](https://devoria.fr/ja/blog/testflight-iphone-app-beta-testing)のガイドで説明しています。

## 提出前に申請内容をチェックする

[Review Kit](https://devoria.fr/ja/kits/app-review)には、僕の提出前チェックリスト、テスター向け審査メモのテンプレート、プロジェクトを見直すClaude Codeのスキルが入っています。人の目で確認したいなら、[僕との1時間セッションを予約](https://devoria.fr/ja/coaching)してください。ビデオ通話で、通知と設定画面を一緒に見直します。全体の流れは[Appleにリジェクトされたアプリ](https://devoria.fr/ja/expertise/app-rejected-by-apple)のページにまとめています。

初めてのリリースを準備中ですか？[無料の診断を受けてください](https://devoria.fr/ja/diagnostic)。ステップを正しい順番に整理し、僕のAppleリジェクト対策チェックリストを送ります。

## よくある質問

### 「Guideline 4.5.4 - Design - Apple Sites and Services」とはどういう意味？

Appleが、通知が必須になっている、プライバシーへの配慮が足りない、または同意なしのプロモーションだと判断したときのリジェクトの見出しです。見出しに続く文を読んでください。レビュアーが確認した内容が書かれています。

### オンボーディング中に通知の許可を求めてもいい？

はい。拒否しても何もブロックされず、通知の価値が伝わる場面の後に求めるならかまいません。ただし、報酬を同意の条件にするのは絶対にやめてください。5.1.2(i)で禁止されています。

### トライアル終了の通知はマーケティング？

僕の解釈では、進行中のトライアルについて知らせるだけならマーケティングではありません。割引や別のサブスクリプションを提案するならプロモーションになり、マーケティングの同意が必要です。

### ローカル通知も4.5.4の対象？

ガイドラインが扱うのはプッシュ通知ですが、開発者ライセンスの付属書1は、プロモーションに関するルールをローカル通知にも適用しています。同じように扱ってください。

### 仮通知ならマーケティングの同意は不要？

いいえ。最初のiOSダイアログを省けるだけで、プロモーションはプロモーションです。アプリ内での明示的な同意と、オプトアウトの手段が必要です。


## あなたのプロジェクト

[Review Kit](https://devoria.fr/ja/kits/app-review)：私のApp Store審査チェックリスト、修正済みのAppleのリジェクト事例、Google Play用チェックリスト、Claude Codeのスキル3つ。￥8,500。

[iOS & Android Kit](https://devoria.fr/ja/kits/ios)：Claude CodeでiPhoneとAndroidのアプリを作りましょう。私のアプリのスターターコード、ストア公開までの手順、すべてのキットが揃っています。￥17,500。

[診断：あなたとiPhoneアプリの間にあるもの](https://devoria.fr/ja/diagnostic)：7つの質問、60秒。iPhoneアプリの公開を本当に妨げているもの、4ステップのロードマップ、あなたに合ったキットがわかります。
