Skip to main content

설정 및 디버깅

OneSignal 호출을 OneSignalDeferred.push(async function (OneSignal) { ... })로 래핑해야 할 수 있습니다(await가 필요하지 않은 경우 function (OneSignal) { ... }를 사용하세요). OneSignal 인수는 이 참조 전체에서 사용되는 SDK 인스턴스입니다(예: await OneSignal.init({ ... })). 여러 콜백을 푸시하거나 하나의 콜백 안에 여러 문을 넣을 수 있습니다. OneSignal SDK는 페이지에서 defer 속성과 함께 로드됩니다. 예를 들어: <script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script> 이렇게 하면 SDK는 문서가 구문 분석된 후에 실행되며 렌더링을 차단하지 않습니다. 그러나 더 일찍 실행되는 스크립트에는 SDK가 준비될 때까지 작업을 대기열에 넣을 곳이 여전히 필요합니다. 다음으로 시작하세요: window.OneSignalDeferred = window.OneSignalDeferred || []; 이 줄은 OneSignalDeferred가 없는 경우 이를 정의합니다. 페이지의 이전 스니펫이 이미 설정한 경우 동일한 참조가 유지되고, 그렇지 않으면 콜백을 푸시할 수 있는 빈 배열 []로 시작합니다. 배열은 .push() 메서드를 노출하므로 OneSignalDeferred.push(...)로 함수를 대기열에 추가합니다. SDK가 로드되면 대기열을 처리하고 .push()를 재정의하여 이후의 푸시가 즉시 실행되도록 합니다(Web SDK 소스 참조).
아래 대부분의 스니펫은 OneSignal만 사용합니다. 섹션에서 달리 명시하지 않는 한(예: init 전의 setConsentRequired()), 이를 await OneSignal.init({ ... }) 이후 지연된 콜백에서 가져온 인스턴스로 취급하세요.

init()

OneSignal SDK를 초기화합니다. 사이트의 각 페이지에서 <head> 태그에 한 번 호출되어야 합니다. ONESIGNAL_APP_ID키 및 ID에서 찾을 수 있습니다.
OneSignal SDK의 초기화를 지연하려면 개인 정보 보호 메서드를 사용하는 것이 좋습니다.
Init 옵션은 사용자 지정 코드 설정에서만 작동합니다. 그렇지 않으면 OneSignal 대시보드에서 구성됩니다.

promptOptions 매개변수

promptOptions를 사용하여 사용자 권한 프롬프트를 현지화하거나 사용자 지정합니다. 모든 필드는 선택 사항입니다. 구조: promptOptions.slidedown.prompts배열이며, 각 요소는 하나의 프롬프트 구성입니다. type, autoPrompt, delay, text, categories 필드는 initappId 옆 최상위 키가 아니라 prompts 내부의 각 객체에 속합니다.

notifyButton 매개변수

페이지에 표시되는 구독 벨(알림 버튼)을 구성합니다.

welcomeNotification 매개변수

최초 구독 후 전송되는 환영 알림을 사용자 지정합니다.
예시:

setLogLevel()

콘솔에 추가 로그를 출력하도록 로깅을 설정합니다. 자세한 내용은 문제 해결 단계를 참조하세요. init 이후 지연된 콜백에서 실행하세요(다른 곳과 동일한 OneSignal 인스턴스).
JavaScript
로그 레벨:
  • 'trace'
  • 'debug'
  • 'info'
  • 'warn'
  • 'error'

사용자 신원 및 속성

사용자가 웹사이트에서 푸시 알림에 구독하면 OneSignal은 자동으로 OneSignal ID(사용자 수준 ID) 및 구독 ID(기기 수준 ID)를 생성합니다. 고유한 사용자 식별자로 login()을 호출하여 여러 구독(예: 기기, 이메일, 전화번호)을 단일 사용자와 연결할 수 있습니다.
자세한 내용은 사용자구독을 참조하세요.

login(external_id)

