Native 에 더보기 버튼 연동 (Feed entry point 추가하기)
2.16.x 이상 버전 부터 사용 가능합니다.
Native ad에서 Feed 로 진입할 수 있는 레이아웃인 NativeToFeedLayout
클래스를 제공합니다. Native Ad는 레이아웃을 매체사에 정하고 있기 때문에 NativeToFeedLayout
또한 매체사가 원하는 부분에 배치하시면 됩니다.
NativeToFeedLayout
은 default onClickListener()
가 설정되어 있는 LinearLayout
입니다. NativeToFeedLayout
을 연동하기 위해서는 아래의 절차가 필요합니다.
Step 1. FeedConfig 설정
NativeToFeedLayout
을 사용하기 위해서는 BuzzAdBenefit.init()
시점에 feedConfig
을 추가해주어야 합니다. 이미 FeedConfig에 대한 설정을 마치셨다면 다음 단계로 이동해주세요.
private void initializeBuzzAdBenefit(Context context) { final FeedConfig feedConfig = new FeedConfig.Builder(context, YOUR_FEED_UNIT_ID) ... // customization code can be added .build(); final BuzzAdBenefitConfig buzzAdBenefitConfig = configBuilder .setFeedConfig(feedConfig) .build(); BuzzAdBenefit.init(context, buzzAdBenefitConfig); }
Step 2. NativeToFeedLayout 추가
Native Ad에 사용할 Layout에 NativeToFeedLayout
을 추가해줍니다. NativeToFeedLayout
은 비어있는 레이아웃이기 때문에 원하시는 레이아웃을 자유롭게 구성할 수 있습니다. 위 그림의 예시처럼 피드로 이동하는 안내 텍스트와 화살표 아이콘을 사용하시는 것을 추천합니다.
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout ... <com.buzzvil.buzzad.benefit.presentation.feed.navigation.NativeToFeedLayout android:id="@+id/native_to_feed_layout" ...> <TextView ... /> <ImageView ... /> </com.buzzvil.buzzad.benefit.presentation.feed.navigation.NativeToFeedLayout> ... </androidx.constraintlayout.widget.ConstraintLayout>
Step 3. Native Ad Unit 설정
NativeToFeedLayout
을 매체사의 레이아웃에 추가하셨다면, 해당 레이아웃을 찾아서, Unit ID를 설정해야 합니다. 이때 사용되는 Unit은 Native Ad를 보여주기 위해 사용하는 Native Ad Unit ID입니다.
@Override protected void onCreate(Bundle savedInstanceState) { ... NativeToFeedLayout nativeToFeedLayout = findViewById(R.id.native_to_feed_layout); nativeToFeedLayout.setNativeUnitId(YOUR_NATIVE_UNIT_ID); ... }
Step 4. (Optional) 베이스 리워드 표시
위의 이미지는 NativeToFeedLayout에 베이스리워드(2포인트)를 표시한 예시입니다.
NativeToFeedLayout
의 클릭율을 높이기 위해 현재 NativeToFeedLayout
를 클릭해서 Feed에 진입했을때 받을 수 있는 베이스 리워드를 표시할 수 있습니다. 그러기 위해서는 유저가 피드에 진입하면 받을 수 있는 베이스 리워드가 얼마인지 알아야 하기 때문에 다음과 같이 BaseRewardManager
클래스를 이용할 수 있습니다. BaseRewardManager.getAvailableFeedBaseReward()
함수를 호출해 베이스 리워드를 조회할 수 있습니다.
BaseRewardManager baseRewardManager = BuzzAdBenefit.getBaseRewardManager(); @Override public void onStart() { super.onStart(); updateNavigationTextView(); } @Override public void onStop() { super.onStop(); baseRewardManager.clear(); } private void updateNavigationTextView() { baseRewardManager.getAvailableFeedBaseReward( YOUR_FEED_UNIT_ID, reward -> { if (reward < 1) { navigationTextView.setText("더 많은 참여 기회 보기"); } else { navigationTextView.setText(String.format(Locale.ROOT, "%d 포인트 추가로 적립하고 더 많은 참여 기회 보기", reward)); } } ); }
유저에게 정확한 추가 리워드 지급량을 보여주기 위해
Activity
의onStart()
시점에 텍스트를 업데이트 해주세요.메모리 누수를 방지하기 위해
Activity
의onStop()
시점에BaseRewardManager.clear()
함수를 호출해주세요.
Interstitial 에 더보기 버튼 연동(Feed entry point 추가하기)
Interstitial Ad에서 Feed 로 진입할 수 있는 방법을 제공합니다. Interstitial Ad를 보여주기 위해 InterstitialAdConfig
클래스를 사용하는데 이때 navigateCommand
를 설정하면 Feed로 진입할 수 있는 레이아웃이 보여지게 됩니다. navigateCommand
객체를 생성할 때 SDK에 설정한 Feed의 Unit ID를 넘겨줘야 합니다.
new InterstitialAdConfig.Builder() ... 생략 .navigateCommand(NavigateToFeedCommand.with(YOUR_FEED_UNIT_ID) .build()
Interstitial Ad에서는 Feed로 진입하는 레이아웃을 변경할 수 없습니다.