メインコンテンツへスキップ

一般的なセットアップの問題

OneSignalダッシュボードのセットアップを確認

WordPressセットアップガイドの各手順を完了していることを確認してください:
  • OneSignalアプリを作成するときにWordPress Pluginオプションを選択します
  • サイトURLはブラウザのURLと完全に一致する必要があります
    • たとえば、https://example.comhttps://www.example.com同じではありません。1つのバージョンを一貫して使用してください。
    • プッシュでは1つのサイトオリジンのみがサポートされます。Same-origin policyを参照してください。
  • 少なくとも1つの権限プロンプトを追加していることを確認してください。

OneSignalコードを手動で追加しないでください

OneSignal WordPressプラグインは、初期化スクリプトとService Workerを自動的に含めます。
  • OneSignal JavaScriptの init コードをサイトに追加しないでください
  • WordPressプラグインとカスタムコードセットアップ併用しないでくださいinit メソッドをカスタマイズする必要がある場合は、プラグインをアンインストールしてからコードとService Workerを手動で追加してください。

投稿公開時に通知を送信する

投稿、ページ、またはカスタム投稿タイプを公開すると、OneSignalはサブスクライバーに自動的に通知を送信できます。
OneSignal Push Notificationsメタボックス——必要に応じてドラッグして位置を変更できます
投稿が公開または更新されたときに通知を送信するチェックボックスが表示されない場合は、次の項目を確認してください:
  1. エディターの右側と下部にあるメタボックスを確認してください。必要に応じてドラッグ&ドロップできます。
  2. エディター上部の画面オプションを確認し、OneSignal Push Notificationsメタボックスがチェックされていることを確認してください。
OneSignal Push Notificationsメタボックスがチェックされた画面オプション
  1. カスタム投稿タイプを使用しているか確認してください。通常、URLに post_type=your_custom_type として表示されます。使用している場合は、OneSignal WordPressプラグイン設定カスタム投稿タイプフィールドにカスタム投稿タイプを追加してください。
OneSignal WordPressプラグイン設定のカスタム投稿タイプフィールド

サイトのトラブルシューティング方法

1

プラグインがアクティブであることを確認し、開発者ツールを開く

プラグインを有効にして、通常の(シークレットモードではない)ブラウザウィンドウでサイトを読み込みます。
WordPressサイトでコンソールタブが選択された状態のブラウザ開発者ツール
2

OneSignalエラーのコンソールを確認

Consoleタブを開き、ページを更新し、赤または黄色のOneSignal関連のエラーを探します。 ヘルプについては、一般的なOneSignalコンソールエラーを参照してください。
3

ブラウザでサブスクリプションステータスを確認

ページの読み込みが完了し、コンソールにOneSignalのエラーが表示されていないことを確認してから、次を貼り付けます:
JavaScript
OneSignal.User.PushSubscription.id
訪問者がサブスクライブしている場合、文字列(サブスクリプションID)を返します。サブスクライブしていない、またはサブスクリプションがまだ準備できていない場合は、null または空の値が表示されることがあります。OneSignal is not defined と表示された場合は、数秒待ってから再試行するか、先に一般的なOneSignalコンソールエラーのコンソールエラーを修正してください——SDKが遅延ローダーを介してまだ読み込み中の可能性があります。
ブラウザコンソールにOneSignalユーザーPushSubscription idの文字列結果が表示されている
4

OneSignalダッシュボードでサブスクリプションIDを確認

OneSignalダッシュボードAudience > Subscriptions に移動し、上記で返されたIDを検索します。
サブスクリプションIDルックアップを示すOneSignalダッシュボードのSubscriptions検索フィールド
5

テストプッシュ通知を送信

サブスクリプションが存在し、ステータスがSubscribedの場合、Pushガイドに従って通知を送信します。 何も表示されない場合は、ブラウザ固有の修正については通知が表示されないを参照してください。

一般的なOneSignalコンソールエラー

SdkInitError: OneSignal: This web push config can only be used on … Your current origin is …

コンソールSdkInitErrorにウェブプッシュ設定のオリジン不一致が表示されている
OneSignalダッシュボードのサイトURLが実際のドメインと一致しません。 ブラウザに表示されるドメインと完全に一致することを確認してください。

PushPermissionNotGrantedError: The user dismissed the permission prompt.

訪問者がブラウザのプロンプトを拒否しました。クールダウン期間が終了するまで再度表示されません。 ブラウザルールについてはWeb権限プロンプトを参照するか、サイトデータをクリアしてすぐに再試行してください。

The OneSignal web SDK can only be initialized once.

コンソールエラー:OneSignalウェブSDKは一度しか初期化できない
OneSignalを2回読み込んでいます。プラグインを使用している場合は、手動で追加したOneSignalコードを削除してください。

Installing service worker failed.. 403 or 404 error

コンソールエラー:Service Workerのインストールが403または404エラーで失敗した
このファイルがアクセス可能であることを確認してください(your-site.com を実際のドメインに置き換え、デフォルトと異なる場合は実際のプラグインフォルダ名に合わせてください): https://your-site.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js そうでない場合は、CDNまたはキャッシュの問題を修正するために一般的なプラグインサポートを参照してください。

一般的なプラグインサポート

CDNとキャッシュプラグインは、OneSignalの必要なファイルをブロックする可能性があります。以下のパスはプラグインディレクトリが onesignal-free-web-push-notifications であることを前提としています。インストールで異なるフォルダ名を使用している場合は適宜調整してください。

Autoptimize

Excluded scriptsに追加:
wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/(.*)

WP Rocket

CDN > Exclude Files From CDNの下に追加:
(.*)/onesignal-free-web-push-notifications/sdk_files/(.*)