현재 사용자 컨텍스트를 제공된 external_id로 설정합니다. 이렇게 하면 현재 기기(웹 푸시 구독)가 알려진 사용자에게 연결되고 이후의 모든 데이터가 단일 onesignal_id 아래에 통합됩니다. 이 메서드는 식별된 사용자(예: 로그인 또는 계정 복원 후)에만 사용하세요. 익명 사용자의 경우 login을 호출하지 마세요. 대신 자동으로 할당된 onesignal_id를 사용하여 추적하세요(OneSignal.User.onesignalId 참조). login(external_id)를 호출하면 발생하는 일 SDK는 external_id가 OneSignal 앱 내에 이미 존재하는지 여부에 따라 다르게 동작합니다. external_id가 이미 존재하는 경우:
  • SDK는 해당 기존 사용자로 전환합니다.
    • 브라우저 네트워크 로그 또는 콘솔에 409 Conflict가 표시될 수 있습니다. 이는 외부 ID가 앱에 이미 존재한다는 의미이며, 이 경로에서는 예상되는 동작이고 일반적으로 처리해야 하는 프로미스 거부가 아닙니다.
  • 현재 onesignal_id는 폐기되고 해당 사용자의 기존 onesignal_id가 로드됩니다.
  • 현재 기기(웹 푸시 구독)가 기존 사용자에게 연결됩니다.
  • 로그인 전에 수집된 익명 데이터는 병합되지 않고 폐기됩니다. 여기에는 태그, 세션 데이터, 이메일/SMS 구독 및 기타 로컬 사용자 속성이 포함됩니다.
external_id가 존재하지 않는 경우:
  • 현재 onesignal_id를 사용하여 새 사용자가 생성됩니다.
  • 사용자가 익명이었을 때 수집된 모든 데이터가 유지됩니다.
  • 기기(웹 푸시 구독)가 이 새 사용자에게 연결됩니다.
재시도 동작:
  • SDK는 네트워크 장애 또는 서버 오류 시 로그인 요청을 자동으로 재시도합니다.
  • 자체 재시도 로직을 구현할 필요가 없습니다.
모범 사례:
  • 사용자의 ID를 알게 되면(예: 로그인 또는 세션 복원 후) 모든 페이지 로드에서 login(external_id)를 호출하세요.
  • 로그인한 사용자가 변경될 때마다(계정 전환) 다시 호출하세요.
  • 안정적이고 알려진 사용자 식별자가 있기 전에는 login을 호출하지 마세요.
JavaScript

logout()

웹 푸시 구독에서 현재 사용자의 연결을 해제합니다.
  • 현재 웹 푸시 구독에서 external_id를 제거합니다. 다른 구독에서는 external_id를 제거하지 않습니다.
  • onesignal_id를 새 익명 사용자로 재설정합니다.
  • 새 데이터(예: 태그, 구독, 세션 데이터 등)는 이제 login 메서드로 식별될 때까지 새 익명 사용자에게 설정됩니다.
사용자가 사이트에서 로그아웃하고 더 이상 해당 브라우저에 타겟팅된 트랜잭션 메시지를 보내지 않으려는 경우 이것을 사용하세요.
JavaScript

OneSignal.User.onesignalId

브라우저에 로컬로 저장된 현재 사용자의 onesignal_id를 검색합니다. 이 값은 활성 사용자 컨텍스트(OneSignal의 사용자 ID)를 나타내며 시간이 지남에 따라 변경될 수 있습니다. 예를 들어 login(external_id)를 호출하거나 SDK가 초기화될 때 변경됩니다. 너무 일찍 호출하면 이 메서드는 null을 반환할 수 있습니다. 이 값은 브라우저, 즉 웹 푸시 구독을 식별하는 데 사용되는 구독 ID가 아닙니다(User.PushSubscription.id 참조). onesignal_id를 사용할 수 있는 시점:
  • OneSignal SDK 초기화가 완료된 후
  • login(external_id)로 사용자가 식별된 후
  • 사용자를 전환하거나 세션을 복원한 후
변경 사항에 안정적으로 반응하거나 이 ID를 가져와야 하는 경우 폴링 대신 사용자 상태 addEventListener('change', …)를 사용하세요. 일반적인 사용 사례: 대부분의 경우 login 메서드를 통해 설정한 자체 외부 ID를 사용하는 것이 좋습니다. 그러나 onesignal_id를 직접 사용하고 싶은 경우도 있습니다.
  • 외부 ID가 설정되기 전에 익명 사용자 추적
  • 지원 또는 디버깅을 위해 백엔드에 OneSignal ID 저장
  • OneSignal 사용자를 내부 로그와 상호 연관
  • 문제 해결 또는 QA를 위해 ID 표시
