Greenp Offerwall Android v3 연동가이드 - rnd-adforus/GreenpSDK_Android GitHub Wiki

바로가기

  1. build.gradle 설정
  2. AndroidManifest.xml 설정
  3. Proguard 설정
  4. SDK 초기화
  5. SDK 사용법
  6. 콜백 URL 파라미터 설정

1. build.gradle 설정

build.gradle 파일에 아래의 내용을 추가합니다.
(Optional)3.5.0이상 버전 부터 오퍼월 UI 내 Google Admob 광고를 게시 되도록 설정을 추가 할 수 있습니다.
(Optional)오퍼월 UI 내에 Admob 광고는 Admob Mediation Adapter SDK 중 일부를 포함합니다.
(Optional)Admob 광고 게시를 위해 프로젝트 레벨의 build script 내에 Google Admob Mediation 관련 repositories를 작성해주세요.

[Project script]

allprojects {
    repositories {
        ...
        maven {
            url "https://nexus.adforus.com/repository/greenp/"
        }
        maven { // Optional - 오퍼월 내 구글 광고를 사용하시려면 작성 해주세요!
            url 'https://artifact.bytedance.com/repository/pangle/'
        }
    }
}

3.5.0이상 버전 부터는 viewBinding 옵션을 필수로 요구합니다. 다음과 같이 viewBinding 옵션을 true로 설정하여 주세요
(Optional)오퍼월 내 Google Admob 광고 게시를 위해서는 ADSU SDK를 의존성 목록에 추가 하여주세요.
[Module script]

android {
    viewBinding{
        enabled = true
    }
}

dependencies {
    ...
     // 가이드 문서 내 최신버전 참고
    implementation 'com.adforus.sdk:greenp_v3:3.5.5'
    implementation 'com.adforus.sdk:adsu:1.2.2' // Optional - 오퍼월 내 구글 광고를 사용하시려면 작성 해주세요!

}

2. AndroidManifest.xml 설정

개인 식별과 리워드 적립을 위해 아래의 권한이 필요합니다. 권한 설정이 되지 않는 경우 SDK를 사용할 수 없습니다.

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/> 
<!-- CS 첨부파일 등록을 위해 외부 파일 접근권한이 필요합니다. api level에 따라 선택해서 선언해주세요. --> <!-- targetSdk 32 이하 --> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

HTTP 트래픽 허용 관련

그린피 SDK 에서는 HTTPS 를 사용하고 있지 않습니다. 따라서 SDK의 AndroidManifest.xml 을 통해 아래의 내용을 포함하고 있습니다.
(그린피에서는 많은 광고사를 실시간으로 연동하고 있어 여러 도메인이 추가/삭제 될 수 있습니다. 가급적 모든 HTTP 트래픽의 허용을 권장드립니다.)

[AndroidManifest.xml]

<application 
    ... 
    android:usesCleartextTraffic="true">
    ... 
<application/>

앱의 보안을 위해 HTTP 프로토콜을 허용하지 않고자 하시는 경우 usesCleartextTraffic 을 false 로 변경 후 network_security_config.xml 에 아래의 도메인을 예외사항으로 추가해주세요. (허용이 필요한 도메인의 목록은 예고없이 추가/삭제 될 수 있습니다.)

[network_security_config.xml]

<domain includeSubdomains="true">greenp.kr</domain> 
<domain includeSubdomains="true">decaffeine.net</domain> 
<domain includeSubdomains="true">adboost.co.kr</domain>

(Optional)Google Admob APPLICATION_ID 작성

더 보기 오퍼월 내 AdMob 광고를 표시하려면, AndroidManifest.xml에 AdMob Application ID를 추가해야 합니다.
앱 마다 고유한 APPLICATION_ID의 value 값은 애드포러스 플랫폼 3팀에 문의하여주세요.
<application> 

   <meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
	... 
<application/>

3. Proguard 설정

-3.5.2 이하 버전은 다음의 Proguard 설정을 따라 주세요.

-keep class com.adforus.sdk.greenp.v3.** { *; }
-dontwarn com.adforus.sdk.greenp.v3.**

-keep class com.adforus.sdk.adsu.** {*;}
-dontwarn com.adforus.sdk.adsu.**

-keep class retrofit2.** { *; }  
-keep class com.squareup.okhttp3.** { *; }  
-keep class com.google.gson.** { *; }

4. SDK 초기화

init 호출

