Greenp Offerwall Android v3 연동가이드 - rnd-adforus/GreenpSDK_Android GitHub Wiki
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 - 오퍼월 내 구글 광고를 사용하시려면 작성 해주세요!
}
개인 식별과 리워드 적립을 위해 아래의 권한이 필요합니다. 권한 설정이 되지 않는 경우 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"/>
그린피 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>
더 보기
오퍼월 내 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.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.** { *; }
앱의 최초 실행 부분에서 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);
※ 유저 구분값 생성 규칙
- 각각의 유저별 고유한 값을 이용해야 합니다.
- 개인정보 및 ADID는 사용할 수 없습니다. ( 암호화 후 사용 가능 )
- 한글, 특수문자, 공백은 반드시 URL 인코딩 후 사용하셔야 합니다.
SDK 초기화 시 결과 값을 listener 로 전달합니다.
/**
* @params
* - boolean result
* - String msg( 초기화 실패 시 에러 메시지 )
* */
public void onResult(boolean result, String msg){ ... }
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);
Greenp Offerwall Activity 를 호출합니다.
//오퍼월 호출
builder.showOfferwall(Activity activity);
Fragment 형태의 뷰를 호출합니다.
/**
* @params
* - Activity activity
* - int bannerType ( OfferwallBuilder.BANNER_FRAGMENT )
* - OnRequestBannerListener listener
* */
builder.requestBanner(Activity activity, int bannerType, OfferwallBuilder.OnRequestBannerListener listener);
/**
* @method
* - View getFragment() ( 오퍼월 Fragment 요청 시 Fragement 를 반환 )
* */
광고 참여가 정상적으로 완료된 경우, 매체사에서 등록 하신 콜백 URL로 암호화키를 전송해 드립니다.
CallBack url : 매체사 URLMethod : 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 대신 원하는 파라미터로 변경가능 |