OneSignal ID를 영구 사용자 식별자로 유지하지 마세요. 사용자가 로그인, 로그아웃 또는 계정 전환을 할 때 변경될 수 있습니다.
JavaScript

OneSignal.User.externalId

브라우저에 로컬로 저장된 현재 사용자의 외부 ID를 검색합니다. login 메서드를 통해 설정되지 않았거나 사용자 상태가 초기화되기 전에 호출되면 null일 수 있습니다. 대신 사용자 상태 addEventListener('change', …)를 사용하여 사용자 상태 변경을 수신하세요.
JavaScript

addEventListener() 사용자 상태

사용자 컨텍스트의 변경(예: 로그인, 로그아웃, ID 할당)을 수신합니다.
JavaScript

addAlias(), addAliases(), removeAlias(), removeAliases()

별칭은 대체 식별자입니다(사용자 이름 또는 CRM ID 등).
  • 별칭을 추가하기 전에 login()으로 external_id를 설정하세요. external_id 없이 구독에 추가된 별칭은 여러 구독에서 동기화되지 않습니다.
  • 자세한 내용은 별칭을 참조하세요.
JavaScript

getLanguage(), setLanguage()

사용자의 자동 감지된 언어를 가져오거나 재정의합니다. 사용 가능한 언어 코드 목록은 다국어 메시징을 참조하세요.
JavaScript

사용자 지정 이벤트

사용자 지정 이벤트를 통해 여정을 트리거하고 Wait Until 단계를 활성화합니다.
사용자 지정 이벤트에는 웹 SDK 160500+가 필요합니다.사용자 지정 이벤트를 추적하려면 사용자가 로그인되어 있어야 합니다.사용자 지정 이벤트 API는 window.OneSignal이 아니라 OneSignalDeferred.push에 전달된 OneSignal 인스턴스에서 호출하세요(이 페이지 상단의 설정 및 디버깅 참조). 페이지 SDK는 지연 대기열을 통해 초기화되며, 해당 콜백이 OneSignal.User에 액세스하는 지원되는 방법입니다.
현재 사용자가 수행한 사용자 지정 이벤트를 추적하고 전송합니다.
  • name - 필수. 문자열로 된 이벤트 이름입니다.
  • properties - 선택 사항. 이벤트에 추가할 키-값 쌍입니다. 속성 사전 또는 맵은 유효한 JSON 객체로 직렬화할 수 있어야 합니다. 중첩된 값을 지원합니다.
SDK는 예약된 키 os_sdk 아래의 속성 페이로드에 앱별 데이터를 자동으로 포함하며 이를 사용할 수 있습니다. 예를 들어 구독 유형별로 이벤트를 타겟팅하려면 os_sdk.type에 액세스합니다.
json

trackEvent()

init()이 완료된 후 호출하세요. 이 예시는 하나의 지연된 콜백을 사용하므로 init이 항상 trackEvent보다 먼저 실행됩니다:
JavaScript
프로덕션에서는 이미 await OneSignal.init(...)을 수행하는 지연된 콜백에 trackEvent를 추가하세요. 의도한 경우가 아니라면 두 번째 init을 등록하지 마세요.

태그

태그는 이벤트 또는 사용자 속성을 기반으로 사용자에게 설정하는 사용자 지정 key : value 쌍의 문자열 데이터입니다. 자세한 내용은 태그를 참조하세요.

addTag(), addTags()

현재 사용자에게 단일 또는 여러 태그를 설정합니다.
  • 키가 이미 존재하는 경우 값이 교체됩니다.
  • 플랜의 태그 제한을 초과하면 작업이 자동으로 실패합니다.
JavaScript

removeTag(), removeTags()

현재 사용자에서 단일 또는 여러 태그를 삭제합니다.
JavaScript

getTags()

사용자 태그의 로컬 복사본을 반환합니다. 태그는 login() 또는 새 앱 세션 중에 서버에서 업데이트됩니다.
JavaScript

