C++ Library

Tapjoy는 Cocos2d-x와 같은 Android NDK 및 C++를 사용하는 개발 환경을 위해 C++ API를 제공합니다. Tapjoy의 Android SDK에서 제공하는 C++ API는 Tapjoy의 iOS SDK의 C++ API와 호환됩니다.

NDK Modules

Tapjoy SDK에는 C++ 헤더 파일과 라이브러리를 제공하는 NDK 모듈이 포함되어 있습니다. Tapjoy의 NDK 모듈 경로를 NDK_MODULE_PATH로 추가하세요.

ndk-build NDK_MODULE_PATH=../../TapjoySDK_Android/Library/modules

Cocos2dx

콜론 (:)으로 구분 된NDK_MODULE_PATHproj.android/build_native.sh에 추가합니다.

 # proj.android/build_native.sh
...
if [[ "$buildexternalsfromsource" ]]; then
    echo "Building external dependencies from source"
    "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
       "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source:../../TapjoySDK_Android/Library/modules"
else
    echo "Using prebuilt externals"
    "$NDK_ROOT"/ndk-build -C "$APP_ANDROID_ROOT" $* \
       "NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt:../../TapjoySDK_Android/Library/modules"
fi

다음 모듈 중 하나를 사용하십시오.

Static Library Module

애플리케이션 라이브러리를 정적 라이브러리 모듈에 연결합니다.

fiverocks_static 모듈을 추가합니다.

앱 프로젝트에서 Tapjoy API 연동 소스 코드를 빌드하는 Android.mk 파일에 tapjoy_static 모듈을 추가합니다.

```make
 ...
 include $(CLEAR_VARS)
 ...
 LOCAL_STATIC_LIBRARIES := tapjoy_static
 ...
 include $(BUILD_SHARED_LIBRARY)
 ...
 $(call import-module,tapjoy)
 ...

Provide JavaVM:

`tapjoy_static` module requires a JavaVM object. Find the function definition of `JNI_OnLoad` and add the `Tapjoy::setJavaVM` method:

```java
  #include "TapjoyCpp.h" // Tapjoy C++ API
 ...
 jint JNI_OnLoad(JavaVM *vm, void *reserved) {
     ...
     JniHelper::setJavaVM(vm);
     tapjoy::Tapjoy::setJavaVM(vm);
     ...
 }

Shared Library Module

공유 라이브러리 모듈을 사용할 수도 있습니다. 이 경우 JavaVM이 필요하지 않습니다.

tapjoy_shared 모듈을 추가합니다 :

앱 프로젝트에서 Tapjoy API 통합 소스 코드를 빌드하는 Android.mk 파일에 tapjoy_shared 모듈을 추가합니다.

...
include $(CLEAR_VARS)
...
LOCAL_SHARED_LIBRARIES := tapjoy_shared
...
include $(BUILD_SHARED_LIBRARY)
...
$(call import-module,tapjoy)
...

공유 라이브러리 모듈의 종속성 문제 해결 : Tapjoy 라이브러리를 사용하는 애플리케이션 라이브러리를 로드하기 전에 Tapjoy.loadSharedLibrary ()를 호출하세요 :


import com.tapjoy.Tapjoy;

  static {
    Tapjoy.loadSharedLibrary();
    System.loadLibrary("YourAppLibrary");
  }

C++ API

TapjoyCpp.h 헤더 파일을 사용하세요 :


 #include "Tapjoy/TapjoyCpp.h" // Tapjoy C++ API

using namespace tapjoy;

  Tapjoy::trackEvent("some event");

Push Opt out C++ API (Android SDK 11.1+)

이 API를 사용하여 푸시 알림 수신을 원하지 않는 사용자를 옵트 아웃 할 수 있습니다. 사용하기 전에 Tapjoy.connect 호출을 사용하여 Tapjoy SDK에 먼저 연결해야합니다.

// To get the current status
bool Tapjoy::isPushNotificationDisabled()

// To set/unset push notification disabled
void Tapjoy::setPushNotificationDisabled(bool)

앱의 설정 페이지에 토글 또는 체크 박스 UI를 추가하는 것이 좋습니다.

Privacy

자세한 내용은 이 문서를 참조하세요.

API

TJPrivacyPolicyHandle policyHandle;
policyHandle = TJPrivacyPolicy::getPrivacyPolicy();
TJPrivacyPolicy::subjectToGDPR(policyHandle,true);
TJPrivacyPolicy::setUserConsent(policyHandle, "1″);
TJPrivacyPolicy::setUSPrivacy(policyHandle, "1YNY");
TJPrivacyPolicy::belowConsentAge(policyHandle, true);

Referrer

Tapjoy의 InstallReferrerClient를 Tapjoy 분석기능과 연동

  1. <app_level> build.gradle에 com.android.installreferrer:installreferrer를 추가합니다.
  2. TapjoyIntegration.cpp에서 cocos 엔진을 사용하는 경우 Tapjoy::activateInstallReferrerClient(contex);를 호출하는 네이티브 메서드를 만듭니다. 아래의 샘플 구현을 참조하십시오.
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
extern "C" void Java_org_cocos2dx_cpp_AppActivity_activateInstallReferrerClient(JNIEnv* jenv,jobject thiz) {
   static jobject context = jenv->NewGlobalRef(thiz);
   Tapjoy::activateInstallReferrerClient(context);
}
#endif
  1. <your_app_main_activity>.java에서 네이티브 메서드를 호출합니다. 아래의 샘플 구현을 참조하십시오.
public class AppActivity extends Cocos2dxActivity {
 @Override
 protected void onCreate(Bundle bundle) {
   super.onCreate(bundle);
   setActivity();

   activateInstallReferrerClient();
   Tapjoy.setDebugEnabled(true);
 }

 public native void setActivity();
 public native void activateInstallReferrerClient();

 static {
   Tapjoy.loadSharedLibrary();
 }
}