よくある質問
この記事では、プッシュチャネルに関するよくある質問への回答を提供します。
プッシュ通知が遅延することがあるのはなぜですか?
配信は通常、3つの段階を経ます。Brazeの処理(セグメンテーション、スケジュール、プロバイダーへの引き渡し)、BrazeからAPNsまたはFCMへの転送、そしてプロバイダーからデバイスへの配信です。遅延はどの段階でも発生する可能性があります。Brazeはプロバイダーやデバイスのキューを可視化できません。デバイス側のタイミングを絞り込む必要がある場合は、クライアントで詳細ログを使用してください。
複数のユーザーが1つのデバイスにログインするとどうなりますか?
ユーザーがデバイスまたはWebサイトからログアウトしても、別のユーザーがログインするまでプッシュ通知で到達可能な状態が続きます。別のユーザーがログインした時点で、プッシュトークンは新しいユーザーに再割り当てされます。これは、各デバイスがアプリまたはWebサイトごとに1つのアクティブなプッシュ購読しか持てないためです。
プッシュトークンが再割り当てされると、その変更はユーザープロファイルのプッシュ変更ログに反映されます。ユーザープロファイルで、エンゲージメントタブに移動します。

テストプッシュを送信すると、すべてのデバイスに届きますか?
はい。テストプッシュは、選択したユーザープロファイルに関連付けられた、プッシュが有効なすべてのデバイスに送信されます。同じユーザーでログインしている複数のスマートフォンやタブレットがある場合、有効なプッシュトークンを持つ各デバイスが通知を受信します。
テストプッシュを1台のデバイスのみに送信するには、テスト前にユーザープロファイルから他のデバイスのプッシュトークンを削除します。または、/messages/sendエンドポイントを使用して送信する場合は、apple_pushまたはandroid_pushオブジェクトでsend_to_most_recent_device_onlyをtrueに設定すると、最後にアクティブだったデバイスのみがプッシュを受信します。
「Error sending push because the payload was invalid」とはどういう意味ですか?
このメッセージは、無効なペイロード(例:空のペイロードやサイズが大きすぎるペイロード)が原因で、APNsがプッシュリクエストを拒否したことを示しています。
詳細と次のステップについては、一般的なプッシュエラーメッセージを参照してください。
オプトインしたユーザーにプッシュトークンがないのはなぜですか?
これは、ユーザーのプッシュトークンが同じデバイスを使用した別のユーザーに再割り当てされた場合に発生することがあります。
- 影響を受けたユーザーのプロファイルのエンゲージメントタブでプッシュ変更ログに移動します。
- プッシュトークンが別のユーザーに移動されたというメッセージを探します。
- プッシュトークンをコピーし、ユーザー検索バーに貼り付けます。
- プッシュトークンがまだ存在する場合、そのデバイスで最後にログインしたユーザーに移動します。
プッシュトークンを元のユーザーに再割り当てする場合:
- 元のユーザーに、プッシュトークンが欠落しているプロファイルにログインしてもらいます。
- 新しいプッシュ送信をトリガーします。デバイスレベルでプッシュが有効になっていれば、トークンがそのアカウントに戻されます。
下書きのキャンペーンをテストするとき、「モバイルアプリ内でWeb URLを開く」が常にアプリを開くのはなぜですか?
キャンペーンがまだ下書きステータスの場合、テストプッシュを送信すると、モバイルアプリ内でWeb URLを開くオプションが選択されているかどうかに関係なく、通知をタップすると常に最初にアプリが開きます。キャンペーンがライブになると、クリック時の動作は設定どおりに機能します。
アプリ内オプションなしでWeb URLを開くを選択した場合、リンクはデバイスのデフォルトブラウザーで直接開きます。モバイルアプリ内でWeb URLを開くを選択した場合、リンクはアプリ内Webビューで開きます。
iOSプッシュ証明書の「本番環境に送信」と「開発環境に送信」の違いは何ですか?
BrazeでAppleプッシュ証明書を追加する際、本番環境に送信と開発環境に送信のオプションは、Brazeがプッシュ通知を配信するために使用するAPNs(Apple Push Notification service)ゲートウェイを決定します。
- 開発環境に送信: Xcodeで開発モードでビルドされ、開発用プロビジョニングプロファイルで署名されたアプリの場合、このオプションを選択します。プッシュ通知はAppleの開発(サンドボックス)ゲートウェイを通じてルーティングされます。
- 本番環境に送信: AppleのTestFlight、App Store、またはエンタープライズ配布を通じて配布されているアプリの場合、このオプションを選択します。プッシュ通知はAppleの本番ゲートウェイを通じてルーティングされます。
誤ったオプションを選択した場合、プッシュトークンの種類がゲートウェイと一致しないため、プッシュ通知はサイレントに失敗します。通常、TestFlightまたはApp Storeを通じて配布されたアプリは本番環境に送信を使用する必要があります。

