Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 17 Next »

개요

Native 광고 지면에 Feed로 이동할 수 있는 진입경로를 추가하여 더 많은 유저가 Feed로 진입할 수 있도록 합니다.

기본 요건

  • Native 연동 완료

  • Feed 연동 완료

  • BuzzAdBenefit SDK 2.16.x 이상

설정 방법

Native ad에서 Feed 로 진입할 수 있는 레이아웃인 NativeToFeedLayout 클래스를 제공합니다.
NativeToFeedLayout 을 Native 지면에 배치하여 유저를 피드로 유도할 수 있습니다.

Step 1. 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 2. 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 3. (Optional) 베이스 리워드 표

NativeToFeedLayout에 베이스리워드(2포인트)를 표시한 예시

위의 이미지는 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));
            }
        }
    );
}
  • 유저에게 정확한 추가 리워드 지급량을 보여주기 위해 ActivityonStart() 시점에 텍스트를 업데이트 해주세요.

  • 메모리 누수를 방지하기 위해 ActivityonStop() 시점에 BaseRewardManager.clear() 함수를 호출해주세요.

  • No labels