LiteSpeed Cache

CDN > Exclude Pathの下に追加:
(.*)/onesignal-free-web-push-notifications/sdk_files/(.*)
次に保存を押します。

WP Super Cache

  1. Settings > WP Super Cache > CDNに移動
  2. Exclude if substringに含める:onesignal-free-web-push-notifications
  3. Contents > Delete Cacheをクリック

WP Engine

WP EngineはそのCDNを通じてプラグインURLを書き換える場合があります。HTML後処理ルールは環境ごとに異なります。以下のスニペットはあくまで例です——適用前にWP Engineサポートまたはユーザーポータルでパスを確認してください。 WP Engine plugin > General Settings > HTML Post-Processingで、以下のようなルールが必要になる場合があります。各プレースホルダーをあなたのサイトとWP Engine CDNホスト名の実際の値に置き換えてください:
プレースホルダー置き換える内容
YOURSITEHERE裸のドメイン(正規表現セグメント)、例:example.com の場合は example
mywpenginehandleHereWP Engineのインストール名(.wpengine.com の前のサブドメイン)
wpengineCDNpathHereWP EngineのNetDNA / CDNパスセグメント(CDN URLに表示されることが多い)
mywebsiteHereパスを含まないライブサイトのオリジン、例:https://example.com
text
#https?://(www\.)?(YOURSITEHERE\.com|mywpenginehandleHere.wpengine.com|wpengineCDNpathHere.wpengine.netdna-(ssl|cdn).com)/wp-(content|includes)#
=> https://wpengineCDNpathHere-wpengine.netdna-ssl.com/wp-$4
#https://wpengineCDNpathHere-wpengine.netdna-ssl.com/plugins/onesignal-free-web-push-notifications/#
=> https://mywebsiteHere.com/wp-content/plugins/onesignal-free-web-push-notifications/
#https://wpengineCDNpathHere-wpengine.netdna-ssl.com/wp-content/plugins/onesignal-free-web-push-notifications/#
=> https://mywebsiteHere.com/wp-content/plugins/onesignal-free-web-push-notifications/

W3 Total Cache

  1. Performance > CDNに移動
  2. Rejected filesの下に追加:
{plugins_dir}/onesignal-free-web-push-notifications/sdk_files/*
W3 Total Cache CDNの拒否ファイルリストにOneSignal sdk_filesパスが含まれている

BunnyCDN

プラグインのCDN Excluded Pathsでonesignalを除外します。
BunnyCDN WordPressプラグインの除外パスにonesignalが含まれている

CDN Enabler

Settings > CDN Enablerで、「Exclusions」にこれを追加:
onesignal-free-web-push-notifications

PressCDN

Exclude Directoriesに追加:
/wp-content/plugins/onesignal-free-web-push-notifications/

Breeze

Settings > CDN > Exclude Contentに追加:
/onesignal-free-web-push-notifications/sdk_files/
BreezeのCDN除外コンテンツフィールドにOneSignal sdk_filesパスが含まれている

Hummingbird Pro

Hummingbird > Asset Optimizationに移動します。JavaScript(OneSignalアセットが含まれる場合はCSSも)の下で、URLに onesignal-free-web-push-notifications または OneSignalSDK を含むファイルを見つけます。ミニファイ/結合/遅延から除外するか、それらのアセットを読み込まない最適化に切り替えて、プラグインがそれらを書き換えたり遅延させたりしないようにします。
スクリプト除外を表示しているHummingbird Proアセット最適化リスト

Sucuri

OneSignalファイルを許可するには、SucuriのWhitelistガイドに従ってください。

Solid Security(旧iThemes Security)

OneSignalSDKWorker.js.php が動作できるよう、System TweaksDisable PHP in Plugins(または同等のオプション)を無効にします。
セキュリティプラグイン設定でプラグインのPHP許可が未チェックまたは無効になっている

Defender Security plugin

「Prevent PHP execution」を有効にしないでください。 Defender Plugin > Security Tweaksに移動し、設定が無効になっていることを確認します。

Service Workerアクセス用の.htaccessの例

<Files *.php>
Order allow,deny
Deny from all
</Files>
<Files OneSignalSDKWorker.js.php>
Allow from all
ForceType 'application/javascript; charset=UTF-8'
</Files>
<Files OneSignalSDKWorker.js>
Allow from all
ForceType 'application/javascript; charset=UTF-8'
</Files>
Apache 2.4+ では Order allow,deny の代わりに Require all denied / Require all granted を使用することが多いです。ホストに確認するか、サーバーのApacheバージョンに合わせてルールを調整してください。

通知送信後のサーバー速度低下またはサイトにアクセスできない

通知を送信した後にサーバーが速度低下したり、アクセスできなくなったりする場合、多くの場合、通知アセットからの負荷の増加またはサーバーリソースの制限が原因です。

独自の通知アイコンをホストしないでください

通知で使用される画像を自己ホストしないでください。独自の通知アイコンまたは画像をホストすると、通知が送信されると同時にすべての受信者のブラウザが画像を取得しようとするため、サーバーが過負荷になる可能性があります。 サーバーの負担を軽減するには、高並行アクセス用に最適化された画像ホスティングソリューションまたはCDNサービスを使用してください。

ホスティングリソースのアップグレードを検討してください

サーバーの問題が続く場合は、次のことが必要になる場合があります:
  • ホスティングプランをアップグレード: 大規模な通知送信を処理するには、より高い帯域幅またはより強力なホスティングが必要になる場合があります。
  • ホスティングプロバイダーに相談: プロバイダーは、ホスティング環境に固有の洞察または最適化を提供できます。