5. 퍼블리셔 오퍼월 AOS SDK

Introduction

버즈애드 오퍼월을 안드로이드 어플리케이션에 연동하기 위한 가이드 문서입니다. 유저가 여러 액션형 광고에 참여할 수 있는 오퍼월 지면을 손쉽게 연동할 수 있습니다.

예시 화면은 아래와 같습니다.

원하는 테마 컬러의 hex code를 버즈빌 매니저에게 전달주시면 적용 가능합니다. 색상 적용 범위는 아래와 같습니다.

  • 상단 툴바 색상

  • 포인트 금액 텍스트

  • 광고 타입 아이콘

Requirements

항목

내용

비고

항목

내용

비고

1

안드로이드 지원 버전

Android 4.2(API Level 17) 이상

 

2

Google Play의 대상 API 레벨 요구사항을 충촉하기

Offerwall SDK의 대응: 1.1.0 버전 이상에서 

  • targetSdkVersion28 사용

  • compileSdkVersion28 이상 사용

정책 적용 시점

  • 신규 앱: 
    2019년 8월 1일

  • 기존 앱: 
    2019년 11월 1일

3

app_key

SDK 연동 및 샘플 어플리케이션 실행을 위해 필요

버즈빌 BD 매니저로부터 발급

Installation

하위 버전에서 1.1.0 버전 이상으로 업데이트 시, buzzad.jar을 다운받아 설치하셨을 경우, 라이브러리에 존재하는 buzzad-1.0.x.jar 파일을 삭제후 진행 부탁드립니다.

1. build.gradle 설정

 

1 2 3 4 5 6 7 8 repositories { maven { url "https://dl.bintray.com/buzzvil/maven/" } } dependencies { implementation 'com.buzzvil:buzzad-offerwall:1.1.5' }


2. AndroidManifest.xml에 아래와 같이 권한을 추가하고, 액티비티를 설정합니다.

 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <manifest> ... <!-- Permission for BuzzAd --> <uses-permission android:name="android.permission.INTERNET" /> <!-- Below are Optional but recommended. without it you can only get limited ad list --> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <application> ... <!-- Setting for Google Play Services --> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <!-- Activity for BuzzAd --> <activity android:name="com.buzzvil.buzzad.sdk.OfferWallActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> </application> </manifest>

ProGuard 사용 시 하기 code block 의 라인들을 ProGuard 설정에 추가합니다.

1 2 3 4 5 6 -keep class com.buzzvil.buzzad.sdk.** {*;} -keep interface com.buzzvil.buzzad.sdk.** {*;} -keep class com.google.android.gms.common.GooglePlayServicesUtil {*;} -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;} -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}

Call Methods

항목

코드 & 호출 위치

내용

항목

코드 & 호출 위치

내용

초기화 필수

BuzzAd.init(String appKey, Context context)

  • 오퍼월을 보여주려는 액티비티의 onCreate에서 호출

appKey는 퍼블리셔 어드민 페이지에 로그인하여 확인 가능

오퍼월 액티비티 호출 필수

View 단위 연동은 아래 확인

BuzzAd.showOfferWall(Activity activity, String title, String userId)

반드시 BuzzAd.init() 을 호출한 이후에만 오퍼월 호출이 가능합니다.

앱 재설치 또는 일정 주기에 따라 userId 가 변화할 경우, 반드시 BD 매니저와 사전 논의 필요

UserProfile 객체 리턴 필수

BuzzAd.getUserProfile()

반드시 BuzzAd.init() 을 호출한 이후에만 이 메소드를 이용해서 UserProfile 객체를 리턴할 수 있습니다.

  • 성별, 나이별 타게팅 정보를 가진 광고를 유저에게 보여주려 할 때 사용

  • 리턴된 객체에 아래에 기술된 메소드로 유저의 성별, 나이 정보를 설정할 수 있습니다.

타게팅 정보는 원활한 서비스 운영을 위해 제공해야 할 필수 항목입니다.

유저 연령 설정 필수

setBirthYear(int birthYear)

유저의 출생 년도를 4자리의 숫자로 입력하여 나이를 설정합니다. (예: 1988)

유저 성별 설정 필수

setGender(String gender)

다음과 같이 미리 정의된 String 형식에 맞춰 성별을 적용해야 합니다.

  • UserProfile.USER_GENDER_MALE : 남성인 경우

  • UserProfile.USER_GENDER_FEMALE : 여성인 경우

퍼블리셔 앱 내에서 여러 오퍼월을 연동하여, 하나의 액티비티 내에서 버즈빌 오퍼월을 View 단위로 연동하고자 하는 경우
위 “오퍼월 액티비티 호출” 단계 대신 아래 함수를 호출합니다.

1 2 3 4 5 6 7 8 /** * get offerwall view * @param activity current context * @param userId user id for identifying user on publisher side */ public static OfferwallView getOfferwallView(Activity activity, String userId) { return new OfferwallView(activity, APP_KEY, userId); }

 

Sample Code

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * Initialize BuzzAd. * BuzzAd.init have to be called prior to other methods. * app_key : Unique key value for publisher. Please find it on your BuzzAd dashboard. * this : Context */ BuzzAd.init("app_key", this); /** * Set User's profile(Optional) * BuzzAd.getUserProfile have to be called after BuzzAd.init is called. */ UserProfile userProfile = BuzzAd.getUserProfile(); userProfile.setBirthYear(1993); userProfile.setGender(UserProfile.USER_GENDER_FEMALE); findViewById(R.id.open_offerwall).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /** * Show offer wall. * MainActivity.this : Current activity * Get Points : Header title on offer wall * publisher_user_id : Unique user id for publisher */ BuzzAd.showOfferWall(MainActivity.this, "Get Points", "publisher_user_id"); } }); } }

포인트 적립 포스트백 API 연동

  • 버즈애드에서 포인트 적립이 발생했을 때 버즈애드에서 직접 매체사 유저들에게 포인트를 지급하는 것이 아닙니다. 버즈애드 서버에서 매체사 서버로 포인트 적립 요청을 보낼 뿐이고, 실제 지급은 매체사 서버에서 처리합니다.

https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/384696503 문서를 참고하여 API 연동 후, endpoint url을 버즈빌 매니저에게 전달해주세요.