PedometerLite 는 Pop 을 만보기로 사용할 수 있게 해주는 feature 입니다.
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.+ 사용
<그림 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 기능을 사용할 수 있습니다.
Customization
PedometerConfig
PedometerConfig
를 통해서 아래 이미지의 내용(이미지, 컬러, 스트링)을 변경할 수 있습니다
No. 는 위 그림의 customize 가능한 영역의 숫자를 뜻합니다. unitId
, rewardUnitId
는 필수고 나머지는 optioinal 입니다.
No. | Parameter | Description |
---|---|---|
14 |
| Pedometer fragment 에서 사용하는 광고 Unit Id |
17 |
| Pedometer bottom sheet(리워드 정보 화면)에서 사용하는 광고 Unit Id |
<그림 3> |
| 적립 가능 할 때 Pedometer fragment 진입 시 사용하는 광고 Unit id |
1 |
| Pedometer fragment 툴바에 표시되는 title |
2 |
| Pedometer fragment 툴바의 튜토리얼 버튼을 눌렀을 때 이동할 url 주소 |
3 |
| Pedometer fragment 만보기 소개 이미지 |
4 |
| Pedometer fragment 만보기 소개 Title |
5 |
| Pedometer fragment 만보기 소개 Description |
6 |
| Pedometer fragment 만보기 Toggle Thumb 활성화 컬러 |
7 |
| Pedometer fragment 만보기 Toggle Thumb 비활성화 컬러 |
8 |
| Pedometer fragment 만보기 Toggle Track 비활성화 컬러 |
9 |
| Pedometer fragment 마일스톤 Progress Guide Color |
10 |
| Pedometer fragment 마일스톤 Progress Color |
11 |
| Pedometer fragment 마일스톤 적립 가능할 때 보이는 Icon resource id |
12 |
| Pedometer fragment 마일스톤 적립 가능할 때 표시되는 Text Color |
13 |
| Pedometer fragment 마일스톤 적립 가능할 때 표시되는 Text Background Resource Id |
15 |
| Pedometer bottom sheet 마일스톤 적립 가능할 때 보이는 image resource id |
16 |
| Pedometer bottom sheet 적립 완료 string |
16 |
| Pedometer bottom sheet 적립 중 string |
18 |
| Pedometer Pop Icon Progress Color |
19 |
| Pedometer Pop Icon Progress Guide Color |
20 |
| Pedometer Pop Icon 에 표시 되는 걸음 수 Text Color |
21 |
| Pedometer Pop Icon 적립 가능할 때 보이는 Icon resource id |
22 |
| Pedometer Pop Icon Background Color |
Physical activity recognition
Android 10 (Q, API 29) 부터는 신체 활동 감지 권한이 필요하도록 변경했습니다. 앱에서 PedometerLite Feature 를 활성화할 때 권한을 얻기 위한 팝업이 뜨게 됩니다.
https://developer.android.com/about/versions/10/privacy/changes#physical-activity-recognition