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>
// APP_ID 동적 등록
PointPub.INSTANCE.setAppId("your_app_id")

3) build.gradle(Module) 에 아래의 Dependency를 추가합니다.

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를 통해 이벤트를 받을 수 있습니다.

enableLogTrace() 메소드는 로그를 활성화하는 메소드입니다.
광고 목록이 노출되지 않거나 광고 참여 테스트 중 문제가 생길 때에 로그를 활성화해주세요.
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