개인 정보 보호

setConsentRequired()

데이터 수집이 시작되기 전에 사용자 동의를 시행합니다. init()이 실행되기 전에 호출해야 합니다(예: 첫 번째 OneSignalDeferred 콜백의 시작 부분, await OneSignal.init(...) 전). 이 메서드는 init 옵션에 requiresUserPrivacyConsent: true를 추가하는 것과 동일합니다.
JavaScript

setConsentGiven()

데이터 수집에 대한 사용자 동의를 부여하거나 취소합니다. 동의 없이는 OneSignal로 데이터가 전송되지 않으며 구독이 생성되지 않습니다.
  • setConsentRequired() 또는 requiresUserPrivacyConsenttrue로 설정된 경우 setConsentGiventrue로 호출될 때까지 SDK가 완전히 활성화되지 않습니다.
  • setConsentGiventrue로 설정되고 구독이 생성된 후 나중에 false로 설정되면 해당 구독은 더 이상 업데이트를 받지 않습니다. 해당 구독의 현재 데이터는 setConsentGiven이 다시 true로 설정될 때까지 변경되지 않습니다.
  • 사용자 및/또는 구독 데이터를 삭제하려면 사용자 삭제 또는 구독 삭제 API를 사용하세요.
JavaScript

구독

구독은 단일 메시징 채널 인스턴스(예: 브라우저)를 나타내며 고유한 구독 ID(OneSignal의 기기 수준 ID)를 갖습니다. 한 사용자는 기기와 플랫폼 전반에 걸쳐 여러 구독을 가질 수 있습니다. 자세한 내용은 구독을 참조하세요.

User.PushSubscription.id

SDK가 로컬에 저장한 현재 브라우저의 웹 푸시 구독 ID를 검색합니다. 이 ID는 사용자가 아니라 이 특정 브라우저의 푸시 채널을 고유하게 식별합니다. 일반적으로 기기 또는 브라우저를 백엔드와 연결하거나 전송 문제를 디버깅할 때 사용됩니다. 구독이 생성되거나 복원되기 전에 호출되면 이 값은 null일 수 있습니다.
웹 푸시 구독 ID가 사용 가능해지거나 변경되는 시점을 안정적으로 감지하려면 푸시 구독 리스너를 사용하세요.
JavaScript

User.PushSubscription.token

현재 푸시 구독 토큰을 반환합니다. 너무 일찍 호출되면 null을 반환할 수 있습니다. 변경 사항에 반응하려면 구독 관찰자 내에서 이 데이터를 가져오는 것이 좋습니다.
JavaScript

addEventListener() 푸시 구독 변경

다음과 같은 푸시 구독 변경에 응답하려면 이 메서드를 사용하세요:
  • 기기가 Google(FCM) 또는 Apple(APNs)에서 새 푸시 토큰을 받습니다
  • OneSignal이 구독 ID를 할당합니다
  • optedIn 값이 변경됩니다(예: optIn() 또는 optOut() 호출)
  • 사용자가 브라우저 또는 OS 설정에서 푸시 권한을 토글한 다음 사이트로 돌아옵니다
이런 일이 발생하면 SDK는 무엇이 변경되었는지 감지할 수 있도록 previouscurrent를 포함하는 상태 객체와 함께 change 리스너를 실행합니다.
autoResubscribetrue인 경우, 브라우저 권한이 변경된 것이 아니라 푸시 토큰만 다시 등록되었기 때문에(예: 사이트 데이터를 지우거나 마이그레이션한 후) 재방문자에게서 previouscurrent 모두 optedIn: truechange 이벤트가 발생할 수 있습니다. 신규 또는 재구독을 반영해야 하는 분석 또는 서버 측 추적의 경우, optedIn만 비교하는 것보다 event.current.token && !event.previous.token이 일반적으로 더 신뢰할 수 있습니다.
업데이트 수신을 중지하려면 addEventListener()에 전달한 것과 동일한 핸들러 참조로 removeEventListener()를 호출하세요.
JavaScript
외부 분석(예: dataLayer를 통한 Google Analytics): 이전에 토큰이 없다가 푸시 토큰이 나타날 때 사용자 지정 이벤트를 발생시켜, optedIn이 변경되지 않은 재등록도 올바르게 계산되도록 하세요. 구독 ID는 타이밍에 따라 동일한 콜백 또는 이후의 change 이벤트에서 도착할 수 있습니다:
JavaScript
시크릿 또는 비공개 브라우징에서는 autoPrompttrue인 경우 슬라이드다운이 여전히 나타날 수 있지만, 푸시 구독은 일반적으로 세션이 종료된 후 유지되지 않습니다. isPushSupported()는 비공개 브라우징을 감지하지 않으며, 원칙적으로 웹 푸시를 사용할 수 있는지 여부만 나타냅니다. 프로그래밍 방식으로 프롬프트를 트리거하기 전에(예: promptPush()) 웹 푸시를 사용할 수 없는 브라우저에서 프롬프트가 표시되지 않도록 여전히 isPushSupported()를 호출하세요.

