Pop 타입 (2.0): Pop 초기화

BuzzAdBenefit 초기화

BuzzAdBenefit 의 제품 중 하나인 Pop 은 BuzzAdBenefit SDK 를 통해서 초기화가 진행됩니다.

 

Index

Step 1. BuzzAdBenefit 초기화

Application Class의 onCreate에 아래 코드를 추가할 것을 권장하나, 최초 광고 요청 전에만 불린다면 자유롭게 코드 위치를 결정할 수 있습니다.

public class App extends Application { @Override public void onCreate() { BuzzAdBenefit.init(this, new BuzzAdBenefitConfig.Builder(context).build()); } }

Step 2. PopConfig 설정

Unit id 를 설정하고, 팝의 아이콘, 팝이 나타날 때의 위치 등 Look & Feel을 정하기 위한 항목입니다. 이미지 예시를 직접 참고하려면 POP 디자인 가이드 문서를 참고해주세요.

  • UNIT_ID_POP 준비한 UNIT_ID_POP 삽입합니다.

다음은 PopConfig를 통해 설정할 수 있는 값들로 Optional이며 설정하지 않아도 디폴트 값이 있습니다. 다음에서 변경하고자 하는 값들을 설정한 후 build() 함수를 호출합니다.

new PopConfig.Builder(getApplicationContext(), UNIT_ID_POP).build();
  • iconResourceId 팝 아이콘 drawable을 만들어 아이콘을 변경할 수 있습니다. 이때 상태에 따라 평상시 아이콘과 피드 종료 아이콘을 지정해 주어야 합니다.

    <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> // 종료 아이콘 <item android:drawable="@drawable/icon_pop_selected" android:state_selected="true" /> // 평상시 팝 아이콘 <item android:drawable="@drawable/icon_pop"/> </selector>
  • 팝 아이콘 사이즈

    • 56*56 dp (mdpi 기준)

    • 224*224 px (xxxhdpi까지 지원, 픽셀기준 최대 4배)

  • rewardReadyIconResourceId 팝에서 적립 가능한 포인트가 있을 때 기본 아이콘이 아닌 다른 아이콘을 (예: 동전 아이콘) 유저에게 보여줄 수 있습니다. iconResourceId와 마찬가지로 selector를 이용하여 작성합니다.

  • idleTimeInMillis 팝이 뜬 후 사라지기 전까지 노출되는 시간을 수정합니다. 기본값은 5초입니다.

  • popAdMessageViewClass 팝의 말풍선(preview)에 광고의 내용이 보일때의 말풍선 뷰를 변경할 수 있습니다. 기본 클래스에서는 광고를 통해 얻을 수 있는 포인트를 보여줍니다. 커스텀 클래스 설정하는 방법은 여기를 참고해 주세요.

  • popArticleMessageViewClass 팝의 말풍선(preview)에 아티클의 내용이 보일때의 말풍선 뷰를 변경할 수 있습니다. 기본 클래스에서는 아티클의 제목을 보여줍니다. 커스텀 클래스 설정하는 방법은 여기를 참고해 주세요.

  • popUtilityLayoutHandlerClass 피드를 열었을때 하단에 보이는 Utility영역을 변경합니다. 기본 클래스에서는 카메라, 브라우저, 사진첩으로 이동할 수 있습니다. 커스텀 클래스 설정하는 방법은 여기를 참고해 주세요.

  • initialSidePosition(@NonNull final SidePosition initialSidePosition) 팝의 초기 위치 설정합니다. Default 값은 SidePosition.Side.RIGHT, 0.6f(화면 우측, 위에서 60 % 지점)

  • initialPopIdleMode(@NonNull PopIdleMode initialPopIdleMode) 팝의 Idle 상태 동작을 결정합니다. 5 초 동안 User의 Interaction 이 없다면 Idle 상태가 되며, 여기서 설정 된 모드로 동작하게 됩니다. Default 값은 INVISIBLE

    • INVISIBLE : 일정 시간 후 Pop Icon 이 사라집니다. 다시 Pop Icon 을 활성화 하려면 Notification 을 클릭하거나, 화면을 껐다가 켜야합니다.

    • TRANSLUCENT : 일정 시간 후 Pop Icon 이 사라지지 않고 활성화 상태에서 반투명해집니다. 반투명 Pop Icon 은 User Interaction 을 받을 수 있습니다.

  • controlService Service Notification 을 커스텀 하기 위해 사용합니다. 버즈빌이 제공하는 기능을 온전히 사용하고 앞으로의 서포트를 받기 위해서는 되도록 커스텀하지 않고 기본값을 사용하길 권장합니다. 자세한 사항은 하단의 Andvanced를 참고해주세요.

  • feedConfig 팝에서 사용할 피드의 config를 설정합니다. 자세한 내용은 3번 단락에서 다룹니다.

  • popNotificationConfig 팝에서 사용하는 Notification 의 config를 설정합니다. 자세한 내용은 4번 단락에서 다룹니다.

  • popExitUnitId (Optional) Pop close button을 눌러 Pop feed를 종료할 때, 광고를 보여줄 unitId 를 설정합니다.

