Getting Started (PedometerLite)
PedometerLite 를 사용하기 위해선 Pop 초기화를 마친 상태여야 합니다.
<그림 1> PedometerLite feature 사용을 설정했을 때 Pop 피드의 모습
<그림 2> PedometerLite 를 활성화했을 때 Pop
Initialization
Step 1. Add pedometetr feature module
application level build.gradle
에 만보기 모듈을 추가합니다.
implementation 'com.buzzvil:buzz-pedometer:x.y.z'
buzzad-benefit:2.12.+ 를 사용하는 경우 buzz-pedometer:1.3.+ 사용
buzzad-benefit:2.13.+ 이후인 경우는, buzzad-benefit 와 동일한 버전 사용
<그림 3> Pop Interstitial Ad
Step 2. Set pedometer unitId
Application class 에서 BuzzAdBenefit.init
할 때
pedometerConfig: unitId 설정
발급받은 Pedometer unitId 2개 를 benefit 초기화 시 설정합니다.
UNIT_ID_PEDOMETER
: 만보기 활성화/비활성화 페이지 광고 유닛.UNIT_ID_PEDOMETER_REWARD
: 만보기 마일스톤을 눌렀을 때 나오는 bottom sheet dialog 광고 유닛
Application class 에서 BuzzAdBenefit.init
할 때 위 unitId 를 가지고있는 pedometerConfig 를 설정합니다.
final PedometerConfig pedometerConfig = buildPedometerConfig();
final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), UNIT_ID_POP)
...
.pedometerConfig(pedometerConfig)
...
.build();
BuzzAdBenefit.init(this, buzzAdBenefitConfig);
@NotNull
private PedometerConfig buildPedometerConfig() {
return new PedometerConfig
.Builder(UNIT_ID_PEDOMETER, UNIT_ID_PEDOMETER_REWARD)
.build();
}
Step 3. Initialize Pop Pedometer
Application class onCreate
에 sessionReadyReceiver
를 등록합니다. 세션이 준비되면 만보기를 초기화합니다.
@Override
public void onCreate() {
super.onCreate();
initBuzzAdBenefit();
BuzzAdBenefit.registerSessionReadyBroadcastReceiver(this, sessionReadyReceiver);
}
private BroadcastReceiver sessionReadyReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
initPedometer(context);
Log.d(TAG, "Session is Ready. Ads can be loaded now.");
}
private void initPedometer(Context context) {
Log.d(TAG, "Session is Ready. initPedometer");
if (popConfig.getPedometerConfig() != null) {
BuzzAdPopPedometer.init(context, "APP_ID", "UNIT_ID_POP");
}
}
};
Step 4. (Optional) Handling PopToolbarHolder
PopToolbarHolder 는 customize 페이지에서 소개한대로 직접 구현이 가능합니다. PopToolbarHolder 를 customize 했을 경우에는 Pop Feed Toolbar 에 Pedometer Icon <그림 1> 을 나오게 하려면 각각 다른 작업을 해야합니다.
DefaultPopToolbarHolder
: 추가 작업 없이 만보기 아이콘이 보입니다.
CustomPopToolbarHolder
: 이 경우 ToolbarHolder 의 view 를 직접 그리기 때문에 icon 설정이 필요합니다.
Line7, 24:
getView()
에서shouldShowPedometer()
를 통해서 pedometer 사용 가능여부를 체크 한 후, 사용가능하다면 Pedometer Icon 를 보여줍니다.Line 30: Click Listener 에서
showPedometer(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);
showPedometerButtonIfNeeded(activity, root);
showInquiryButton(activity, root, unitId);
return root;
}
private void showInquiryButton(Activity activity, ViewGroup root, String unitId) {
View buttonInquiry = root.findViewById(R.id.buttonInquiry);
buttonInquiry.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInquiry(activity, unitId);
}
});
}
private void showPedometerButtonIfNeeded(Activity activity, ViewGroup root) {
if (shouldShowPedometer()) {
View buttonPedometer = root.findViewById(R.id.buttonPedometer);
buttonPedometer.setVisibility(View.VISIBLE);
buttonPedometer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showPedometer(activity);
}
});
}
}
}
TemplatePopToolbarHolder
: getView
에서 addPedometerMenuItemView(activity)
를 호출 하면 Pedometer Icon 이 보이게 됩니다.
Line 9:
addPedometerMenuItemView(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);
addPedometerMenuItemView(activity);
addInquiryMenuItemView(activity, App.UNIT_ID_POP);
addRightMenuItemView1(activity);
return toolbar;
}
private void addRightMenuItemView1(@NonNull final Activity activity) {
PopMenuImageView menuItemView = toolbar.buildPopMenuItemView(activity, R.drawable.ic_notification_pop_gift);
menuItemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = "https://www.buzzvil.com/ko/main";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
activity.startActivity(intent);
}
});
toolbar.addRightMenuButton(menuItemView);
}
}
Step 5. Final Step
App 실행 → Pop 실행 → Pop Feed Toolbar 에 <그림 1> 과 같이 만보기 아이콘이 보이면 클릭해서 PedometerLite 기능을 사용할 수 있습니다.
Physical activity recognition
Android 10 (Q, API 29) 부터는 신체 활동 감지 권한이 필요하게 변경됐습니다. 앱에서 PedometerLite feature 를 활성화할 때 권한을 얻기 위한 팝업이 뜨게 됩니다.