SDK Integration
PointPub SDK 설정 및 관련 작업을 진행합니다.
0. 최소 지원 사양
MinSdkVersion 21
CompileSdkVersion 35
1. Android SDK 추가
1) setting.gradle에 maven { url "https://jitpack.io"}
을 추가합니다.
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io"} // 추가
}
}
2) AndroidManifest.xml
에 <meta-data>
를 추가 후 발급 받은 APP ID를 value에 넣어줍니다.
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Test">
<activity
android:name="kr.pointpub.sample.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- PointPub APP ID 필수 입력 -->
<meta-data
android:name="pointpub_app_id"
android:value="your_app_id" />
</application>
setAppId 함수를 호출하면 AndroidManifest.xml의 meta-data에 지정된 app_id 값을 덮어씁니다.
호출하지 않으면 meta-data의 app_id 값이 사용됩니다. startOfferWall 함수 호출 직전에 호출 되어야합니다.
// APP_ID 동적 등록
PointPub.INSTANCE.setAppId("your_app_id")
3) build.gradle(Module)
에 아래의 Dependency를 추가합니다.
pointpub-android-sdk:1.2.0 이상 버전부터는 Android API Target 35 이상 및 Java 17 이상 환경에서 실행 가능합니다.
dependencies {
implementation("com.github.adxcorp:pointpub-android-sdk:1.2.0")
}
2. 권한 추가
1) AndroidManifest.xml
에 아래와 같이 권한을 추가합니다.
<!-- 인터넷 -->
<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" />
3. Progaurd 사용
1) Proguard를 사용하실 경우 Proguard 설정내에 아래 내용을 반드시 넣어주세요.
-keep class kr.pointpub.sdk.** { *;}
4. 광고 목록 노출
오퍼월을 노출할 시점에 startOfferWall
메소드를 호출해주세요.
유저 식별값(userId)
을 필수로 입력합니다.유저 식별값은 고유한 유저 식별값으로 가변적이면 안되며, 개인정보(이메일, 이름, 전화번호)가 포함되면 안됩니다.
오퍼월이 노출 되거나, 종료된 경우 OfferWallListener를 통해 이벤트를 받을 수 있습니다.
PointPunSDK의 기능을 사용하려면 setUserId() 메서드를 통해 userId를 반드시 설정해야 합니다.
이 작업은 필수이며, 설정하지 않을 경우 SDK 기능을 사용할 수 없습니다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// userId 설정
PointPub.INSTANCE.setUserId("your_user_id")
// 디버깅시 로그 활성화
PointPub.INSTANCE.enableLogTrace();
// 오퍼월 광고 목록 노출 (노출과 닫기의 콜백 수신 가능)
PointPub.INSTANCE.startOfferWall(MainActivity.this, new OfferWallListener() {
@Override
public void onOpened() {
}
@Override
public void onClosed() {
}
});
}
}
5. 가상화폐
포인트펍을 통해 광고 참여하여 획득한 포인트는 포인트펍 서버에서 관리 또는 매체(개발)사의 서버를 통해 관리 가능합니다.
아래의 내용은 가상화폐(포인트) 조회 및 사용 기능은 포인트펍 서버에서 관리되는 경우에 해당됩니다.
담당자 통해 사전에 승인된 앱에서만 사용 가능합니다.
- 자체적으로 포인트를 관리하는 것을 선호합니다.
- 그 이유는 매체사에서 유연하게 포인트 관련 기능을 구현할 수 있기 때문입니다.
- 서버가 없어서 자체적으로 포인트를 관리하지 못하는 경우에 사용을 권장합니다.
1) 가상화폐 조회
가상화폐 조회의 경우 아래의 시점에 요청하는 것을 권장드립니다.
앱 실행
상점 진입
오퍼월 닫기(종료) 시점
// 가상화폐 조회
PointPub.INSTANCE.getVirtualPoint(MainActivity.this, new VirtualPointListener() {
@Override
public void onSuccess(@NotNull String pointName, long remainingPoint) {
}
@Override
public void onFailure(@NotNull String reason) {
}
});
2) 가상화폐 사용
가상화폐 사용은 가상화폐 조회 후 발생된 잔액을 사용하는 것을 권장드립니다.
public void queryVirtualPoint() {
// 가상화폐 조회
PointPub.INSTANCE.getVirtualPoint(MainActivity.this, new VirtualPointListener() {
@Override
public void onSuccess(@NotNull String pointName, long remainingPoint) {
// 가상화폐 사용
if (remainingPoint > 0) {
spendVirtualPoint(remainingPoint);
}
}
@Override
public void onFailure(@NotNull String reason) {
}
});
}
public void spendVirtualPoint(long amount) {
// 가상화폐 사용
PointPub.INSTANCE.spendVirtualPoint(MainActivity.this, amount, new VirtualPointListener() {
@Override
public void onSuccess(@NotNull String pointName, long remainingPoint) {
}
@Override
public void onFailure(@NotNull String reason) {
}
});
}
Last updated