...
Code Block | ||
---|---|---|
| ||
PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID") .build(); final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context) ...생략... .setPopConfig(popConfig) .build(); BuzzAdBenefit.init(this, buzzAdBenefitConfig); |
Pop 지면 활용
커스텀 페이지 추가
Pop 지면을 이용하여 원하는 내용을 표시할 수 있습니다. 커스텀 페이지는 툴바와 컨텐츠로 이루어져있습니다.
...
커스텀 페이지는 자유롭게 구현하여 사용할 수 있습니다. 예를 들어, 유틸리티 영역 혹은 툴바 영역에 버튼을 추가하고 원하는 페이지를 보여주기 위해 사용합니다. 유틸리티 영역과 툴바 영역의 커스터마이징은 https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/2270135213/ver+2.25.x+6.2.3.#Pop-Feed-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95에서 확인할 수 있습니다.
Pop Service Notification 자체 구현
...
Pop을 정상적으로 이용하기 위해서 Service 를 실행합니다. 그래서 Pop이 활성화되어 있는 동안에 Service Notification이 보입니다. 다음은 Service Notification 을 직접 구현하여 BuzzAd Android SDK에서 제공하는 Notification 을 대체하는 방법을 안내합니다. Notification의 동작, UI 레이아웃까지 직접 구현하여 수정할 수 있습니다. 만일 BuzzAd Android SDK에서 제공하는 Notification 을 기반으로 간단한 UI 수정을 원하는 경우는 https://buzzvil.atlassian.net/wiki/spaces/BDG/pages/2270135213/ver+2.25.x+6.2.3.#Notification-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95을 참고하시기 바랍니다.
CustomControlService
구현
getPopPendingIntent
를 통해 click 시 Pop Icon 을 띄우는 기능을 하는 PendingIntent 를 만들 수 있습니다.필요에 따라 notificationChannel 을 생성해 등록합니다.
(Optional)RemoteViews
,setContent
를 사용해 CustomContolService 에서 사용할 View 를 등록합니다PopConfig에
CustomControlService
를 등록하여 사용할 수 있습니다.
이 경우, PopNotificationConfig 는 SmallIconRes 와 NotificationId 두 가지만 설정하면 됩니다.Manifest 에 CustomControlService 를 등록
Code Block | ||
---|---|---|
| ||
// 1. PopControlService 를 상속받아 class 를 만듭니다. public class YourControlService extends PopControlService { // 2. buildForegroundNotification 함수를 오버라이드 합니다. @Override protected Notification buildForegroundNotification(@NonNull String unitId, @NonNull PopNotificationConfig popNotificationConfig) { // 3. getPopPendingIntent 를 통해 click 시 Pop Icon 을 띄우는 기능을 하는 PendingIntent 를 만들 수 있습니다. PendingIntent popPendingIntent = getPopPendingIntent(unitId, this); NotificationCompat.Builder builder; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { // 4. 필요에 따라 notificationChannel 을 생성해 등록합니다. createNotificationChannelIfNeeded(); builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID); } else { builder = new NotificationCompat.Builder(this); } // 5. CustomContolService 에서 사용할 View 를 등록합니다. RemoteViews remoteView = new RemoteViews(getPackageName(), R.layout.view_custom_notification); builder.setSmallIcon(popNotificationConfig.getSmallIconResId()) .setContent(remoteView) .setContentIntent(popPendingIntent) .setPriority(PRIORITY_LOW) .setShowWhen(false); if (popNotificationConfig.getColor() == null) { builder.setColor(popNotificationConfig.getColor()); } return builder.build(); } @TargetApi(Build.VERSION_CODES.O) private void createNotificationChannelIfNeeded() { final NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (notificationManager.getNotificationChannel(NOTIFICATION_CHANNEL_ID) == null) { final NotificationChannel channel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, NOTIFICATION_CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW); channel.setShowBadge(false); notificationManager.createNotificationChannel(channel); } } } final PopNotificationConfig popNotificationConfig = new PopNotificationConfig.Builder() .notificationId(NOTIFICATION_ID) .build(); final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), UNIT_ID_POP) .popNotificationConfig(popNotificationConfig) .controlService(YourControlService.class) .build(); final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context) .setPopConfig(popConfig) .build(); // AndroidManifest.xml <application ...생략... <service android:name=".java.YourControlService" /> ...생략... </application |
Interstitial 광고 지면 추가
...
popExitUnitId
를 설정하면 사용자가 Pop 지면에서 이탈을 할 때, Interstitial 광고를 노출합니다. Interstitial 지면의 unit id 발급을 원하시는 경우에는 버즈빌 매니저에게 문의하시기 바랍니다.
...