トラブルシューティング
PrivateStater 利用時によくある問題と対処法です。
よくある問題
スクリプトが読み込まれない
症状: コンソールに [privatestater.js] Missing prstSite config エラー
原因: スクリプトより前に PrivateStaterConfig が定義されていない
対処:
<!-- Must be in this order -->
<script>
window.PrivateStaterConfig = { prstSite: "YOUR_SITE_ID" };
</script>
<script src="https://privatestater.com/privatestater.js"></script>
host_mismatch エラー
症状: コンソールに host_mismatch エラー
原因: リクエストの Origin がダッシュボード登録の Host と一致しない
対処:
- ダッシュボードのウェブサイト ホスト を確認します
- 実際にアクセスしているドメインと一致するか確認します
- サブドメインの有無を確認します (例:
www.example.comとexample.com)
localhost で動作しない
原因: 既定では localhost アクセスがブロックされます
対処:
- ダッシュボード > ウェブサイト > [機能] > 設定
- localhost を許可 を有効にします
注意: キャプチャ、フィードバックなど機能ごとに別途設定が必要です。
広告ブロッカーによるブロック
症状: スクリプト読み込み失敗または API リクエストのブロック
原因: 一部の広告ブロッカーがアナリティクス関連スクリプトをブロックします
対処:
- 利用者に privatestater.com のブロック解除を案内する
- フィルター管理者にブロック解除を依頼する
アナリティクスの問題
訪問者統計が表示されない
確認項目:
スクリプト設置の確認
console.log(window.PrivateStater); // Object should be printedwebsiteId の確認
- ダッシュボードで作成した ID と一致しているか
ネットワークリクエストの確認
- ブラウザ開発者ツール > ネットワーク
/api/analytics/collect/visitリクエストがあるか- レスポンスが 204 か
反映までの時間
- 統計はおおよそ 1 分以内に反映されます
訪問者が重複してカウントされる
原因ではありません: これは正常な動作です。
説明: PrivateStater は 1 時間単位 で重複を除きます。別の時間帯の再訪問は別カウントになります。
例:
- 10:00 に訪問 → 1 回としてカウント
- 10:30 に再訪問 → 重複排除 (同じ 1 時間内)
- 11:00 に再訪問 → 1 回追加 (別の 1 時間)
クリック追跡が動かない
確認項目:
関数呼び出しの確認
window.PrivateStater.statsClick("button_id");buttonId 形式の確認
- 英数字、ハイフン、アンダースコアのみ
- スペース不可
キャプチャの問題
キャプチャウィジェットが表示されない
確認項目:
有効化の確認
- ダッシュボード > キャプチャ > 設定 > 有効状態
data-captcha 属性の確認
<div data-captcha="prst"></div>コンソールエラーの確認
captcha_not_enabled: キャプチャが無効website_not_found: websiteId が無効
パズル検証に失敗する
原因:
- パズル片の位置が不正確 (許容: ±8px)
- セッション期限切れ (5 分)
対処: パズル片を正確な位置にはめ込んでください。
PoW に時間がかかりすぎる
原因: PoW 難易度が高すぎる、または PoW が有効
対処:
- ダッシュボード > キャプチャ > 設定
- PoW 難易度 を
lowに変更するか、PoW 有効 をオフにして Proof of Work をスキップする (高速だがボット耐性は下がる)
難易度別の目安時間:
- low: 約 1 秒
- medium: 約 2 秒
- high: 約 3 秒
トークン検証に失敗する
確認項目:
トークン期限
- トークンは 5 分で期限切れ
重複利用
- トークンは 1 回のみ使用可能
- 検証済みトークンは再利用できません
websiteId の一致
- クライアントとサーバーで同じ websiteId を使う
API リクエスト形式
{ "websiteId": "my-site", "verifyToken": "session-id:signature" }
honeypot_triggered エラー
原因: ヘニーポット欄に入力があった (ボットと判定)
確認項目:
- 自動入力ツールを無効にする
- ブラウザ拡張機能を確認する
フィードバックの問題
フィードバックボタンが表示されない
確認項目:
有効化の確認
- ダッシュボード > フィードバック > 設定 > 有効状態
z-index の競合
- 他要素に隠れている可能性
- フィードバックボタンの z-index: 999998
スクリーンショット添付に失敗する
原因:
- 画像サイズが 1MB を超える
- 一部要素がキャプチャできない (CORS 画像など)
対処:
- スクリーンショットは html2canvas ライブラリで取得します
- 外部画像は CORS 制限でキャプチャできない場合があります
フィードバックが送信されない
確認項目:
必須データの確認
- 評価、テキスト、スクリーンショットのいずれか 1 つ以上が必要
レート制限の確認
- 1 分あたり 10 件まで
ネットワークリクエストの確認
/api/feedback/submitのレスポンスを確認
技術情報フィールド (API 直接呼び出し時)
technicalAttachmentを boolean (trueまたはfalse) で含める
エラーコード一覧
| エラーコード | 原因 | 対処 |
|---|---|---|
missing_required_fields |
必須フィールド不足 | リクエストボディを確認 |
invalid_website_id |
websiteId 形式が無効 | ID 形式を確認 (小文字、数字、ハイフン) |
website_not_found |
ウェブサイトが存在しない | ダッシュボードで作成済みか確認 |
host_mismatch |
Origin と Host の不一致 | ドメイン登録を確認 |
captcha_not_enabled |
キャプチャが無効 | ダッシュボードで有効化 |
feedback_not_enabled |
フィードバックが無効 | ダッシュボードで有効化 |
token_invalid_or_expired |
トークン期限切れ/使用済み | 新しいキャプチャを開始 |
token_expired |
セッション期限切れ (5 分) | 新しいキャプチャを開始 |
puzzle_mismatch |
パズル位置エラー | 正確な位置にはめ込む |
pow_invalid |
PoW ハッシュエラー | 新しいキャプチャを開始 |
honeypot_triggered |
ボット検出 | 自動入力を無効化 |
empty_feedback |
空のフィードバック | 内容を入力 |
invalid_technical_attachment |
技術情報フラグが無効/欠落 | technicalAttachment を boolean で送信 |
feedback_no_content_field |
設定で rating/text/screenshot がすべて無効 | 少なくとも 1 つのコンテンツ項目を有効化 |
rate_limit_* |
リクエスト制限超過 | しばらくして再試行 |
追加サポート
上記で解決しない場合:
- メール: hello@privatestater.com
- 状況の説明、エラーメッセージ、ブラウザのコンソールログを添えてください。