Potto : Getting Started
본 가이드는 BuzzAd-Benefit SDK의 Pop 타입 안에 Potto 기능을 연동하는 방법을 다루는 문서입니다.
BuzzAd-2.6.0 버전 이상에서 사용 가능합니다.
※ 주의사항
(중요) Potto는 BuzzAd-Benefit SDK의 Pop 타입이 연동되어있어야 사용 가능합니다. 연동하기 전, Pop이 제대로 연동되어있는지 확인해 주세요.
연동하기 전에 BD 매니저를 통해 전달받은 Potto의 unit_id가 준비되어야 합니다.
테스트/라이브하기 전, 1등 당첨자에게 지급할 당첨 포인트 액수를 BD 매니저에게 전달해야 합니다.
Index
Potto 기능 소개
Potto는 로또 형식의 당첨 번호 뽑기 기능입니다.
작동 원리
Potto는 매주 월요일마다 새롭게 시작하며, 주 단위로 운영됩니다. 사용자는 월요일부터 토요일까지 매일 번호를 하나씩 뽑을 수 있습니다. 이때, Potto 페이지에 나오는 광고 시청을 완료한 사용자만 번호를 뽑을 수 있습니다. 일요일 0시에는 토요일까지 6개의 번호를 모두 뽑은 사용자를 대상으로 당첨자를 뽑습니다. 일요일에 potto 페이지에 들어가면 당첨번호와 자신의 당첨 여부를 확인할 수 있습니다. 당첨금은 월요일 오전 중에 자동 지급됩니다.
매일 앱에 방문하여 번호를 뽑는 형태이기 때문에 요일을 놓치면 이전 번호를 뽑을 수 없습니다. 하지만 유저의 참여를 높이기 위하여 하루 놓친 번호 까지는 뽑을 수 있습니다. 예를 들어 화요일에 번호를 뽑지 않고 수요일에 들어온 유저는 화요일 번호를 뽑을 수 있습니다. 하지만 월요일, 화요일 번호를 뽑지 않고 수요일에 들어온 유저는 번호를 뽑을 수 없는 상태가 되고 해당 주의 potto는 더이상 참여할 수 없습니다.
예)
월 O / 화 X / 수 ? → 화요일, 수요일 번호 뽑기 가능
월 X / 화 X / 수 ? → 해당 주의 Potto 비활성화
Potto를 사용하기 위해선 Pop 초기화를 마친 상태여야 합니다.
진입 경로
pop feed의 toolbar의 우상단 메뉴에서 potto로 진입가능합니다.
Basic Usage
Step1. Set Potto unit_id
발급받은 Potto unit_id
를 benefit 초기화 시 설정합니다. Potto 페이지 진입시 보이는 광고를 담당하는 Unit의 ID 입니다. Application class 에서 BuzzAdBenefit.init
할 때 위 unit_id
를 가지고있는 pottoConfig
를 설정합니다.
popConfigBuilder.pottoConfig(new PottoConfig.Builder(POTTO_UNIT_ID_HERE)
.build());
popConfig = popConfigBuilder.build();
BuzzAdBenefit.init(this, buzzAdBenefitConfig);
Step 2. (Optional) Handling PopToolbarHolder
DefaultPopToolbarHolder
를 사용한다면 이 단계는 건너뜁니다.
PopToolbarHolder 는 customize 페이지에서 소개한대로 직접 구현이 가능합니다. PopToolbarHolder 를 customize 했을 경우에는 Pop Feed Toolbar 에 아래 그림과 같이 Potto Icon 을 나오게 하려면 각각 다른 작업을 해야합니다.
DefaultPopToolbarHolder
: 추가 작업 없이 Potto 아이콘이 보임CustomPopToolbarHolder
: 이 경우 ToolbarHolder 의 view 를 직접 그리기 때문에 icon 설정이 필요
Line 3, 12:
getView()
에서shouldShowPotto()
를 통해서 potto 사용 가능여부를 체크 한 후, 사용가능하다면 Potto Icon 를 보여줍니다.Line 18: Click Listener 에서
showPotto(activity);
를 호출하면 pedometer 화면으로 이동합니다.
public class CustomPopToolbarHolder extends DefaultPopToolbarHolder {
@Override
public View getView(Activity activity, @NonNull String unitId) {
ViewGroup root = (ViewGroup) activity.getLayoutInflater().inflate(R.layout.view_pop_custom_toolbar, null);
showPottoButtonIfNeeded(activity, root);
return root;
}
private void showPottoButtonIfNeeded(Activity activity, ViewGroup root) {
if (shouldShowPotto()) {
View buttonPotto = root.findViewById(R.id.buttonPotto);
buttonPotto.setVisibility(View.VISIBLE);
buttonPotto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPotto(activity);
}
});
}
}
}
TemplatePopToolbarHolder
: getView
에서 addPottoMenuItemView(activity)
를 호출 하면 Potto Icon 이 보이게 됩니다.
Line 9:
addPottoMenuItemView(activity)
호출
public class TemplatePopToolbarHolder extends DefaultPopToolbarHolder {
@Override
public View getView(Activity activity, @NonNull String unitId) {
toolbar = new PopToolbar(activity);
toolbar.setTitle("TemplatePopToolbarHolder");
toolbar.setBackgroundColor(Color.LTGRAY);
addPottoMenuItemView(activity);
return toolbar;
}
}
Customize
Customize 페이지 에서 Customize 하는 방법을 소개합니다.