Android를 위한 BuzzAdPop SDK 개발 시작하기

SDK를 앱에 연동하기 전, 아래 사항을 먼저 준비해야 합니다.

Prerequisite

Index


Step 1: 설치

BuzzAdPop Sdk는 maven 을 통해 다운받으실 수 있습니다. 다음 코드를 build.gradle 에 추가해 주십시오.

repositories {
    maven { url "https://dl.buzzvil.com/public/maven" }
}

dependencies {
    implementation "com.buzzvil:buzzad-benefit-pop:1.7.0"
}

Note: BuzzAdPop은 BuzzAdBenefit SDK 에 통합되어 배포되고 있습니다.

(중요) 이미 Benefit Product 가 연동 되어 있다면, build.gradle - dependencies에서 다음 코드를 삭제해 주십시오.

    exclude group: 'com.buzzvil', module: 'buzzad-benefit-pop'

Step 2: BuzzAdPop SDK 초기화

BuzzAdPop은 BuzzAdBenefit SDK에 통합되어 관리되고 있기 때문에 팝을 초기화 하기 위해서 BuzzAdBenefit을 초기화 해주어야 합니다. 팝을 실행하기 전 BuzzAdBenefit.init()을 호출하여 BuzzAdPop SDK 를 초기화 합니다. 이때 팝을 커스텀 할 수 있는 옵션들과 발급받은 unit id, app id 등을 인자로 넘겨주게 됩니다. 자세한 사항은 초기화 페이지를 참고해 주십시오. 초기화 코드는 앱 실행시 한번만 실행하면 됩니다. 아래 코드는 init() 함수를 Application에서 호출해 주는 코드의 예시입니다.

package ...
import ...
import com.buzzvil.buzzad.benefit.BuzzAdBenefit;
import com.buzzvil.buzzad.benefit.BuzzAdBenefitConfig;
import com.buzzvil.buzzad.benefit.presentation.pop.PopConfig;

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        final PopConfig popConfig = new PopConfig.Builder("POP_UNIT_ID_HERE")
                .build();
        final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder("BENEFIT_APP_ID_HERE")
                .add("POP_UNIT_ID_HERE", popConfig)
                .build();

        BuzzAdBenefit.init(this, buzzAdBenefitConfig);
    }
}

Step 3: 로그인

광고를 할당받기 위해 반드시 유저 아이디와 타게팅 정보를 설정해 주어야 합니다. 유저가 매체사 앱에 로그인한 시점에 아래와 같이 UserProfile 을 세팅합니다. 설정값 수정 시, 기존 user profile 값을 호출하여 수정 가능합니다.

final UserProfile.Builder builder = new UserProfile.Builder(BuzzAdBenefit.getUserProfile());
final UserProfile userProfile = builder
        .userId("Your_Service_User_ID")
        .gender(UserProfile.Gender.MALE)
        .birthYear(1985)
        .build();
  
BuzzAdBenefit.setUserProfile(userProfile);

로그아웃 시에는 UserProfile을 null로 설정해 주는 작업이 필요합니다.

BuzzAdBenefit.setUserProfile(null);

Step 4: 권한 설정

BuzzAdPop을 연동하려는 앱이 다른 앱 위에 그리기 권한을 이미 가지고 있다면 해당 부분은 넘어가도 됩니다.

Pop을 실행시키기 위해서는 다른 앱 위에 그리기 권한을 획득해야 합니다. 이는 유저가 직접 설정에서 BuzzAdPop을 연동하려는 앱의 다른 앱 위에 그리기 옵션을 활성화 시켜야 합니다. 유저가 해당 옵션을 활성화 시키지 않으면 Pop을 실행할 수 없습니다. BuzzAdPop SDK에서는 BuzzAdPop 클래스를 통해 현재 앱이 해당 권한을 가지고 있는지 확인하고 유저를 설정으로 보내서 이 권한을 활성화 하도록 유도하는 기능을 제공하고 있습니다. 이 부분을 자체적으로 구현한 경우는 다음 스텝으로 넘어 가시면 됩니다.

  1. Pop을 권한 설정을 해 줄 Activity에 BuzzAdPop 클래스를 변수로 추가합니다.

    private BuzzAdPop buzzAdPop;

  2. Activity의 onCreate에서 Pop의 unit id를 이용해 BuzzAdPop의 인스턴스를 만들어 줍니다.

    this.buzzAdPop = new BuzzAdPop("UNIT_ID");

  3. 다음은 앱이 필요한 권한이 있는지 확인하고 없다면 권한을 얻도록 유도하는 코드입니다.

    public static final int REQUEST_CODE_SHOW_POP = 1024;
    
    public void enablePop() {
        BuzzAdPop buzzAdPop = new BuzzAdPop("UNIT_ID");
        if (buzzAdPop.hasPermission(context)) {
            // Show pop
        } else {
            buzzAdPop.requestPermissionWithDialog((Activity) context,
                new PopOverlayPermissionConfig.Builder(R.string.pop_name)
                    .settingsIntent(OverlayPermission.createIntentToRequestOverlayPermission(context))
                    .requestCode(REQUEST_CODE_SHOW_POP)
                    .build()
            );
        }
    }

  4. 사용자가 설정에서 다른 앱 위에 그리기 권한을 주고 나면 원래 Activity로 돌아오게 됩니다. 이 때 Intent로 result 값이 넘어오게 되는데 이 값을 읽어서 설정에서 권한을 받았다는 것을 알 수 있습니다.

    import static com.buzzvil.lib.buzzsettingsmonitor.SettingsMonitor.KEY_SETTINGS_REQUEST_CODE;
    import static com.buzzvil.lib.buzzsettingsmonitor.SettingsMonitor.KEY_SETTINGS_RESULT;
    
    public class MainActivity extends AppCompatActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    		
            if (getIntent().getBooleanExtra(KEY_SETTINGS_RESULT, false)
                    && getIntent().getIntExtra(KEY_SETTINGS_REQUEST_CODE, 0) == REQUEST_CODE_SHOW_POP) {
                // Permission granted
            }
        }
    }

Step 5. 실행

팝을 활성화 하기 위해서buzzAdPop.showPop() 함수를 호출해 줍니다. 한번 활성화 하면 foreground service가 켜지면서 화면을 껐다켤때마다 팝이 지속적으로 화면에 보이게 됩니다. 팝의 원활한 실행을 위해 광고를 미리 로드한 상태에서 BuzzAdPop.showPop()을 실행시킵니다.

BuzzAdPop buzzAdPop = new BuzzAdPop("UNIT_ID");
buzzAdPop.preload(new BuzzAdPop.PopPreloadListener() {
    @Override
    public void onPreloaded() {
        buzzAdPop.showPop(context, true);
    }

    @Override
    public void onError(AdError error) {
        buzzAdPop.showPop(context, false);
    }
});

Customize

Customize 페이지 에서 CTA Color 변경, 말풍선 (MessagePreview) 기능 등 Customize 가능 한 기능들을 확인할 수 있습니다.

추가 리소스