Brazeは、インポートされたプッシュトークンをアプリと環境に対する有効なフォアグラウンドプッシュトークンとして扱います。
iOSトークンをインポートする際、BrazeはそれらのApple Push Notification service(APNs)ゲートウェイ(developmentまたはproduction)を保存しません。Brazeはアプリの設定済みゲートウェイを通じてこれらのトークンに送信します。トークンが別の環境用に生成されたものであった場合、APNsはBadDeviceTokenとして拒否し、送信はバウンスされます。
Brazeがトークンのゲートウェイを保存するのは、SDKが後から同じトークンを登録し、ゲートウェイを報告した場合のみです。
「フォアグラウンドプッシュが有効」フィルターと「バックグラウンドまたはフォアグラウンドプッシュが有効」フィルターの違いは何ですか?
これらのセグメンテーションフィルターは、異なる条件をチェックします。
| フィルター | チェックする内容 | ユースケース |
|---|---|---|
| フォアグラウンドプッシュが有効 | ユーザーが有効なフォアグラウンドプッシュトークンを持っており、かつプッシュ購読ステータスがOpted-InまたはSubscribedである。 |
表示可能なプッシュ通知を受信できるユーザーをターゲットにします。 |
| バックグラウンドまたはフォアグラウンドプッシュが有効 | ユーザーがいずれかのプッシュトークン(フォアグラウンドまたはバックグラウンド)を持っており、かつプッシュ購読ステータスがOpted-InまたはSubscribedである。これには、表示可能なプッシュ通知を無効にしているが、バックグラウンドプッシュトークンをまだ持っているユーザーが含まれます。 |
アンインストール追跡、サイレントプッシュ通知、およびジオフェンシングに使用されます。 |
ユーザーはフォアグラウンドプッシュが有効でなくてもバックグラウンドまたはフォアグラウンドプッシュが有効になる場合があります。これは、ユーザーがデバイス設定で表示可能なプッシュ通知を無効にしているが、アプリがまだバックグラウンドプッシュトークンを保持している場合に発生します。詳細については、プッシュユーザーと購読を参照してください。
Brazeはプッシュメッセージが正常に送信されたことをどのように判断しますか?
メッセージは、プッシュサービスプロバイダーがメッセージを受信した時点で送信済みとして記録されます。これは、ユーザーがメッセージを受信または閲覧したことを必ずしも意味するものではありません。
iOSの場合、プッシュサービスプロバイダーはApple Push Notification Service(APNs)であり、Androidの場合は通常Firebase Cloud Messaging(FCM)です。プッシュサービスプロバイダーは成功または失敗を即座に応答します。失敗には、バウンスやネットワーク障害によるリトライが含まれる場合があります。
成功メッセージが返されると、Brazeが送信を記録し、プッシュサービスがデバイスへの配信を試みます。デバイスにすぐに到達できない場合、サービスはBrazeで設定された有効期限オプション(Androidの場合はTTL、iOSの場合はExpiry)に達するまでリトライします。メッセージがタイムアウトした場合、プッシュサービスはプッシュを破棄しますが、バウンスとはみなされません。
- アクションベース配信のプッシュキャンペーンの場合、ユーザーがキャンペーンをトリガーするアクションを実行した時点でメッセージ送信が記録されます。
- スケジュールされたキャンペーンの場合、送信時刻はメッセージがキューに入れられ、プッシュサービスプロバイダーに渡された時刻です。
- どちらの配信タイプでも、ユーザーがまだプッシュを閲覧または受信していない場合でも、メッセージはBrazeおよびユーザープロファイルのキャンペーン Receivedで「送信済み」としてマークされます。
ダッシュボードにおけるプッシュの「配信」指標は、ページ読み込み時に送信数からバウンス数を引いた値として計算されます。