Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

목차

Table of Contents
minLevel1
maxLevel1
exclude목차

개요

...

만보기형 Pop(이하 만보기)은 기본 아이콘 대신 걸음수를 보여줍니다. 목표 걸음 수에 도달했을 시 적립 가능 아이콘과 말풍선으로 사용자에게 적립 가능을 알립니다. 사용자는 리워드 적립을 위해 Pop 지면에 방문하게 됩니다. 리워드 획득을 위해 걸음 이외에 별도의 액션을 요구하지 않아 높은 방문율을 유지할 수 있습니다.

...

만보기는 히스트리 UI와 적립 UI라는 별도의 UI를 기본적으로 제공합니다.Image Removed

...

준비 사항

  • Pop(기본형) 기본설정 적용 완료
    Pop 연동에 사용한 YOUR_POP_UNIT_ID

  • 만보기 리워드 적립에 기본형 Pop 기본 설정 적용 완료

  • 만보기 걸음 수 등록, 목표 걸음 달성 시의 리워드 적립, 리워드 적립 페이지의 광고 지면에 사용하는 Unit ID (이하 UNIT_ID_PEDOMETER)

  • 만보기 목표 걸음 달성 후 표시되는 바텀시트 광고 지면에 사용하는 Unit ID (이하 UNIT_ID_PEDOMETER_REWARD)

...

Application 레벨의 build.gradle 에 만보기 라이브러리를 추가합니다.
만보기 라이브러리의 버전은 BuzzAd Android SDK 버전과 동일한 버전을 사용합니다.

Code Block
languagebash
implementation 'com.buzzvil:buzz-pedometer:x.y.z'

만보기 초기화

Application의 onCreate에서 PedometerConfig를 설정합니다. 그리고 BuzzAdPopPedometer.init을 호출하는 sessionReadyReceiver를 등록합니다. sessionReadyReceiver.onReceiveBuzzAdBenefit.setUserProfile이 실행된 이후에 호출됩니다. 만보기 라이브러리를 초기화합니다. 만보기 라이브러리는 사용자 프로필을 설정한 후에 초기화해야 합니다. BroadcastReceiver를 BuzzAdBenefit.registerSessionReadyBroadcastReceiver에 등록하여 사용자 프로필 설정 완료 이벤트를 받을 수 있습니다.

다음은 만보기 라이브러리를 초기화하는 예시입니다.

Code Block
languagejava
public class App extends Application {

    private BroadcastReceiver sessionReadyReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            BuzzAdPopPedometer.init(context, "YOUR_POP_UNIT_ID");
        }
    };
  
    @Override
    public void onCreate() {
        super.onCreate();
        
        final PedometerConfig pedometerConfig = new PedometerConfig
            .Builder(context, "YOUR_PEDOMETER_UNIT_ID_PEDOMETER", "YOUR_PEDOMETER_REWARD_UNIT_ID_PEDOMETER_REWARD")
            .build();
                
        final PopConfig popConfig = new PopConfig.Builder(getApplicationContext(), "YOUR_POP_UNIT_ID")
            .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);
        BuzzAdBenefit.registerSessionReadyBroadcastReceiver(this, sessionReadyReceiver);
    }
}

...

OS 버전 Android 10 이상인 디바이스에서 만보기 기능을 사용하기 위해서는 활동 감지 권한이 필요합니다. (참고: Android Developer Guide)

...

다음은 신체 활동 감지 권한을 얻는 방법입니다예시입니다.

Code Block
languagejava
@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.your_title)
                .setMessage(R.string.your_message)
                .setPositiveButton(android.R.string.your_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을 표시하고 만보기를 활성화 합니다활성화합니다.

Code Block
languagejava
public class YourActivity extends AppCompatActivity {

    @Override
    public void onCreate() {
        super.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();
            }
        }
   }
}