Versions Compared

Key

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

본 연동 가이드는

Table of Contents
minLevel1
maxLevel1

개요

이 가이드는 Android 앱 내의 WebView에서 광고를 표시하기 위한 BuzzAd-Benefit Web SDK를 통해 안드로이드 앱 내의 웹뷰에서 광고를 보여주기 위해 필요한 Android SDK 연동 사항을 담고 있습니다. 광고를 보여줄 웹페이지는 Web SDK를 연동해야 합니다.

최소 지원 버전: 2.0.2

주의사항

  1. 안드로이드의 경우 TLS 1.2가 지원되지 않는 OS 4.4.2 미만의 버전에서는 Web SDK가 작동하지 않습니다.

설치

Tip

자세한 구현 사항은 샘플 코드에서 확인할 수 있습니다.

...

Android용 SDK 연동 방법을 안내합니다.

1 단계: 연동용 ID 발급받기

BuzzAd Android용 SDK를 연동하려면 반드시 앱의 고유 식별자인 App ID와 광고 지면의 고유 식별자 Unit ID가 필요합니다. 연동용 ID를 발급받으려면 버즈빌 담당자에게 연락하세요.

ID 유형

설명

App ID

BuzzAd Android용 SDK를 연동하는 앱 별로 부여하는 고유 식별자입니다.

Unit ID

앱 내에 광고 지면별로 부여하는 고유 식별자입니다.

 

2 단계: SDK 설치하기

BuzzAd Android용 SDK를 설치하려면 다음의 절차를 따르세요.

  1. 프로젝트 레벨의 build.gradle 파일에 BuzzAd SDK 저장소를 추가하세요.

    Code Block
    languagejava
    // 프로젝트 레벨의 build.gradle
    
    allprojects {
        repositories {
            maven { url "https://dl.buzzvil.com/public/maven" } // 버즈빌 저장소
        }
    }
  2. 모듈 레벨의 build.gradle 파일에 BuzzAd SDK 라이브러리를 추가하세요.

    Code Block
    languagejava
    // 모듈 레벨의 build.gradle 
    
    dependencies {
        implementation ("com.buzzvil:buzzad-benefit:

...

  1. 3.

...

  1. 3.+") 

...

SDK 연동

1 단계: APP_ID설정

...

  1. // BuzzAd SDK 라이브러리
    }
  2. 모듈 레벨의 build.gradle 파일에 compileSdkVersiontargetSdkVersion31로 업데이트하세요.

Code Block
languagexmljava
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="...">
    <application
        ...>
        <activity>
        </activity>android {
    compileSdkVersion 31

    defaultConfig {
        targetSdkVersion 31
    }
}
Warning

SDK 설치 시 문제가 발생하는 경우, 문제 해결하기 토픽을 참고하세요.

 

3 단계: App ID 설정하기

AndroidManifest.xml 파일에서 다음과 같이 <meta-data> 요소를 추가하고, app-pub-{YOUR_APP_ID}{YOUR_APP_ID}를 버즈빌 담당자로부터 발급받은 App ID로 교체하세요.

발급받은 App ID가 123456789123 이라면 app-pub-123456789123가 되어야 합니다.

Code Block
languagexml
<manifest>
    <application>    
           <!-- ReplaceBuzzAd 0123456789SDK to YOUR_AOS_APP_App ID -->
        <meta-data  
          android:name="com.buzzvil.APP_KEY"  
          android:value="app-pub-0123456789{YOUR_APP_ID}" />        
    </application>
</manifest>

...

 

4 단계: SDK 초기화하기

Application Class의 onCreate에 아래 코드를 추가할 것을 권장합니다. 단, 최초 광고 요청 전에만 불린다면 자유롭게 코드 위치를 결정할 수 있습니다의 onCreate()에서 다음의 코드를 추가하여 BuzzAd Android용 SDK를 초기화하세요.

Info

앱에 연동하는 모든 지면의 디자인 테마를 변경하려면 SDK 초기화 메소드 BuzzAdBenefit.init()를 호출하기 전에 변경해야 합니다. 디자인 테마 변경에 대한 자세한 내용은 전체 테마 변경하기 토픽을 참고하세요.

Code Block
languagejava
public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        BuzzAdBenefit.init(this,        
        // BuzzAdBenefit 초기화
        final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(this)context)
            .build();
        BuzzAdBenefit.init(this, buzzAdBenefitConfig);
    }
}

...

 

5단계: 사용자

...

유저가 매체사 앱에 로그인한 시점에, 아래와 같이 UserProfile 을 세팅합니다. 설정값 수정 시, 기존 UserProfile 값을 호출하여 수정 가능합니다.

Info

User ID와 타게팅 정보 (성별, 연령)는 원활한 서비스 운영을 위해 제공해야 할 필수 항목입니다. 해당 값을 입력하는 setUserProfile 함수를 호출하지 않으면 광고가 제공되지 않습니다.

  • userId : 매체사 서비스 유저를 unique 하게 구분할 수 있는 식별값. 유저를 구별할 수만 있으면 매체사 서비스의 사용자 계정이 아니어도 됩니다.

Note

