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

« Previous Version 3 Next »

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 할 때

  1. pedometerConfig: unitId 설정

    1. 발급받은 Pedometer unitId 2개 를 benefit 초기화 시 설정합니다.

      1. UNIT_ID_PEDOMETER: 만보기 활성화/비활성화 페이지 광고 유닛.

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

  2. (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 onCreatesessionReadyReceiver 를 등록합니다. 세션이 준비되면 만보기를 초기화합니다.

@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 설정이 필요합니다.

  1. Line7, 24: getView() 에서 shouldShowPedometer() 를 통해서 pedometer 사용 가능여부를 체크 한 후, 사용가능하다면 Pedometer Icon 를 보여줍니다.

  2. 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 이 보이게 됩니다.

  1. 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

  • No labels