C++ Library

Tapjoyでは Android NDKでC++ APIを提供します。NDKを利用する開発環境、例えばCocos2d-xなどからの利用が可能です。

C++ APIはTapjoy Android SDKで提供され、Tapjoy iOS SDK’s C++ APIと互換性をもっています。

NDK Modules

NDKモジュールを利用するにはC++ヘッダーとライブラリがTapjoy SDKに含まれている必要があります。Tapjoy NDKモジュールのパスNDK_MODULE_PATHを追加してください。

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

Cocos2dx

proj.android/build_native.shNDK_MODULE_PATH に コロン(;)出区切って追加して下さい:

 # 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

Static Library Moduleにアプリライブラリをリンクしてください。

アプリプロジェクトで、Tapjoy APIを実装するソースコードをビルドする Android.mkにtapjoy_staticを追加してください:

```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);
     ...
 }

Shared Library Module

Shared Library Module も利用可能です。この場合、JavaVMオブジェクトは必要ありません。

tapjoy_shared モジュールを追加します:

アプリプロジェクトで、Tapjoy APIを実装するソースコードをビルドする Android.mkにtapjoy_sharedを追加してください:

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

Shared Library Module の依存関係問題を解決する:
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 通知のオプトアウト (Android SDK 11.1 以降)

以下のAPIでPush通知の受信のオプトアウトの制御ができます。 このAPIは、Tapjoy.connect が成功した後に使用可能になります。

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

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

アプリの設定画面に、トグルボタン又はチェックボックスとして実装する事をお勧めします。

プライバシー

詳細はこちらを参照下さい.

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アナリティクス用に実装する

  1. build.gradle の <app_level> の dependency に com.android.installreferrer:installreferrer を追加する
  2. アプリの起動ActivityのonCreate()メソッド内で 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();
 }
}