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 광고 유닛
(Optional) popConfig: Pop 의 Exit 광고 <그림 3> 도
popExitUnitId
를 통해 설정 가능
Application class 에서 BuzzAdBenefit.init
할 때 위 unitId 를 가지고있는 pedometerConfig 를 설정합니다.
final PedometerConfig pedometerConfig = buildPedometerConfig(); final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), UNIT_ID_POP) ... .pedometerConfig(pedometerConfig) .popExitUnitId(UNIT_ID_PEDOMETER_POP_EXIT) // Optional ... .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 를 활성화할 때 권한을 얻기 위한 팝업이 뜨게 됩니다. (Android Developer Guide)
https://developer.android.com/about/versions/10/privacy/changes#physical-activity-recognition