...
본 가이드에서는 BuzzAd Android SDK의 Pop 지면의 기능을 설명하고 각 기능을 변경하는 방법을 설명합니다.
...
PopConfig 설정
PopConfig를 통해 Pop의 기능을 설정할 수 있습니다.
...
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); BuzzAdBenefit.init(this, buzzAdBenefitConfig |
콘텐츠 숨기기
Pop 에서는 기본적으로 콘텐츠를 함께 제공하고 있습니다. 콘텐츠는 광고가 아니며 뉴스 기사와 같은 아이템입니다. 만일 콘텐츠를 Pop 에서 보이지 않도록 하기 위해서는 다음과 같이 설정하여 숨길 수 있습니다.
Code Block | ||
---|---|---|
| ||
PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID")
.articlesEnabled(false) // 컨텐츠 비활성화
.build(); |
Pop 활성화 버튼
...
Feed 지면에 Pop 지면 활성화 버튼을 표시할 수 있습니다. 사용자는 Pop 지면 활성화 버튼을 통해 자연스럽게 Pop 을 활성화할 수 있습니다.
...
커스텀 페이지는 자유롭게 구현하여 사용할 수 있습니다. 예를 들어, 유틸리티 영역 혹은 툴바 영역에 버튼을 추가하고 원하는 페이지를 보여주기 위해 사용합니다. 유틸리티 영역과 툴바 영역의 커스터마이징은 https://buzzvil.atlassian.net/wiki/spaces/~79598069/pages/2352874932#Pop-Feed-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95 여기에서 확인할 수 있습니다.
Pop Service Notification 자체 구현
...
Code Block | ||
---|---|---|
| ||
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); } } } |
...
다음은 BuzzAd Android SDK에서 제공하는 UI를 이용하여 구현하는 예시입니다.
Code Block | ||
---|---|---|
| ||
public class YourPopToolbarHolder extends DefaultPopToolbarHolder {
@Override
public View getView(Activity activity, @NonNull final String unitId) {
toolbar = new PopToolbar(activity); // PopToolbar 에서 제공하는 기본 Template 사용
toolbar.setTitle("TemplatePopToolbarHolder"); // 툴바 타이틀 문구를 변경합니다.
toolbar.setIconResource(R.mipmap.ic_launcher); // 툴바 좌측 아이콘을 변경합니다.
toolbar.setBackgroundColor(Color.LTGRAY); // 툴바 배경색을 변경합니다.
addInquiryMenuItemView(activity, unitId); // 문의하기 버튼은 이 함수를 통해 간단하게 추가 가능합니다.
addRightMenuItemView1(activity, unitId); // custom 버튼 추가
return toolbar;
}
// custom 버튼 추가는 toolbar.buildPopMenuItemView 를 사용하여 PopMenuImageView 를 생성하고
// toolbar.addRightMenuButton 를 사용하여 toolbar 에 추가합니다.
private void addRightMenuItemView1(@NonNull final Activity activity, @NonNull final String unitId) {
PopMenuImageView menuItemView = toolbar.buildPopMenuItemView(activity, R.mipmap.ic_launcher);
menuItemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInquiry(activity, unitId); // 문의하기 페이지로 연결합니다.
}
});
toolbar.addRightMenuButton(menuItemView);
}
} |
...
Code Block | ||
---|---|---|
| ||
public final class CustomPopUtilityLayoutHandler extends PopUtilityLayoutHandler {
private Context context;
public CustomPopUtilityLayoutHandler(Context context) {
super(context);
this.context = context;
}
@Override
public void onLayoutCreated(ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);
final FrameLayout layout = (FrameLayout) inflater.inflate(
R.layout.your_pop_utility_view,
parent,
false
);
parent.addView(layout);
}
}
|
Code Block | ||
---|---|---|
| ||
new PopConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID") .popUtilityLayoutHandlerClass(CustomPopUtilityLayoutHandler.class) .build(); |
...