개요
이 가이드는 OneSignal Web SDK 설정 문제 해결 과정을 안내합니다. 계속하기 전에 Web SDK 설정을 검토하여 모든 단계를 완료했는지 확인하세요. 웹 푸시가 작동하지 않는 것처럼 보이는 가장 일반적인 이유는 브라우저 및 기기의 알림 설정과 관련이 있습니다:브라우저 호환성
사용자는 웹 권한 프롬프트를 볼 수 있지만 시크릿, 프라이빗 또는 게스트 브라우저 모드에서는 푸시 알림을 구독할 수 없습니다.운영 체제별 브라우저 호환성
운영 체제별 브라우저 호환성
기기 알림 설정
기기 알림 설정은 웹 푸시 알림이 기기에 표시되지 않는 가장 일반적인 원인입니다. 다른 원인을 확인하기 전에 집중 모드(방해 금지, 배터리 부족 등)를 포함한 다음 설정을 먼저 확인하세요.- Windows
- macOS
- Android
- iOS
Windows 10 알림 설정
Windows 10 알림 설정
- 시작 > 설정 > 알림 및 작업 > 앱 및 기타 보낸 사람의 알림 받기를 선택합니다
- 사이트와 브라우저도 활성화되어 있는지 확인하세요.

Windows 10 알림 설정
- 시작 > 설정 > 시스템 > 알림을 선택합니다

Windows 11 알림 설정
- 알림을 켭니다
- 방해 금지를 끕니다 (테스트 중에는 이 옵션을 비활성화하면 푸시가 표시됩니다)
- 앱 및 기타 보낸 사람의 알림 아래로 스크롤합니다

Windows 11 앱 및 기타 보낸 사람의 알림
- 브라우저가 켜져 있는지 확인하세요.

Windows 11 알림 설정 브라우저 목록
프롬프트 표시 문제
다음은 웹 푸시 알림 프롬프트가 예상대로 표시되지 않는 일반적인 이유입니다.프롬프트가 구성되었는지 확인
브라우저 호환성, 시크릿, 프라이빗 브라우저 또는 게스트 브라우저 모드 확인
브라우저의 알림 설정 확인
chrome://settings/content/notifications
Chrome 알림 설정
- 사용자가 “사이트에서 알림을 보낼 수 없음”을 선택하여 네이티브 권한 프롬프트가 표시되지 않습니다. 네이티브 권한 프롬프트를 표시하려면 “사이트에서 알림 전송을 요청할 수 있음”으로 표시되어야 합니다.
- 사용자가
https://yoursite.com을 “알림 전송이 허용되지 않음” 목록에 추가하여 네이티브 권한 프롬프트가 표시되지 않습니다. 네이티브 권한 프롬프트를 표시하려면 이 목록에서 제거해야 합니다.
- Chrome - 이 페이지에서는 설정 > 개인정보 및 보안 > 사이트 설정 > 알림으로 이동하여 Chrome에서 알림을 관리하는 방법을 설명하며, 여기서 기본 동작을 제어하고 개별 웹사이트에 대한 권한을 관리할 수 있습니다.
- Firefox - 이 가이드는 Firefox의 웹 푸시 알림을 다루며, 설정 > 개인정보 및 보안 > 알림을 통해 알림 권한을 관리하는 방법과 주소 표시줄의 사이트 정보 아이콘을 통해 특정 사이트에 대한 권한을 제어하는 방법을 설명합니다.
- Safari - 이 Apple 가이드는 Safari > 환경설정 > 웹사이트 > 알림을 통해 Mac에서 Safari 알림을 사용자 지정하는 방법을 설명하며, 여기서 어떤 사이트가 알림을 보낼 수 있는지 관리하고 시스템 환경설정을 통해 알림 동작을 제어할 수 있습니다.
- Edge - 이 문서에서는 설정 > 개인정보, 검색 및 서비스 > 사이트 권한 > 알림으로 이동하거나 주소 표시줄의 사이트 정보 아이콘을 클릭하여 Edge 알림을 관리하는 방법을 자세히 설명합니다.
iOS/iPadOS 요구 사항이 충족되지 않음
문제 해결 단계
위의 사항을 확인한 후 다음 단계에 따라 OneSignal Web SDK 설정 문제를 해결하세요.브라우저 개발자 도구 콘솔 열기
- Desktop
- Android
- iOS
- Chrome: 페이지를 마우스 오른쪽 버튼으로 클릭하고 검사를 클릭한 다음 열리는 팝업 창의 콘솔 탭을 클릭합니다.
- Firefox: 페이지를 마우스 오른쪽 버튼으로 클릭하고 요소 검사를 클릭한 다음 열리는 팝업 창의 콘솔 탭을 클릭합니다.
- Safari: Safari → 환경설정 → 고급으로 이동하여 메뉴 막대에서 개발자용 메뉴 보기가 체크되어 있는지 확인합니다. 그런 다음 웹페이지에서 마우스 오른쪽 버튼을 클릭하고 요소 검사를 클릭한 다음 열리는 팝업 창의 콘솔 탭을 클릭합니다.

