콘텐츠로 건너뛰기

웹 타겟팅으로 배너 자동 삽입하기

웹 배치의 경우, 배치 설정에서 웹 타겟팅을 선택적으로 구성하여 페이지에서 배너가 표시될 위치를 지정할 수 있습니다. 웹 타겟팅이 구성되면 Braze 웹 SDK는 insertBanner()를 명시적으로 호출하지 않아도 지정된 위치에 배너를 자동으로 삽입합니다. 자세한 내용은 배너용 웹 타겟팅을 참조하세요. 배너와 배너 배치에 대한 배경 정보는 배너 정보 및 배치 관리를 참조하세요.

전제 조건

웹 타겟팅 삽입은 페이지에 HTML을 추가하므로 insertBanner와 동일한 옵트인이 필요합니다.

braze.initialize("YOUR-API-KEY", {
  baseUrl: "YOUR-ENDPOINT",
  allowUserSuppliedJavascript: true, // required for Web Targeting auto-insert
});

allowUserSuppliedJavascript: true가 없으면 자동 삽입은 아무 작업도 수행하지 않으며 SDK가 오류를 기록합니다.

웹 타겟팅 삽입 트리거하기

insertWebTargetingBanners() 메서드를 호출하면 각 배너에 웹 타겟팅 정보가 있는 경우 이를 사용해 페이지에서 해당 배너가 들어갈 위치를 찾고 그 위치에 자동으로 삽입합니다. 이 메서드는 SDK 초기화 직후, 그리고 웹 SDK를 통해 배너 동기화가 완료될 때마다 호출하세요.

웹 SDK가 웹 타겟팅 정보가 있는 배너의 대상 삽입 위치를 찾지 못하면 삽입을 계속 재시도합니다. 덕분에 웹 타겟팅은 초기 페이지 로드 이후에야 나타나는 페이지 영역도 타겟팅할 수 있습니다. 이 재시도 동작은 SDK를 초기화할 때 initialize() 메서드의 enableWebTargetingBannerRetryLoop 파라미터로 비활성화할 수 있습니다.

braze.initialize("YOUR-API-KEY", {
  baseUrl: "YOUR-ENDPOINT",
  allowUserSuppliedJavascript: true,
  enableWebTargetingBannerRetryLoop: false, // don't retry if the target isn't in the DOM yet
});

배너 새로고침 시 웹 타겟팅 삽입 활성화하기

원하는 경우 SDK 초기화 후 automaticallyInsertWebTargetingBanners()를 호출할 수 있습니다. 이 메서드를 호출하면 웹 SDK가 배너 동기화를 완료한 직후 존재하는 배너에 대해 웹 타겟팅 삽입을 즉시 수행하는 구독이 설정됩니다. 따라서 insertWebTargetingBanners()를 호출할 필요가 없어지지만, 웹 타겟팅 삽입 시점을 더 세밀하게 제어하고 싶다면 해당 메서드만 사용해도 됩니다. 이 메서드는 호출 시점에는 배너를 삽입하지 않습니다.

단일 페이지 앱(SPA)

웹사이트가 단일 페이지 앱(SPA) 아키텍처 또는 유사한 시스템(예: React Router, Vue)을 사용해 페이지 라우팅과 탐색을 처리하거나, 삽입된 배너를 수동으로 제거하는 경우 다음 사항에 유의하세요.

  • 웹 타겟팅으로 DOM에 삽입된 배너가 라우팅에 따른 재렌더링으로 제거되면, 웹 SDK는 새 페이지에 해당 배너를 자동으로 다시 삽입하지 않습니다. 마찬가지로 재렌더링 후에도 배너가 남아 있지만 이전 경로로 URL 범위가 지정된 경우, 웹 SDK는 해당 배너를 DOM에서 자동으로 제거하지 않습니다.
  • 클라이언트 측 경로가 렌더링될 때마다 insertWebTargetingBanners()를 호출하여 SDK가 조율하는 다양한 관리 로직을 모두 실행하세요. 이 메서드는 상태가 변경된 배너만 다시 삽입하므로 탐색할 때마다 호출해도 안전합니다.

문제 해결

배너가 자동 삽입되지 않는 일반적인 이유는 다음과 같으며, 이러한 문제는 SDK 로거(enableLogging: true)를 통해 기록됩니다.

증상 가능한 원인
어디에도 삽입되지 않으며 SDK가 “allowUserSuppliedJavascript is required”를 기록함 allowUserSuppliedJavascript: true 없이 initialize()가 호출되었습니다.
SDK가 “target element not found for selector”를 기록함 CSS 선택기가 아직 어떤 요소와도 일치하지 않습니다. 요소가 나중에 렌더링되면 재시도 루프를 통해 자동으로 해결됩니다. 그렇지 않은 경우 배치에 구성된 선택기를 다시 확인하세요.
SDK가 요소에 대해 “cannot insert inside”를 기록함 배너의 웹 타겟팅 정보에 따르면 video 또는 img 같은 지원되지 않는 요소에 삽입되어야 합니다. 배너용 웹 타겟팅을 참조하세요.
배너가 한 번 삽입되지만 경로 변경 시 업데이트되지 않음 SPA 고려 사항을 참조하세요. 클라이언트 측 경로가 렌더링될 때마다 insertWebTargetingBanners()를 호출하세요.
프레임워크 재렌더링 후 배너가 사라짐 SPA 고려 사항을 참조하세요.

다음 단계

  • 배너용 웹 타겟팅 — 회사 사용자가 대시보드에서 배치에 대한 CSS 선택기, 삽입 위치, URL 타겟팅을 구성하는 방법입니다.
  • 배치 관리 — 배치를 생성하고 새로고침하며 insertBanner로 배너를 수동으로 표시하는 방법입니다.
  • 배너: 자주 묻는 질문
New Stuff!