앱의 최초 실행 부분에서 SDK 를 초기화 합니다. ( ex. Application, MainActivity 등 )
(주의!!)3.5.0 v 이상부터 복수의 appCode를 사용하여 여러 곳에 오퍼월을 게제 할 수 있습니다.
복수의 오퍼월을 부를 때에는 GreenpReward의 static 함수가 init이 아닌 GreenpReward의 instance 함수 initialize를 사용합니다.

/**
* @params
*   - Context context
*   - String appCode ( 발급받은 매체 코드 )
*   - String appUid( 매체사 유저 아이디 )
*   - OnGreenpRewardListener listener
* */
// 단일 오퍼월 사용 시
GreenpReward.init(Context context, String appCode, String appUid, GreenpReward.OnGreenpRewardListener listener); 

또는

// 복수 오퍼월 사용 시
GreenpReward greenpReward = new GreenpReward()
greenpReward.initialize(Context context, String appCode, String appUid, GreenpReward.OnGreenpRewardListener listener);

※ 유저 구분값 생성 규칙

  1. 각각의 유저별 고유한 값을 이용해야 합니다.
  2. 개인정보 및 ADID는 사용할 수 없습니다. ( 암호화 후 사용 가능 )
  3. 한글, 특수문자, 공백은 반드시 URL 인코딩 후 사용하셔야 합니다.

OnGreenpRewardListener 결과 값

SDK 초기화 시 결과 값을 listener 로 전달합니다.

/**
* @params
*   - boolean result
*   - String msg( 초기화 실패 시 에러 메시지 )
* */
public void onResult(boolean result, String msg){ ... }

OfferwallBuilder

OfferwallBuilder 객체는 오퍼월 Activity와 fragment를 부르는데 사용됩니다.
OnGreenpRewardListener 를 통해 SDK 초기화에대한 성공을 리턴받으면 OfferwallBuilder 객체를 가져옵니다.
(주의!!)3.5.0 v 이상부터 사용 가능한 복수의 오퍼월을 부를 때에는 GreenpReward의 static 함수 getOfferwallBuilder()이 아닌 GreenpReward의 instance 함수인 createOfferwallBuilder()으로 객체를 가져와야 합니다.

// 단일 오퍼월 호출시
OfferwallBuilder builder = GreenpReward.getOfferwallBuilder(); 

또는

//복수 오퍼월 호출시
OfferwallBuilder builder = greenpReward.createOfferwallBuilder(); 


//필요한 경우 매체 고유키를 등록합니다. ( 광고 참여에 대한 postback 전송 시 전달될 리퍼러 )
builder.setAppUniqKey(String appUniqKey);
//GreenpReward.getOfferwallBuilder().setAppUniqKey(String appUniqKey);

//그린피의 기본 폰트설정 사용여부를 설정합니다. 
//true로 설정한 경우 그린피 기본폰트, false로 설정한 경우 시스템폰트를 적용합니다. ( 기본값 false )
builder.useGreenpFontStyle(boolean use);

5. SDK 사용법

Offerwall 호출

Greenp Offerwall Activity 를 호출합니다.

//오퍼월 호출
builder.showOfferwall(Activity activity);

Fragement 호출

Fragment 형태의 뷰를 호출합니다.

Fragment 요청 함수

/**
* @params
*   - Activity activity
*   - int bannerType ( OfferwallBuilder.BANNER_FRAGMENT )
*   - OnRequestBannerListener listener
* */
builder.requestBanner(Activity activity, int bannerType, OfferwallBuilder.OnRequestBannerListener listener);

요청 결과로 전달받은 GreenpBanner class

/**
* @method
*   - View getFragment() ( 오퍼월 Fragment 요청 시 Fragement 를 반환 )
* */

6. 파라미터 콜백 설정

광고 참여가 정상적으로 완료된 경우, 매체사에서 등록 하신 콜백 URL로 암호화키를 전송해 드립니다.

CallBack url : 매체사 URL
Method : GET or POST (기본은 GET 방식이나 요청시 POST 방식으로도 가능합니다.
Ad Parameter Type 설명
ads_idx int 광고키
ads_name string 갬페인 타이틀
rwd_cost int 매체사에 지급되는 단가
app_uid string 매체사에 보낸 유저 구분 값 (UserID)
gp_key int 전환 건에 대한 유니크 값
etc int referrer 값. 매체용 추가 정보(매체 uniq 클릭값 등) etc 대신 원하는 파라미터로 변경가능
⚠️ **GitHub.com Fallback** ⚠️