Step 3. FeedConfig 설정

팝을 클릭해서 나오는 Feed 뷰를 설정합니다. 먼저 Defualt 로 연동을 진행한 뒤, 이후 Customize 문서를 참고해 주세요. (Feed 뷰의 랜딩이 Activity 나 Fragment 의 랜딩 방식은 광고 타입이나 서버의 설정에 따라 결정됩니다.)

 

Benefit SDK 2.17 이상

Benefit SDK 2.17 이상은 Pop 에서 Benefit 에 설정 된 FeedConfig 를 사용하도록 변경됐습니다.

  • 따라서 BuzzAdBenefit.init 시점에 BuzzAdBenefitConfig 를 통해 위에서 생성한 FeedConfig 를 설정합니다. (기존에 사용하던 FeedConfig 값이 있으면 그 값을 사용합니다.)

 

Benefit SDK 2.17 미만

Benefit SDK 2.17 미만은 PopConfig 에 FeedConfig 를 설정합니다.

Step 4. PopNotificationConfig 설정

팝을 실행하고 있는 동안에는 팝이 실행중이라는 Service Notification을 보여주는데 이 Notification의 내용을 결정하기 위해 필요합니다. 앱의 톤 & 매너를 반영하여 변경합니다.

 

  1. PopNotificationConfig.Builder(@DrawableRes final int smallIconResId) small 아이콘을 정합니다. Notification Icon Design guide 를 따라 *흰색 Icon 을 추천합니다. (*주의사항 Adaptive Icon 이 설정되지 않도록 주의해야합니다.)

  2. colorResId(@ColorRes int colorResId) Notification 의 아이콘, 앱 이름 에 적용되는 색상을 설정합니다.

  3. titleResId(@StringRes int titleResId) 타이틀을 설정합니다.

  4. textResId(@StringRes int textResId) Notification의 내용을 설정합니다.

  5. notificationId(int notificationId) Android Notification Id를 설정합니다. Default 값은 5000

Step 5. PopConfig 를 빌드

PopConfig, FeedConfig, PopNotificationConfig를 생성하고 나면 Benefit 초기화 시, 아래와 같이 popConfig 를 설정 할 수 있습니다. Benefit SDK 2.17 부터 PopConfig 에 feedConfig 대신 Benefit 초기화 시 사용한 FeedConfig 의 feedUnitId 를 설정하도록 변경됐습니다.

Benefit SDK 2.17 이상

 

Advanced

Custom Service Notification

Pop 에서 기본 제공하는 Service Notification 은 클릭 했을 때 Pop 을 다시 보이는 기능을 제공합니다. 하지만 개발 요구사항에 따라 Service Notification 을 다른 형식으로 사용해야 할 경우가 있는데 그런 경우 Custom Service Notification 을 등록하는 방법을 사용할 수 있습니다.

Step 1. CustomControlService class

  1. PopControlService 를 상속받아 class 를 만듭니다.

  2. buildForegroundNotification 함수를 오버라이드 합니다.

  3. (Optional) getPopPendingIntent 를 통해 click 시 Pop Icon 을 띄우는 기능을 하는 PendingIntent 를 만들 수 있습니다. 요구사항에 따라 이 기능 대신 필요한 기능을 PendingIndent로 사용하면 됩니다.

  4. 필요에 따라 notificationChannel 을 생성해 등록합니다.

  5. (Optional)RemoteViews, setContent 를 사용해 CustomContolService 에서 사용할 View 를 등록합니다.

Step 2. Custom Service Class 등록

PopConfig.controlService(@NonNull Class<? extends PopControlService> popControlServiceClass) 를 사용해 Custom Service Notification 을 등록할 수 있습니다.

이 경우, PopNotificationConfig 는 SmallIconRes 와 NotificationId 두 가지만 설정하면 됩니다.

Step 3. Manifest 에 CustomControlService 를 등록