Native 에 Feed 진입경로 연동
2.16.x 이상 버전 부터 사용 가능합니다.
기본 요건
Native 연동이 필요합니다.
설정 방법
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 진입경로 연동
기본 요건
Interstitial 연동이 필요합니다.
설정 방법
Interstitial Ad에서 Feed 로 진입할 수 있는 방법을 제공합니다. Interstitial Ad를 보여주기 위해 InterstitialAdConfig
클래스를 사용하는데 이때 navigateCommand
를 설정하면 Feed로 진입할 수 있는 레이아웃이 보여지게 됩니다. navigateCommand
객체를 생성할 때 SDK에 설정한 Feed의 Unit ID(YOUR_FEED_UNIT_ID
)를 넘겨줘야 합니다.
new InterstitialAdConfig.Builder() ... 생략 .navigateCommand(NavigateToFeedCommand.with(YOUR_FEED_UNIT_ID) .build()
Interstitial Ad에서는 Feed로 진입하는 레이아웃은 변경할 수 없습니다.