데스크톱 개발자 도구 콘솔
Web SDK 로깅 활성화
- 결과로
undefined가 표시되어야 합니다. - 탭을 닫고 동일한 페이지에 대해 새 탭을 엽니다. 새로고침만으로는 모든 SDK 초기화 이벤트가 트리거되지 않습니다.
- 콘솔에서 OneSignal SDK 로그가 표시되기 시작합니다.

자세한 SDK 로그가 있는 콘솔
구성 오류
OneSignal이 초기화된 후 다음과 같은 오류가 발생할 수 있습니다:
중복 SDK 초기화 오류
init 코드가 두 번 이상 호출되고 있습니다. 이는 종종 WordPress 플러그인 또는 Shopify 통합 설정과 수동 코드를 결합하거나 실수로 OneSignal init 코드를 여러 번 추가하여 발생합니다.
수정 방법: 중복된 init 호출을 제거하세요. WordPress 플러그인 또는 Shopify 통합을 사용하는 경우 파일에서 수동 OneSignal 코드를 제거하세요.

예시는 OneSignal 대시보드에 설정된 URL http://127.0.0.1:5501이 현재 방문 중인 사이트 출처가 아님을 보여줍니다.
- 프로토콜:
https://이어야 합니다(로컬 테스트의 경우 Localhost 구성 참조) - 도메인:
example.com대www.example.com - 서브도메인:
app.example.com대example.com

HTTP 사이트가 지원되지 않는 오류 예시
https://your-label.os.tc 형식의 서브도메인에 구독되어 있습니다. 웹 푸시는 HTTP 사이트 또는 서비스 워커를 호스팅할 수 없는 웹사이트에서 지원되지 않습니다.
수정 방법: 두 옵션 모두 사용자가 사이트가 아닌 os.tc 서브도메인에 구독되어 있기 때문에 다시 구독해야 합니다.
- 새 OneSignal 앱을 생성하고 init 코드에 새 App ID를 설정합니다. 이렇게 하면 이전 앱에서 계속 푸시를 보내 사용자에게 알릴 수 있습니다. 사이트가 업데이트되었으며 다시 구독해야 한다고 알리는 알림을 보내세요. 할인이나 인센티브를 제공하면 도움이 됩니다. “Launch URL”을 재구독 프롬프트(벨, 사용자 지정 링크 또는 카테고리 슬라이드)가 있는 랜딩 페이지로 설정하세요. 자세한 내용은 권한 프롬프트를 참조하세요.
-
동일한 App ID를 유지하려면 앱 업데이트 API를 사용하여
chrome_web_origin및safari_site_origin을 HTTPS 출처로 업데이트하세요. 사용자가os.tc서브도메인에 구독되어 있기 때문에 브라우저에는 실제 도메인에 대한 푸시 권한이 없습니다. 다시 프롬프트가 표시되고, 다시 구독하면 동일한 브라우저에 두 개의 웹 푸시 구독이 생겨 중복 알림이 발생합니다. 중복을 방지하려면 업데이트하기 전에 현재 모든 웹 푸시 구독자를 삭제하세요. 삭제하기 전에 사용자에게 다시 구독해야 한다고 알리는 알림을 몇 개 먼저 보내세요. 프롬프트 옵션은 권한 프롬프트를 참조하세요.
서비스 워커 설치 오류
네이티브 권한 프롬프트가 표시되고 “허용”을 클릭하면 다음과 같은 서비스 워커 설치 오류가 발생할 수 있습니다:https://your-site.com/’) with script (‘https://your-site.com/...’): A bad HTTP response code (404) was received when fetching the script.https://www.yoursite.com/’) with script (‘https://www.yoursite.com/...’): A bad HTTP response code (403) was received when fetching the script.
서비스 워커 설치 오류 예시

서비스 워커의 MIME 유형 오류

