Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 광고 요청에 앞서, 사용자의 정보(ID, 성별, 나이)등으로 Benefit 서버에 로그인을 해야 합니다. 아래 두 가지 방법으로 가능합니다.

    • AOS SDK 또는 iOS SDK에서 BuzzAdBenefit에 UserProfile을 먼저 설정한 뒤, 웹페이지를 열면 자바스크립트에서 정보를 가져와 Benefit 서버에 로그인합니다.

    • 웹에서 로그인을 구현하는 경우, BuzzAdBenefit 객체에 직접 UserProfile을 설정합니다. (해당 가이드 ‘심화기능' - '웹페이지에서 사용자의 프로필 정보 설정’ 참고)

  • 다음의 API를 사용할 경우, 로그인이 완료되었을 때 특정 동작(예: 광고 요청)을 실행합니다.

Code Block

...

languagejs
BuzzAdBenefit.ensureAuthenticated
  .then(function() => {
    // Benefit 로그인 완료. 광고 요청 가능
  }).catch(function(e) => {
    // 에러 발생. 광고 요청 불가능
  });

Step 3: YOUR_UNIT_ID 로 광고 요청

...

Code Block
languagejs
BuzzAdBenefit.ensureAuthenticated // 
  .then(function() => {
    return BuzzAdBenefit.loadAd({
      unitId: {
        android: 'YOUR_ANDROID_UNIT_ID', // 안드로이드 앱에서는 광고를 요청하지 않는 경우 생략 가능
        ios: 'YOUR_IOS_UNIT_ID', // 아이폰 앱에서는 광고를 요청하지 않는 경우 생략 가능
      }
  }).then(function(nativeAd) => {
    console.log('An ad is loaded!');
    populateAd(nativeAd); // 광고 표시
  }, function(e) => {
    if (e.message === 'EMPTY_RESPONSE') {
      console.log('NO FILL');
    } else {
      console.error('An error is detected while loading ad: ' + e.message);
    }
    hideAd(); // 광고 영역 숨김
  });

Step 4: 받아온 광고를 사용하기 위한 등록

...

Code Block
languagejs
function populateAd() {
  const adListener = {
    onImpressed: function(placementView, nativeAd) {
      console.log('ON IMPRESSED: The ad is impressed.');
    },
    onClicked: function(placementView, nativeAd) {
      console.log('ON CLICKED: The ad is clicked.');
    },
    onRewardRequested: function(placementView, nativeAd) {
      console.log('ON REWARD REQUESTED: Reward is requested.');
    },
    onRewarded: function(placementView, nativeAd, result) {
      console.log('ON REWARDED: The result of Reward: ' + result);
    },
    onParticipated: function(placementView, nativeAd) {
      console.log('ON PARTICIPATED: The ad is set to particiated.');
      updateCtaView(element.getElementsByClassName('cta')[0], nativeAd);  // 아래에서 설명
    },
    onVideoError: function(placementView, nativeAd, errorCode, errorMessage) {
      console.error('ON VIDEO ERROR: An error is detected: ' + errorCode + '\n' + errorMessage);
    },
  };
  
  const placementView = document.getElementById('placement1');
  BuzzAdBenefit.registerNativeAd(nativeAd, placementView, adListener);
  renderAd(placementView, nativeAd);  // 광고 구성요소를 DOM에 추가하여 화면에 표시
}
Expand
titlePlacementDOM에 대한 추가 설명
  • PlacementView의 자식 중에 clickable 클래스를 가진 모든 문서 객체 모델은 클릭 시 랜딩 페이지를 열도록 설정됩니다.

  • PlacementView의 자식 중에 buzz-mediaview 클래스를 가진 첫 번째 문서 객체 모델은 이미지와 비디오 플레이어를 표시하는 영역인 MediaView로 설정됩니다.

  • registerNativeAd()에 넘긴 PlacementView가 이미 광고를 표시하고 있었던 경우에는 이전의 설정을 모두 초기화하고 새로운 광고에 맞도록 설정됩니다.

...