optOut(), optIn(), optedIn

현재 푸시 구독의 구독 상태(subscribed 또는 unsubscribed)를 제어합니다. 이러한 메서드를 사용하여 사이트에서 푸시 구독 상태를 제어하세요. 일반적인 사용 사례: 1) 로그아웃하는 사용자에게 푸시가 전송되지 않도록 방지. 2) 사이트 내에서 알림 기본 설정 센터 구현.
  • optOut(): 현재 푸시 구독 상태를 구독 취소로 설정합니다(사용자에게 유효한 푸시 토큰이 있더라도).
  • optIn(): 다음 중 하나를 수행합니다:
    1. 구독에 유효한 푸시 토큰이 있는 경우 현재 푸시 구독 상태를 subscribed로 설정합니다.
    2. 구독에 유효한 푸시 토큰이 없는 경우 푸시 권한 프롬프트를 표시하려고 시도합니다.
  • optedIn: 현재 푸시 구독 상태가 구독된 경우 true를 반환하고 그렇지 않으면 false를 반환합니다. 푸시 토큰이 유효하지만 optOut()이 호출된 경우 false를 반환합니다.
JavaScript

addEmail(), removeEmail()

현재 사용자의 이메일 구독(이메일 주소)을 추가하거나 제거합니다. 이러한 메서드는 ID 확인과 호환됩니다. addEmail(email)을 호출하면:
  • 이메일 주소가 현재 사용자의 이메일 구독이 됩니다.
  • 이메일이 생성되거나 재할당될 수 있습니다.
  • 동일한 이메일 주소는 동일한 OneSignal 앱에 여러 번 존재할 수 없습니다. 중복된 이메일 주소가 보이면 REST API 요청을 확인하고 필요한 경우 지원팀에 문의하세요.
SDK는 다음 HTTP 상태 코드를 반환합니다: removeEmail(email)을 호출하면:
  • 이메일 구독이 현재 사용자에서 제거됩니다.
  • 현재 외부 ID가 이메일 구독에서 제거됩니다.
  • 새 OneSignal ID가 이메일 구독에 할당됩니다.
  • 다른 구독(푸시, SMS, 기타 이메일)은 영향을 받지 않습니다.
모범 사례:
  • 먼저 login()을 호출한 다음 addEmail()을 호출하세요. 그렇지 않으면 이메일이 익명 사용자에게 연결될 수 있습니다.
  • 안정적이고 확인된 이메일 주소를 사용하세요.
  • 이메일 평판 모범 사례를 따르세요.
JavaScript

addSms(), removeSms()

현재 사용자의 SMS 구독(전화번호)을 추가하거나 제거합니다. 전화번호는 E.164 형식으로 제공되어야 합니다(예: +15551234567). 이러한 메서드는 ID 확인과 호환됩니다. addSms(phoneNumber)를 호출하면:
  • 전화번호가 현재 사용자의 SMS 구독이 됩니다.
  • 번호가 생성되거나 재할당될 수 있습니다.
  • 동일한 전화번호는 동일한 OneSignal 앱에 여러 번 존재할 수 없습니다. 중복된 전화번호가 보이면 REST API 요청을 확인하고 필요한 경우 지원팀에 문의하세요.
