Skip to main content

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

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

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

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

OneSignal WordPressプラグインは、初期化スクリプトとService Workerを自動的に含めます。バージョン3+は、プレーンなOneSignalSDKWorker.jsをプラグインのsdk_filesディレクトリでホストし、プラグインのinitでパスを設定します。ワーカーをサイトルートにアップロードする必要はなく、serviceWorkerPathを自分で設定する必要もありません。 カスタムコードのinitオプションやカスタムのワーカーの場所が必要な場合は、プラグインをアンインストールしてカスタムコードセットアップに従ってください。これはWordPressからの完全な移行であり、プラグインのService Workerを移動する方法ではありません。

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

投稿、ページ、またはカスタム投稿タイプを公開すると、OneSignalはサブスクライバーに自動的に通知を送信できます。
OneSignal Push Notificationsメタボックス——必要に応じてドラッグして位置を変更できます

OneSignal Push Notificationsメタボックス——必要に応じてドラッグして位置を変更できます

投稿が公開または更新されたときに通知を送信するチェックボックスが表示されない場合は、次の項目を確認してください:
  1. エディターの右側と下部にあるメタボックスを確認してください。必要に応じてドラッグ&ドロップできます。
  2. エディター上部の画面オプションを確認し、OneSignal Push Notificationsメタボックスがチェックされていることを確認してください。
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
訪問者がサブスクライブしている場合、文字列(サブスクリプションID)を返します。サブスクライブしていない、またはサブスクリプションがまだ準備できていない場合は、null または空の値が表示されることがあります。OneSignal is not defined と表示された場合は、数秒待ってから再試行するか、先に一般的なOneSignalコンソールエラーのコンソールエラーを修正してください——SDKが遅延ローダーを介してまだ読み込み中の可能性があります。
ブラウザコンソールにOneSignalユーザーPushSubscription idの文字列結果が表示されている

コンソールでOneSignalサブスクリプションIDを見つける。

4

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

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

OneSignalダッシュボードでサブスクリプションIDを検索します。

5

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

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

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

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

コンソールSdkInitErrorにウェブプッシュ設定のオリジン不一致が表示されている

サイトURLの不一致エラー。

OneSignalダッシュボードのサイトURLが実際のドメインと一致しません。 ブラウザに表示されるドメインと完全に一致することを確認してください。

PushPermissionNotGrantedError: The user dismissed the permission prompt.

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

The OneSignal web SDK can only be initialized once.

コンソールエラー:OneSignalウェブSDKは一度しか初期化できない

重複するOneSignal初期化エラー。

OneSignalを2回読み込んでいます。プラグインを使用している場合は、手動で追加したOneSignalコードを削除してください。

Installing service worker failed.. 403 or 404 error

コンソールエラー:Service Workerのインストールが403または404エラーで失敗した

Service Workerファイルが見つかりません(403/404)。

プラグインは、そのsdk_filesディレクトリからOneSignalSDKWorker.jsを提供します。WordPress.orgからのインストールでは、フォルダ名はonesignal-free-web-push-notificationsです。zipからインストールした場合、フォルダ名は異なる場合があります。your-site.comとフォルダ名を、wp-adminのプラグインに合わせて置き換えてください: https://your-site.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js 次の1行のJavaScriptが表示されるはずです:
そのURLが404になるかブロックされている場合は、CDN、キャッシュ、またはセキュリティプラグインのルールを修正するために一般的なプラグインサポートを参照してください。 古いプラグインバージョン(v2)は、同じsdk_filesディレクトリからOneSignalSDKWorker.js.phpを提供していました。コンソールがまだ.js.phpのURLをリクエストしている場合は、レガシーワーカーを使用しています。それらのインストールにのみ適用されるPHP実行に関する注意事項については、Solid Security.htaccessの例を参照してください。

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

CDNとキャッシュプラグインは、OneSignalの必要なファイルをブロックする可能性があります。WordPress.orgからのインストールでは、プラグインディレクトリは onesignal-free-web-push-notifications です。zipからインストールした場合、フォルダは異なる場合があります(例:OneSignal-WordPress-Plugin)。wp-adminのプラグインまたはwp-content/plugins/を確認し、以下のパスでその名前に置き換えてください。 次のプラグイン固有の設定を使用してください:

Autoptimize

Excluded scriptsに追加:

WP Rocket

CDN > Exclude Files From CDNの下に追加:

LiteSpeed Cache

CDN > Exclude Pathの下に追加:
次に保存を押します。

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 Post-Processingルールは環境ごとに異なります。以下のスニペットはあくまで例です——適用前にWP Engineサポートまたはユーザーポータルでパスを確認してください。 WP Engine plugin > General Settings > HTML Post-Processingで、以下のようなルールが必要になる場合があります。各プレースホルダーをあなたのサイトとWP Engine CDNホスト名の値に置き換えてください:

W3 Total Cache

  1. Performance > CDNに移動
  2. Rejected filesの下に追加:
W3 Total Cache CDNの拒否ファイルリストにOneSignal sdk_filesパスが含まれている

W3 Total Cache除外設定。

BunnyCDN

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

BunnyCDN除外の例。

CDN Enabler

Settings > CDN Enablerで、「Exclusions」にこれを追加:

PressCDN

Exclude Directoriesに追加:

Breeze

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

Breeze除外の例。

Hummingbird Pro

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

Hummingbird Pro Asset Optimization。

Sucuri

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

Solid Security(旧iThemes Security)

バージョン3+は静的なOneSignalSDKWorker.jsファイルを提供します。このワーカーのためにプラグインディレクトリでのPHP実行は必要ありません。 まだプラグインv2を実行している場合、またはワーカーのURLが.js.phpで終わる場合は、OneSignalSDKWorker.js.phpが動作できるよう、System TweaksDisable PHP in Plugins(または同等のオプション)を無効にしてください。
セキュリティプラグイン設定でプラグインのPHP許可が未チェックまたは無効になっている

v2の.js.phpワーカーをまだ提供している場合にのみ、プラグインでのPHP実行のブロックを無効にしてください。

Defender Security plugin

バージョン3+では、ワーカーのためにPHP実行は必要ありません。Prevent PHP executionが有効になっていても、v3の.jsファイルには問題ありません。 まだOneSignalSDKWorker.js.php(v2)を提供している場合は、Prevent PHP executionを無効のままにしてください。Defender > Security Tweaksに移動し、設定を確認してください。

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

v3のJavaScriptワーカーを許可します。ホストまたはセキュリティプラグインがwp-content/plugins/内のファイルをブロックしている場合に使用してください。
古いプラグインバージョン(v2)は、同じsdk_filesディレクトリからOneSignalSDKWorker.js.phpを提供します。その.js.phpのURLがまだ使用されている場合にのみ、このブロックを追加してください:
Apache 2.2では、Requireの代わりに Order allow,denyAllow from all / Deny from all を使用します。ホストに確認するか、サーバーがすでに使用している構文に合わせてください。

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

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

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

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

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

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