콘솔의 리디렉션 오류
서비스 워커 경로 찾기
OneSignalSDKWorker.js를 찾습니다. OneSignal 서비스 워커를 참조하세요.WordPress: 사이트 루트에 워커를 업로드하거나 사용자 지정 경로를 설정하지 마세요. 플러그인이 sdk_files에 파일을 호스팅합니다. 다음 단계에서 해당 URL을 여세요. WordPress 설정을 참조하세요.브라우저에서 서비스 워커 파일에 직접 방문
- 일반 사이트 기본값(루트):
https://yoursite.com/OneSignalSDKWorker.js - WordPress 플러그인(v3):
https://yoursite.com/wp-content/plugins/onesignal-free-web-push-notifications/sdk_files/OneSignalSDKWorker.js(WordPress.org 폴더 이름이며 zip 설치는 다를 수 있음) - 사용자 지정 경로(일반 사이트 대시보드 또는 사용자 지정 코드
init전용):https://yoursite.com/your-custom-location/OneSignalSDKWorker.js
파일이 로드되는지 확인
- 다음 JavaScript 코드가 표시되어야 합니다:
JavaScript
- 이 파일은
content-type이application/javascript로 제공되어야 합니다. - 이 파일에 대한 리디렉션이 없어야 합니다. 파일은 사이트와 동일한 도메인에 호스팅되어야 합니다(CDN 또는 프록시 도메인 없음).
알림이 표시되지 않음
이 섹션에서는 다음을 가정합니다:- 기기에서 알림이 표시되지 않는 일반적인 이유에 대한 알림이 표시되지 않음: Web Push 가이드를 검토했습니다.
- 네이티브 권한 프롬프트가 표시되고 “허용”을 클릭했습니다. 네이티브 권한 프롬프트를 통해 구독하지 않은 경우 위의 프롬프트 표시 문제를 참조하세요.
구독 ID 가져오기
- 혼동이 있는 경우 현재 페이지의 URL.
-
현재 브라우저가 푸시 알림을 지원하는지 여부.
true는 브라우저가 푸시 알림을 지원함을 의미합니다.false는 브라우저가 푸시 알림을 지원하지 않음을 의미합니다.
-
브라우저에서 알림을 구독했는지 여부.
true는 이 URL에 대한 푸시 권한을 허용했음을 의미합니다.false는 이 URL에 대한 푸시 권한을 허용하지 않았거나 거부했음을 의미합니다.
-
OneSignal로 옵트인했는지 여부.
true는 구독이 OneSignal의 푸시 알림에 구독되어 있음을 의미합니다.false는 구독이 OneSignal의 푸시 알림에 구독되어 있지 않음을 의미합니다. 사이트에서optOut()메서드가 호출되고 있는지 확인하세요.
-
OneSignal 구독 ID.
- 다음 단계를 위해 저장하세요. 이것은 자신에게 푸시 알림을 전송하는 데 사용할 ID입니다.

콘솔의 사용자 정보 출력 예시
자신에게 알림 전송
Chrome으로 테스트
- 새 탭에서
chrome://gcm-internals를 엽니다. - 왼쪽 상단의 “Start Recording” 버튼을 클릭합니다. “Connection State: CONNECTED”가 표시되는지 확인하세요.
- 이것을 열어 둔 채로 Chrome 웹 푸시 구독에 다른 푸시 알림을 전송하세요.
- 받은 경우 “Receive Message Log”에 무언가가 표시되어야 합니다.

GCM 내부 로깅
- “Data msg received”가 표시되지 않으면 Chrome 브라우저가 알림을 전혀 받지 못하고 있는 것입니다. GCM 내부 로그와 함께 OneSignal 지원팀에 문의하세요.
- “Data msg received”가 표시되지만 여전히 알림을 받지 못한 경우 다음 단계로 계속 진행하세요.
- 새 탭에서
chrome://serviceworker-internals를 엽니다. Scope: https://your-site.com을 검색합니다(your-site.com을 실제 사이트 도메인으로 교체).- Inspect 또는 Start -> Inspect를 클릭합니다. Chrome 개발자 도구 팝업이 나타납니다.

서비스 워커 검사
- 서비스 워커에 대한 Chrome 개발자 도구 팝업에서 Console 탭을 클릭하고
OneSignalWorker.log.trace();를 실행합니다.undefined를 반환해야 합니다. 서비스 워커의 모든 메시지가 이제 이 팝업에 표시됩니다.
support@onesignal.com으로 이메일을 보내주세요.다음을 포함해 주세요:- 발생한 문제의 세부 정보 및 재현 단계(가능한 경우)
- OneSignal 앱 ID
- External ID 또는 Subscription ID(해당하는 경우)
- OneSignal 대시보드에서 테스트한 메시지의 URL(해당하는 경우)
- 관련 로그 또는 오류 메시지
자주 묻는 질문
”SDK already initialized”가 표시되는 이유는 무엇인가요?
페이지에서 OneSignal Web SDKinit 코드가 두 번 이상 호출되고 있습니다. 이는 일반적으로 WordPress 플러그인과 수동 코드를 결합하거나 init 태그가 여러 페이지 템플릿에 포함된 경우 발생합니다. 중복된 init 호출을 제거하여 해결하세요.
HTTP 사이트에서 웹 푸시를 사용할 수 있나요?
아니요. 푸시 전달을 처리하는 서비스 워커는 보안 출처에서만 작동하므로 웹 푸시에는 HTTPS가 필요합니다. 이전에 “내 사이트가 완전히 HTTPS가 아닙니다” 옵션을 사용한 경우 HTTPS로 마이그레이션해야 합니다. 마이그레이션 단계는 구성 오류를 참조하세요.localhost에서 웹 푸시를 테스트하려면 어떻게 하나요?
개발 중에localhost에서 테스트할 수 있습니다. 설정 지침은 Localhost 구성을 참조하세요. localhost 테스트는 Chromium 기반 브라우저에서만 작동합니다.




