본 가이드는 BuzzAdBenefit SDK의 피드 타입 광고를 연동하는 방법을 다루는 문서입니다. 피드는 여러 광고를 리스트 형식으로 볼 수 있는 지면입니다.
Info |
---|
주의사항
|
Index
Table of Contents | ||
---|---|---|
|
Feed 초기화
Application Class의 onCreate
에 아래 코드를 추가합니다.
Code Block |
---|
public class App extends Application {
@Override
public void onCreate() {
final FeedConfig feedConfig = new FeedConfig.Builder(context, "YOUR_FEED_UNIT_ID")
.feedHeaderViewAdapterClass(DefaultFeedHeaderViewAdapter.class)
.build();
final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context)
.setFeedConfig(feedConfig)
.build();
BuzzAdBenefit.init(this, new BuzzAdBenefitConfig.Builder(context).build());
}
} |
Expand | ||
---|---|---|
| ||
PopConfig와 FeedConfig를 추가하는 interface가 다르니 주의해주세요
|
Feed 보여주기
FeedConfig
와 FeedHandler
클래스를 이용하여 피드를 사용자에게 보여줍니다. 피드를 보여주는 시점은 사용자가 앱내의 특정 버튼을 탭했거나 BuzzAdBenefit SDK에서 제공하는 다양한 EntryPoint가 EntryPoint(진입경로)가 될 수 있습니다. 여기서는 사용자가 매체사에서 구현한 버튼이나 배너 등을 탭했을때 피드를 보여주는 방법을 안내합니다.
FeedConfig
를 설정할 때 사용한 Feed unit id로FeedConfig
를 설정합니다.FeedConfig
객체를 사용하여FeedHandler
를 생성합니다.startFeedActivity()
를 호출하여 Feed 액티비티를 실행합니다.
Code Block | ||
---|---|---|
| ||
final FeedConfigFeedHandler feedConfigfeedHandler = new FeedConfig.BuilderFeedHandler(context, "YOUR_FEED_UNIT_ID") .feedHeaderViewAdapterClass(DefaultFeedHeaderViewAdapter.class) .build(); final FeedHandler feedHandler = new FeedHandler(feedConfig); feedHandler.startFeedActivity(this); |
FeedFragment를 사용하여 Feed 보여주기
기본적으로 제공되는 FeedActivity를 사용하는 방식을 권장하지만, 다른 방식으로 Feed를 보여주고 싶을때, FeedFragment를 사용할 수 있습니다. 예를들어, bottom sheet이 아닌 형태로 피드를 제공하고자 하는 경우 아래 가이드를 따라 구현합니다.
FeedFragment 기본 사용 방법
Code Block language xml // layout xml 에 다음과 같이 추가합니다. <fragment android:id="@+id/feed_fragment" android:name="com.buzzvil.buzzad.benefit.presentation.feed.FeedFragment" android:layout_width="match_parent" android:layout_height="match_parent" />
Code Block language java // XML에 추가 후 코드에서 아래와 같이 init을 호출해야 합니다. final FeedFragment feedFragment = (FeedFragment) getSupportFragmentManager().findFragmentById(R.id.feed_fragment); if (feedFragment != null) { feedFragment.init(YOUR_FEED_CONFIG); }
FeedFragment에서도 FeedActivity와 마찬가지로 FeedHandler를 생성한 후 preload()를 호출하고 startFeedActivity()를 호출하지 않으면 Preload와 관련한 기능을 모두 사용할 수 있습니다.
FeedFragment에서도 FeedActivity에서 제공하는 Customization 옵션 중 Toolbar를 제외한 AdsAdapter와 Header, Image 타입 광고의 경우 feedConfig에 추가하는 방식을 통해 Customize가 가능합니다.
Note |
---|
매번 새로운 광고를 서빙 받기 위해서는 FeedFragment를 초기화 하기 전 FeedHandler를 생성해야 합니다. |
Feed의 광고 현황 확인
Basic Usage처럼 바로 startFeedActivity를 호출하는 경우 Feed 액티비티가 실행되면서 광고를 로드하게 되어, 유저에게 보여줄 수 있는 광고가 없어 빈 화면이 보이게 될 수도 있습니다. 이에 Feed 액티비티를 실행하기 전에 preload()
를 호출한 뒤 onPreloaded()
콜백을 호출하여 상태를 확인한 후 광고가 있을때만 피드로 진입할 수 있도록 하는 것을 추천합니다.
feedHandler.getSize()
: 광고의 개수feedHandler.getTotalReward()
: 적립 가능한 총 포인트 금액
Code Block | ||
---|---|---|
| ||
feedHandler.preload(new FeedHandler.FeedPreloadListener() { @Override public void onPreloaded() { int feedAdSize = feedHandler.getSize(); int feedTotalReward = feedHandler.getTotalReward(); } @Override public void onError(AdError error) { // 광고가 없을 경우 호출됩니다. error를 통해 발생한 error의 원인을 알 수 있습니다 } }); |
Note |
---|
유의사항
|
Code Block | ||
---|---|---|
| ||
// 일회성 사용의 예 private void preloadFeed() { // WeakReference가 적용된 FeedHandler가 지역변수로서 선언이 되어서, 메모리에서 지워져 아래의 Listener 코드가 실행되지 않을 수 있습니다 final FeedHandler feedHandler = new FeedHandler(getFeedConfig()); feedHandler.preload(new FeedHandler.FeedPreloadListener() { @Override public void onPreloaded() { // 실행되지 않을 수 있습니다 } @Override public void onError(AdError error) { // 실행되지 않을 수 있습니다 } }); } |
개인정보 취급 방침
개인정보 보호법과 구글 정책에 대응하기 위해, 유저가 버즈빌 광고 지면에 들어갈 때, 개인정보 수집 및 사용에 대한 동의를 받게 됩니다. 별도의 지면 이동 없이, 동일 지면에서 개인정보 사용 정책을 확인할 수 있습니다. 미동의시 버즈빌 제품을 사용할 수 없으며, 유저가 개인정보 수집 및 사용에 대한 동의를 한 이후부터 버즈빌의 유저 데이터 수집 및 광고 참여가 가능합니다.
개인정보 수집 동의는 bottom-sheet 형태로 보여주며, API로 호출 가능합니다.
<개인정보 수집 동의 bottom-sheet>
<미동의 시 Feed>
개인정보 취급 방침과 관련해서 다음과 같은 API를 사용할 수 있습니다.
Code Block |
---|
// 개인정보 취급 방침 UI를 보여주는 API BuzzAdBenefit.getPrivacyPolicyManager().showContentUI(context, listener); // 개인정보 취급 방침에 대해 `동의함`을 표시 BuzzAdBenefit.getPrivacyPolicyManager().grantConsent(); // 개인정보 취급 방침에 대해 `동의하지 않음`을 표시 BuzzAdBenefit.getPrivacyPolicyManager().revokeConsent(); // 개인정보 취급 방침에 `동의함` 여부를 확인 BuzzAdBenefit.getPrivacyPolicyManager().isConsentGranted(); |
(중요) 만약 위 API를 사용하지 않는 경우, 다음과 같은 상황에 Buzzvil의 개인정보 취급 방침에 대한 동의를 받는 UI를 퍼블리셔에서 직접 구현해야합니다.
미동의 상태에서 Feed 진입 시
미동의 상태에서 Pop Icon 클릭 시
그 외, 버즈빌 프로덕트 노출을 동의하는 단계
Note | ||
---|---|---|
주의 사항
|