...
사용자가 기기의 화면을 잠금해제할 때마다 Pop이 표시되는 위치를 설정할 수 있습니다. 초기 설정 값은 SidePosition.Side.RIGHT, 0.6f
(사용자 기기 화면 우측에서 하단 상단 기준으로 60% 높이)입니다.
Code Block | ||
---|---|---|
| ||
PopConfig popConfig = new PopConfig.Builder(feedConfig) .initialSidePosition(SidePosition(SidePosition.Side.RIGHT, 0.6f)) // Pop 표시 위치 .build(); |
Pop
...
Pop 지면 닫기 버튼을 눌러 지면을 종료하기 전 뷰에 Unit ID를 설정해 사용자에게 광고를 추가적으로 노출할 수 있습니다.
Code Block | ||
---|---|---|
| ||
PopConfig popConfig = new PopConfig.Builder(feedConfig)
.popExitUnitId(R.id.your_pop_exit_unit_id) //Pop 종료 광고 지면 Unit ID
.build(); |
Pop 포그라운드 서비스 알림 자체 구현하기
PopConfig
를 사용해 Pop 포그라운드 서비스 알림을 직접 구현해 알림의 동작, UI 레이아웃까지 변경할 수 있습니다.
...
PopControlService
의 상속 클래스를 구현하세요.notificationChannel
을 생성하거나 View를 등록할 수 있습니다.getPopPendingIntent(unitId, context)
를 등록해 으로 Pop 지면으로 진입하는PendingIntent
를 제공할 이용할 수 있습니다.
다음은PopControlService
의 상속 클래스를 구현하는 예시입니다.Code Block language java public class YourControlService extends PopControlService { @Override protected Notification buildForegroundNotification(@NonNull String unitId, @NonNull PopNotificationConfig popNotificationConfig) { // Pop을 표시하는 PendingIntent (원형 아이콘) PendingIntent popPendingIntent = getPopPendingIntent(unitId, this); // 필요에 따라 notificationChannel을 등록합니다. NotificationCompat.Builder builder; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { createNotificationChannelIfNeeded(); builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID); } else { builder = new NotificationCompat.Builder(this); } // Pop Service Notification 에 사용할 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) protected 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); } } }
NotificationId
는PopNotificationConfig
에서 설정하세요. 다음의 예시를 참고하세요.Code Block language java final PopNotificationConfig popNotificationConfig = new PopNotificationConfig.Builder(getApplicationContext()) .notificationId(NOTIFICATION_ID) .build(); final FeedConfig popFeedConfig = new FeedConfig.Builder("YOUR_POP_UNIT_ID").build(); final PopConfig popConfig = new PopConfig.Builder(popFeedConfig) .popNotificationConfig(popNotificationConfig) .controlService(YourControlService.class) .build(); final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context) .setPopConfig(popConfig) .build();
구현한 상속 클래스를 AndroidManifest.xml 파일에 등록하세요.
Code Block language java // AndroidManifest.xml <application ...생략... <service android:name=".YourControlService" /> ...생략... </application>
...