Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

개요

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 를 설정합니다.

  1. pedometerConfig: 발급받은 Pedometer Unit Id를 개 를 benefit 초기화 시 설정합니다.

    1. UNIT_ID_PEDOMETER: 만보기 리워드 적립을 하는 fragment에서의 광고 유닛

    2. UNIT_ID_PEDOMETER_REWARD: 만보기 마일스톤을 눌렀을 때 나오는 bottom sheet dialog 광고 유닛

    3. (Optional) pedometerIntroUnitId 를 통해 YOUR_UNIT_ID_PEDOMETER_INTRO 를 설정합니다.pedometerIntroUnitId가 설정되어 있으면 유저가 Pedometer History 페이지에 진입할 시 Interstitial 광고를 보여줍니다.

  2. popConfig:

    1. feedHeaderViewAdapterClassDefaultPedometerPopHeaderViewAdapter 로 설정

    2. popModePopMode.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 onCreatesessionReadyReceiver 를 등록해야합니다.
onReceiveBuzzAdBenefit.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();
    }
}

...생략...
  • No labels