SDK는 다음 HTTP 상태 코드를 반환합니다: removeSms(phoneNumber)를 호출하면:
  • SMS 구독이 현재 사용자에서 제거됩니다.
  • 현재 외부 ID가 SMS 구독에서 제거됩니다.
  • 새 OneSignal ID가 SMS 구독에 할당됩니다.
  • 다른 구독(푸시, 이메일, 기타 SMS)은 영향을 받지 않습니다.
모범 사례:
  • 먼저 login()을 호출한 다음 addSms()를 호출하세요. 그렇지 않으면 SMS 구독이 익명 사용자에게 연결될 수 있습니다.
  • 전송하기 전에 항상 전화번호를 E.164 형식으로 검증하고 정규화하세요.
  • SMS 등록 요구 사항을 따르세요.
JavaScript

슬라이드다운 프롬프트

사이트에 다양한 슬라이드다운 프롬프트를 표시합니다. 자세한 내용은 웹 권한 프롬프트를 참조하세요.
  • 해제되면 향후 호출은 최소 3일 동안 무시됩니다. 추가 거부는 사용자에게 다시 프롬프트를 표시하기 전에 경과해야 하는 시간을 늘립니다.
  • 백오프 동작을 재정의하려면 메서드에 {force: true}를 전달하세요. 그러나 좋은 사용자 경험을 제공하려면 버튼 클릭과 같은 UI 시작 이벤트에 작업을 바인딩하세요.
구독에 필요한 기본 브라우저 프롬프트를 대체하지 않습니다. 기본 브라우저 프롬프트를 사용하여 권한을 얻어야 합니다.

promptPush()

푸시 알림에 대한 일반 슬라이드다운 프롬프트를 표시합니다.
JavaScript

promptPushCategories()

카테고리 슬라이드다운 프롬프트를 표시하여 사용자가 태그를 업데이트할 수 있도록 합니다. 또한 사용자가 아직 권한을 부여하지 않은 경우 기본 알림 권한 프롬프트를 트리거합니다.
  • 카테고리를 사용하지 않는 경우 대신 promptPush()를 호출하세요.
  • OneSignal에서 설정한 백오프 로직의 적용을 받습니다. 자세한 내용은 웹 권한 프롬프트를 참조하세요.
JavaScript

promptSms()

SMS 구독 프롬프트를 표시합니다.
  • OneSignal에서 설정한 백오프 로직의 적용을 받습니다. 자세한 내용은 웹 권한 프롬프트를 참조하세요.
JavaScript

promptEmail()

이메일 구독 프롬프트를 표시합니다.
  • OneSignal에서 설정한 백오프 로직의 적용을 받습니다. 자세한 내용은 웹 권한 프롬프트를 참조하세요.
JavaScript

promptSmsAndEmail()

SMS 및 이메일 구독 프롬프트를 동시에 표시합니다.
  • OneSignal에서 설정한 백오프 로직의 적용을 받습니다. 자세한 내용은 웹 권한 프롬프트를 참조하세요.
JavaScript

addEventListener() 슬라이드다운

슬라이드다운 프롬프트 표시 이벤트를 감지하기 위한 콜백을 추가합니다.
JavaScript

푸시 알림

requestPermission()

기본 브라우저 프롬프트를 통해 푸시 알림 권한을 요청합니다. 브라우저에서 설정한 백오프 로직의 적용을 받습니다. 자세한 내용은 웹 권한 프롬프트를 참조하세요.
JavaScript

isPushSupported()

현재 브라우저가 웹 푸시를 지원하는 경우 true를 반환합니다.
JavaScript

OneSignal.Notifications.permission

알림을 표시할 사이트의 현재 권한을 나타내는 부울을 반환합니다.
  • true: 사용자가 알림을 표시할 권한을 부여했습니다.
  • false: 사용자가 알림을 표시할 권한을 거부했거나 아직 부여하지 않았습니다.
이 값은 브라우저 알림 권한만 반영합니다. OneSignal의 optOut, 구독 ID 또는 푸시 토큰은 반영하지 않습니다. 이에 대해서는 User.PushSubscription(및 아래 관련 메서드)을 사용하세요. 권한 변경을 수신하려면 permissionChange 이벤트를 사용하세요.
JavaScript

