개요
Pop(기본형) 에 만보기 기능이 추가되어 기본 아이콘대신 걸음수를 보여주며, 유저가 목표 걸음수에 도달했을시 리워드 지급을 안내합니다. 리워드 지급시 광고를 보여주며 유저의 리텐션을 높일 수 있습니다.
준비 사항
UNIT_ID_PEDOMETER
: 만보기 리워드 적립을 하는 fragment에서의 광고 유닛UNIT_ID_PEDOMETER_REWARD
: 만보기 마일스톤을 눌렀을 때 나오는 bottom sheet dialog 광고 유닛
PedometerePop 을 사용하기 위해선 Pop 기본설정을 마친 상태여야 합니다.
Step 1. 만보기 SDK 설치
Application level build.gradle
에 만보기 모듈을 추가합니다.
implementation 'com.buzzvil:buzz-pedometer:x.y.z'
BuzzAd SDK와 동일한 버전 사용
Step 2. PedometerConfig 설정
Application class 에서 BuzzAdBenefit.init
할 때 pedometerConfig 와 popConfig 를 설정합니다.
pedometerConfig: 발급받은 Pedometer Unit Id를 개 를 benefit 초기화 시 설정합니다.
UNIT_ID_PEDOMETER
: 만보기 리워드 적립을 하는 fragment에서의 광고 유닛UNIT_ID_PEDOMETER_REWARD
: 만보기 마일스톤을 눌렀을 때 나오는 bottom sheet dialog 광고 유닛(Optional)
pedometerIntroUnitId
를 통해YOUR_UNIT_ID_PEDOMETER_INTRO
를 설정합니다.pedometerIntroUnitId
가 설정되어 있으면 유저가 Pedometer History 페이지에 진입할 시 Interstitial 광고를 보여줍니다.
popConfig:
feedHeaderViewAdapterClass
를DefaultPedometerPopHeaderViewAdapter
로 설정popMode
를PopMode.PEDOMETER_POP
로 설정
final PedometerConfig pedometerConfig = new PedometerConfig .Builder(getApplicationContext(), "YOUR_UNIT_ID_PEDOMETER", "YOUR_UNIT_ID_PEDOMETER_REWARD") .pedometerIntroUnitId(YOUR_UNIT_ID_PEDOMETER_INTRO) // Optional .build(); final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), "YOUR_UNIT_ID_FEED") ...생략... .feedHeaderViewAdapterClass(DefaultPedometerPopHeaderViewAdapter.class) .popMode(PopConfig.PopMode.PEDOMETER_POP) .pedometerConfig(pedometerConfig) .build(); final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(this) ...생략... .setPopConfig(popConfig) .build(); BuzzAdBenefit.init(this, buzzAdBenefitConfig);
Step 3. 초기화
Application class onCreate
에 sessionReadyReceiver
를 등록해야합니다. onReceive
는 BuzzAdBenefit.setUserProfile
가 살행된 후에 호출됩니다.
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) { if (popConfig.getPedometerConfig() != null) { BuzzAdPopPedometer.init(context, "YOUR_UNIT_ID_FEED"); } } }; @Override public void onCreate() { super.onCreate(); BuzzAdBenefit.registerSessionReadyBroadcastReceiver(this, sessionReadyReceiver); }
Step 4. 권한 설정
OS 버전 Android 10 이상인 디바이스에서 만보기 기능을 사용하기 위해서는 신체 활동 감지 권한이 필요합니다. (참고: Android Developer Guide) 아래 코드를 참고하여 신체 활동 감지 권한을 얻을 수 있습니다.
@TargetApi(Build.VERSION_CODES.Q) private void requestActivityRecognitionPermission(Activity activity) { if (ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.ACTIVITY_RECOGNITION)) { if (!activity.isFinishing()) { new AlertDialog.Builder(activity) .setTitle(R.string.pop_pedometer_dialog_permission_title) .setMessage(R.string.pop_pedometer_dialog_permission_description) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, ACTIVATION_REQUEST_CODE); } }).show(); } } else { requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, ACTIVATION_REQUEST_CODE); } }
다른 앱 위에 그리기 권한 설정 및 Pop 실행의 4에서와 같이 다른 앱 위에 그리기 권한을 획득한 후 자동으로 Activity 로 돌아왔을때, 아래와 같이 만보기 기능을 활성화합니다.
// Activity.onCreate ...생략... if (getIntent().getBooleanExtra(KEY_SETTINGS_RESULT, false) && getIntent().getIntExtra(KEY_SETTINGS_REQUEST_CODE, 0) == REQUEST_CODE_SHOW_POP) { if (BuzzAdPop.hasPermission(this)) { buzzAdPop.preloadAndShowPop(); BuzzAdPopPedometer.activate(); } } ...생략...