C++ Library

Tapjoy在使用Android NDK和C++的开发平台上提供C++ API, 比如Cocos2d-x

Tapjoy Android SDK 提供的C++ API和Tapjoy iOS SDK提供的 C++ API兼容。

NDK Modules

Tapjoy SDK里包含提供C++头文件和库的NDK模块。请将Tapjoy NDK Modules路径添加为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

使用如下模块之一:

静态库模块

把您的应用库链接到静态库模块。

添加 fiverocks_static 模块:

在应用的项目中,添加 tapjoy_static模块到构建Tapjoy API集成源代码的Android.mk文件中。

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

提供 JavaVM:

`tapjoy_static` 模块需要JavaVM对象,找到`JNI_OnLoad`函数,添加`Tapjoy::setJavaVM` 方法:

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

共享库模块

您也可以使用共享库模块。这不需要JavaVM。

添加 tapjoy_shared 模块:

在应用的项目中,添加 tapjoy_static模块到构建Tapjoy API集成源代码的Android.mk文件中:

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

解决共享库模块的依赖问题:  
在加载使用Tapjoy库的应用库之前,调用`Tapjoy.loadSharedLibrary()`:

```java

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 for 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)

我们建议在您的app设置页面添加触发开关或检查框界面。

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 InstallReferrer 客户端到Tapjoy Analytics

  1. 添加 com.android.installreferrer:installreferrer 到 <app_level> build.gradle中。
  2. 如果您正在TapjoyIntegration.cpp中使用coco engine,请创建native方法来调用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调用Native方法。具体实现示例如下
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();
 }
}