addEventListener() 알림

addEventListener로 알림 수명 주기에 연결할 수 있습니다. 첫 번째 인수를 permissionChange, click 또는 dismiss와 같은 이벤트 이름으로 바꾸세요(아래 하위 섹션 참조). 이벤트당 여러 핸들러를 등록할 수 있습니다. 수신을 중지하려면 동일한 이벤트 이름과 핸들러 참조로 removeEventListener를 호출하세요.
JavaScript

permissionChange

이 이벤트는 사용자가 허용 또는 차단을 클릭하거나 브라우저의 기본 권한 요청을 해제할 때 발생합니다.
JavaScript

permissionPromptDisplay

이 이벤트는 브라우저의 기본 권한 요청이 방금 표시되었을 때 발생합니다.
JavaScript

click

이 이벤트는 알림의 본문/제목 또는 작업 버튼이 클릭될 때 발생합니다.
JavaScript

foregroundWillDisplay

이 이벤트는 알림이 표시되기 전에 발생합니다. 이 이벤트는 페이지에서 발생합니다. 사이트에서 여러 브라우저 탭이 열려 있는 경우 이 이벤트는 OneSignal이 활성화된 모든 페이지에서 발생합니다.
JavaScript

dismiss

이 이벤트는 다음과 같은 경우에 발생합니다:
  • 사용자가 알림 본문 또는 작업 버튼을 클릭하지 않고 의도적으로 알림을 해제합니다
  • Android의 Chrome에서 사용자가 모든 웹 푸시 알림을 해제합니다(이 이벤트는 표시하는 각 웹 푸시 알림에 대해 발생합니다)
  • 알림이 자체적으로 만료되어 사라집니다
이 이벤트는 사용자가 알림 본문이나 작업 버튼 중 하나를 클릭하면 발생하지 않습니다. 그것은 알림 click 이벤트로 간주됩니다.
JavaScript

setDefaultUrl()

알림의 기본 URL을 설정합니다. 기본 URL을 설정하지 않은 경우 알림은 기본적으로 사이트의 루트로 열립니다.
JavaScript
사용자가 자체 URL을 지정하지 않은 알림을 클릭할 때 열 유효한 URL을 제공하세요. 알림 페이로드에 URL이 포함되어 있으면 이 기본값을 재정의합니다. Safari Web Push는 setDefaultUrl()을 같은 방식으로 사용하지 않습니다. 실행 및 아이콘 동작은 Safari/Apple 구성(예: OneSignal 웹 설정의 사이트 URL)을 따릅니다. 사이트 설정을 참조하세요.

setDefaultTitle()

알림에 표시할 기본 제목을 설정합니다.
JavaScript
제목이 있는 알림이 생성되면 지정된 제목이 항상 이 기본 제목을 재정의합니다. 알림의 제목은 기본적으로 사용자가 마지막으로 방문한 페이지의 제목으로 설정됩니다. 페이지 제목이 페이지마다 다른 경우 이러한 불일치는 바람직하지 않을 수 있습니다. 알림 제목이 지정되지 않은 한 알림 전체에서 페이지 제목을 표준화하려면 이것을 호출하세요.

성과

성과 메서드는 **OneSignal.Session**에 있습니다. init 이후 다른 곳과 동일한 지연된 OneSignal 인스턴스를 사용하세요.

sendOutcome()

OneSignal 대시보드에서 볼 수 있는 성과를 트리거합니다. 성과 이름(string, 필수) 및 값(number, 선택 사항)을 허용합니다. 동일한 성과 이름으로 sendOutcome 메서드가 호출될 때마다 성과 수가 증가하고 성과 값은 전달된 양만큼 증가합니다(포함된 경우). 자세한 내용은 사용자 지정 성과를 참조하세요.
JavaScript

sendUniqueOutcome()

OneSignal 대시보드에서 볼 수 있는 성과를 트리거합니다. 성과 이름(string, 필수)만 허용합니다. sendUniqueOutcome은 사용자당 한 번만 해당 성과에 대한 수를 증가시킵니다. 자세한 내용은 사용자 지정 성과를 참조하세요.
JavaScript