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 »

개요

팝은 스크린 최상단에 뜨는 UI를 통해 Feed 지면으로 유저를 유도합니다. 팝은 한 번 실행되면 화면을 껐다 켤 때마다 팝이 지속적으로 화면에 보이게 됩니다.

기본 요건

  • Feed 지면 연동 완료

  • Unit ID 발급

    • YOUR_FEED_UNIT_IDFeed 지면에서 사용한 Unit ID 와 동일

이미 Pop Unit ID 를 발급 받았다면 이하 가이드에서는
YOUR_FEED_UNIT_ID 에 Feed 지면에서 사용한 Unit ID 가 아닌 Pop Unit ID 를 사용하실 수 있습니다.

FeedConfig 설정

FeedConfig에 Pop사용 설정을 하면 Pop을 이용할 수 있습니다.

FeedConfig feedConfig = new FeedConfig.Builder(getApplicationContext(), YOUR_FEED_UNIT_ID)
        ... 생략 ...
        .optInFeatureList(Collections.singletonList(OptInFeature.Pop))
        .build();
final BuzzAdBenefitConfig buzzAdBenefitConfig = new BuzzAdBenefitConfig.Builder(context)
        ... 생략 ...
        .setFeedConfig(feedConfig)
        .build();
BuzzAdBenefit.init(this, buzzAdBenefitConfig);

위 스텝을 진행한 이후에는 Feed 지면에 Pop 활성화 버튼이 노출됩니다. 자세한 사항은 여기에서 확인할 수 있습니다.

다른 앱 위에 그리기 권한 설정 및 Pop 실행

마시멜로(Android API 23) 이상 버전에서 Pop을 실행시키기 위해서 다른 앱 위에 그리기 권한을 획득해야 합니다. BuzzAdPop 클래스는 유저가 다른 앱 위에 그리기 권한을 활성화 하도록 유도하는 기능을 제공하고 있습니다.

Pop을 연동하려는 앱이 다른 앱 위에 그리기 권한을 이미 가지고 있다면 다음 단계로 넘어가세요.

  1. Pop의 권한 설정을 해 줄 Activity에 BuzzAdPop 클래스를 변수로 추가합니다.

    private BuzzAdPop buzzAdPop;

     

  2. Activity의 onCreate에서 Pop의 unit id를 이용해 BuzzAdPop의 인스턴스를 만들어 줍니다.

    this.buzzAdPop = new BuzzAdPop(context, "YOUR_FEED_UNIT_ID");
  3. Pop 실행 전, 다른 앱 위에 그리기 권한을 얻어야 합니다. requestPermissionWithDialog 를 호출하여 유저에게 다른 앱 위에 그리기 권한을 부여하도록 유도할 수 있습니다.

    public static final int REQUEST_CODE_SHOW_POP = 1024;
    
    public void showPopOrRequestPermissionWithDialog() {
        // 권한 확인
        if (BuzzAdPop.hasPermission(context) || Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
            // Pop 실행
            buzzAdPop.preloadAndShowPop();
        } else {
            // 권한 요청
            BuzzAdPop.requestPermissionWithDialog((Activity) context,
                new PopOverlayPermissionConfig.Builder(R.string.pop_name)
                    .settingsIntent(OverlayPermission.createIntentToRequestOverlayPermission(context))
                    .requestCode(REQUEST_CODE_SHOW_POP)
                    .build()
            );
        }
    }
    
  4. 다른 앱 위에 그리기 권한이 부여되면 자동으로 Activity 로 돌아오며, Intent를 통해 결과를 확인할 수 있습니다.

    import static com.buzzvil.lib.buzzsettingsmonitor.SettingsMonitor.KEY_SETTINGS_REQUEST_CODE;
    import static com.buzzvil.lib.buzzsettingsmonitor.SettingsMonitor.KEY_SETTINGS_RESULT;
    
    public class MainActivity extends AppCompatActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    		
            if (getIntent().getBooleanExtra(KEY_SETTINGS_RESULT, false)
                    && getIntent().getIntExtra(KEY_SETTINGS_REQUEST_CODE, 0) == REQUEST_CODE_SHOW_POP) {
                // 권한 획득 후 pop 실행
                buzzAdPop.preloadAndShowPop();
            }
        }
    }

Pop 비활성화

buzzAdPop.removePop(Context) 을 호출하여 Pop을 비활성화 할 수 있습니다.

buzzAdPop.removePop(context);

커스터마이징

Customize 페이지 에서 Pop 아이콘 이미지 변경, 유틸리티 기능 등 Customize 가능 한 기능들을 확인할 수 있습니다.

추가 리소스

Github의 샘플

  • No labels