StageUp
웹 SDK광고

텍스트 광고

텍스트 광고는 텍스트 기반의 네이티브 광고로, 웹사이트의 콘텐츠와 자연스럽게 어우러집니다. 높은 클릭률과 사용자 경험을 제공하며, 콘텐츠에 따라 높이가 자동으로 조정됩니다.

🎯 기본 사용법

단순한 텍스트 광고

//   useEffect(() => {
// SDK 초기화 (한 번만)
AdStage.init({
    apiKey: process.env.NEXT_PUBLIC_ADSTAGE_API_KEY
});
 
// 텍스트 광고 생성
if (containerRef.current) {…}준비
// <div id="text-container"></div>
 
// 기본 텍스트 광고 생성
AdStage.ads.text('text-container');

클릭 이벤트 처리

AdStage.ads.text('text-container', {
  onClick: (adData) => {
    console.log('텍스트 광고 클릭됨:', adData);
    // 사용자 정의 로직 추가 가능
  }
});

⚙️ 설정 옵션

기본 옵션

옵션타입기본값설명
maxLinesnumber3표시할 최대 줄 수
stylestring'default'스타일 테마
onClickfunctionundefined클릭 시 실행될 콜백 함수

필터링 옵션

옵션타입기본값설명
adIdstringundefined특정 광고 ID 지정
language'ko' | 'en' | 'ja' | 'zh'undefined언어별 필터링
deviceType'MOBILE' | 'DESKTOP'undefined디바이스별 필터링
country'KR' | 'US' | 'JP' | 'CN' | 'DE'undefined국가별 필터링

참고: 텍스트 광고는 콘텐츠 길이에 따라 높이가 자동으로 조정됩니다 (height: 'auto').

💡 실제 구현 예제

가장 간단한 CDN 방식으로 HTML에서 바로 사용할 수 있습니다.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>텍스트 광고 예제</title>
</head>
<body>
  <h1>내 웹사이트</h1>
  
  <!-- 텍스트 광고 컨테이너 -->
  <div id="text-container" style="width: 100%; max-width: 600px; margin: 20px auto; padding: 16px; border: 1px solid #ddd; border-radius: 8px;">
    로딩 중...
  </div>
 
  <!-- AdStage SDK 로드 -->
  <script src="https://unpkg.com/@adstage/web-sdk/dist/index.umd.js"></script>
  <script>
    // SDK 초기화
    AdStage.init({
      apiKey: 'your-api-key'
    });
 
    // 텍스트 광고 생성
    AdStage.ads.text('text-container', {
      maxLines: 3
    });
  </script>
</body>
</html>

🚀 고급 기능

줄 수 제한

텍스트 광고의 표시 줄 수를 제한할 수 있습니다.

// 1줄로 제한 (한 줄 텍스트 광고)
AdStage.ads.text('text-container', {
  maxLines: 1
});
 
// 5줄까지 허용
AdStage.ads.text('text-container', {
  maxLines: 5
});

반응형 줄 수 조정

화면 크기에 따라 줄 수를 동적으로 조정하는 방법입니다.

// 미디어 쿼리를 활용한 반응형 구현
const getResponsiveMaxLines = () => {
  if (window.innerWidth <= 768) {
    return 2;  // 모바일: 2줄
  } else if (window.innerWidth <= 1024) {
    return 3;  // 태블릿: 3줄
  } else {
    return 4;  // 데스크톱: 4줄
  }
};
 
AdStage.ads.text('text-container', {
  maxLines: getResponsiveMaxLines(),
  deviceType: window.innerWidth <= 768 ? 'MOBILE' : 'DESKTOP'
});
 
// 윈도우 리사이즈 시 재생성
window.addEventListener('resize', () => {
  // 기존 광고 제거 후 새로 생성
  AdStage.ads.destroy(slotId);
  slotId = AdStage.ads.text('text-container', {
    maxLines: getResponsiveMaxLines(),
    deviceType: window.innerWidth <= 768 ? 'MOBILE' : 'DESKTOP'
  });
});

특정 광고 ID 지정

특정한 텍스트 광고만 표시하고 싶을 때 사용합니다.

AdStage.ads.text('text-container', {
  maxLines: 3,
  adId: 'text-ad-456'  // 특정 광고 ID
});

🔧 최적화 팁

1. 동적 줄 수 조정 활용

SDK가 콘텐츠 길이에 맞춰 자동으로 줄 수를 최적화합니다.

// 콘텐츠 길이에 맞춰 자동 조정
AdStage.ads.text('text-container', {
  maxLines: 'auto'  // 콘텐츠에 맞춰 자동 조정
});

2. 백그라운드 로딩

광고는 백그라운드에서 로드되므로 즉시 슬롯 ID를 받을 수 있습니다.

// 즉시 슬롯 ID 반환
const slotId = AdStage.ads.text('text-container');
console.log('슬롯 생성됨:', slotId);  // 즉시 실행
 
// 실제 광고는 비동기로 로드됨

3. 자동 정리 활용

DOM에서 컨테이너가 제거되면 광고도 자동으로 정리됩니다.

const slotId = AdStage.ads.text('text-container');
 
// DOM에서 컨테이너 제거 시 자동 정리됨
document.getElementById('text-container').remove();
// 수동으로 destroy() 호출할 필요 없음

🎨 스타일링

CSS 클래스 활용

SDK가 자동으로 추가하는 CSS 클래스를 활용하여 스타일링할 수 있습니다.

/* 광고 컨테이너 기본 스타일 */
.adstage-text-ad {
  position: relative;
  overflow: hidden;
  font-family: inherit;
  line-height: 1.6;
}
 
/* 로딩 상태 */
.adstage-loading {
  opacity: 0.7;
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: loading 1.5s infinite;
}
 
@keyframes loading {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
 
/* 로딩 완료 */
.adstage-loaded {
  opacity: 1;
  transition: opacity 0.3s ease;
}
 
/* 오류 상태 */
.adstage-error {
  border: 1px solid #ff6b6b;
  background-color: #ffe0e0;
}

슬롯 상태 확인

// 모든 슬롯 확인
const allSlots = AdStage.ads.getAllSlots();
console.log('전체 광고 슬롯:', allSlots);
 
// 특정 슬롯 확인
const slot = AdStage.ads.getSlotById(slotId);
console.log('슬롯 정보:', slot);

목차