동일 유저에 대해 복수개의 User ID를 연동하거나 혹은 User ID 값이 변경될 가능성이 있을 경우, 버즈빌 담당 운영 매니저와 논의해야 합니다.

  • 예시: 매체사 앱 삭제 후 재설치 시 User ID 값이 변경되는 경우

...

gender

  • UserProfile.Gender.MALE: 남성

  • UserProfile.Gender.FEMALE: 여성

...

프로필 등록하기

광고 할당을 요청하려면 사용자 프로필을 등록해야 합니다. 사용자 프로필을 구성하는 항목은 아래 표를 참고하세요.

사용자 프로필

설명

userId

매체사 앱에서 사용하는 사용자 식별자입니다. 서비스 도중 변하지 않는 고정 값이어야 하며, 광고 할당을 위해서 필수로 전달해야합니다.

Note

앱을 삭제 후 재설치하여 사용자의 ID 값이 변경되거나 다른 사유로 인해 고정 ID를 사용하지 못하는 경우 버즈빌 담당자에게 문의하세요.

gender

사용자의 성별입니다. 사용자 맞춤형 광고를 제공하는 데에 활용됩니다.

  • 남성: UserProfile.Gender.MALE

  • 여성: UserProfile.Gender.FEMALE

birthYear

사용자의 출생연도입니다. 사용자 맞춤형 광고를 제공하는 데에 활용됩니다.

사용자가 로그인하는 시점에 다음의 코드를 추가하여 SDK에 사용자 프로필을 등록하세요.

원활한 서비스 운영을 위해 사용자 프로필 등록은 반드시 호출해야합니다. BuzzAdBenefit.setUserProfile() 메소드를 호출하지 않으면 광고가 제공되지 않습니다.

Info

사용자의 로그인 정보를 웹 페이지에서 알 수 있지만 앱에서 알 수 없는 경우, 웹 페이지에서 사용자 프로필을 설정하는 기능을 지원하고 있습니다.

Code Block
languagejava
// 사용자 정보를 등록하는 코드입니다.
final UserProfile.Builder builder = new UserProfile.Builder(BuzzAdBenefit.getUserProfile());
final UserProfile userProfile = builder
        .userId("YourUSER_Service_User_ID") // 사용자 식별자값
        .gender(UserProfile.Gender.MALE) // 사용자의 성별
        .birthYear(19852000) // 출생연도
        .build();
  
BuzzAdBenefit.setUserProfile(userProfile);
Info

유저의 로그인 정보를 웹페이지에서 알 수 있지만 앱에서 알 수 없는 경우, 웹페이지에서 사용자 프로필을 설정하는 기능을 지원하고 있습니다.

...

사용자가 앱에서 로그아웃하는 시점에 다음과 같이 사용자 프로필 정보를 삭제하세요.

Code Block
languagejava
// SDK에 등록한 사용자 프로필을 삭제하는 코드입니다.
BuzzAdBenefit.setUserProfile(null);

 

6 단계: 광고를 표시할

...

WebView 설정

웹 SDK와 소통할 수 있도록 광고를 표시하려고 하는 웹뷰에 다음 코드를 추가하여, 웹 SDK와 소통할 수 있어야 합니다추가하세요.

Code Block
languagejava
WebView webview = (WebView) findViewById(R.id.webView);

final BuzzAdBenefitJavascriptInterface javascriptInterface = new BuzzAdBenefitJavascriptInterface(webView);
webView.getSettings().setJavaScriptEnabled(true); // JS를 사용하여 광고를 로드하기 때문에 필수임
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    // 롤리팝부터 Mixed Content 에러 막기 위함.
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
webView.addJavascriptInterface(javascriptInterface, BuzzAdBenefitJavascriptInterface.INTERFACE_NAME);

...

 

7 단계

...

: Benefit JS SDK가 삽입된

...

웹 페이지 로드하기

Benefit JS SDK가 삽입된 웹페이지를 웹 페이지를 열 경우, 안드로이드 Android 코드에서 설정한 UserProfile 정보 등을 JS Web SDK에서 자동으로 받아 광고를 로드합니다.

Code Block
languagejava
webView.loadUrl(MY_WEB_PAGE);

5 단계. 사용자 정보 삭제

유저가 매체사 앱에서 로그아웃하는 시점에 UserProfile 설정값을 지워 유저의 사용 정보를 삭제합니다.

...

languagejava

...

 

8단계: 앱 빌드하기

BuzzAd Android SDK를 사용하기 위한 모든 설정이 완료되었습니다. 앱을 빌드하고 정상적으로 실행되는지 확인하세요.

Github 샘플 코드를 통해 실제 구현에 사용된 예제를 참고할 수 있습니다.

 

다음 단계

광고 지면 추가하기

Web SDK 연동 가이드를 참고하여 웹페이지에 Web SDK를 추가하고, 앱에 광고 지면을 표시하세요.

포인트 적립 서버 준비하기

사용자가 광고에 참여하면 포인트를 지급해야 하므로 포인트 적립 요청을 처리할 수 있는 서버가 필요합니다.

포인트 처리 서버를 준비하고, 포스트백 연동 가이드에 명시된 API 스펙에 따라 포스트백 API를 구현하세요.