手动集成

1. 下载SDK

手动集成的第一步是下载Android SDK itself.

2. 添加SDK到您的工程中

解压之后,您会看到如下的libs和TapjoyEasyApp文件夹。

  1. 拷贝tapjoyconnectlibrary.aar文件到您应用工程的/libs文件夹(如果没有,请先创建)
  2. 将如下添加到您应用的build.gradle:
  dependencies {
    implementation files('libs/tapjoyconnectlibrary.aar')
  }
  1. 添加Google-Play-Service库并设置dependencies
repositories {
  maven {
    url 'https://maven.google.com/'
    name 'Google'
  }
}
dependencies {
  implementation 'com.google.android.gms:play-services-ads-identifier:17.1.0'
}

Add App Permissions and Activities

需要添加下面的 permissions:

  • ACCESS_WIFI_STATE(optional)

AD_ID 和 Google Play Families Progam

Tapjoy 12.9.0包括play-services-ads v17.1.0。对于Google Play Families Program成员,17.1.0版本 play-services-ads 中包括的AD_ID许可必须删除。

您需要在您的manifest中添加如下项来排除:

  <uses-permission android:name="com.google.android.gms.permission.AD_ID" tools:node="remove"/>

详细信息请参考这里.

JAR Integration

如果您使用JAR而非AAR,下面的permissions和activities也是必须的:

  • INTERNET
  • ACCESS_NETWORK_STATE
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

如想使用Tapjoy的全部功能, 添加下面的 activities 到您的AndroidManifest.xml文件中:

<activity
  android:name="com.tapjoy.TJAdUnitActivity"
  android:configChanges="orientation|keyboardHidden|screenSize"
  android:hardwareAccelerated="true"
  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

您还需要添加同样的configChanges到您应用的Manifest activity:

  android:configChanges="orientation|keyboardHidden|screenSize"

现在请先编译运行一下您的项目,以确保一切正常。目前还没有在您的程序中添加任何代码,所以当运行时,应该不会有任何错误信息,您的应用的功能也不会有任何的变化。

3. 连接Tapjoy

接下来我们添加一些Tapjoy相关的code吧!

Tapjoy Connect调用极其重要,如果实现不正确,将无法使用任何Tapjoy功能.

要添加Tapjoy connect调用,您需要取得您正在集成的应用的 Tapjoy SDK Key。在Tapjoy控制面板中选择您的应用程序, 点击左下角的“设置”按钮。

SDK Key 是一长串数字字母组成的字符串,可以在页面底部找到。

现在我们可以写入一些代码,在您的主程序文件中引入 Tapjoy SDK:

java
  import com.tapjoy.Tapjoy

在您的应用的主Activity类的onCreate()方法中添加Tapjoy.connect():

java
  Hashtable<String, Object> connectFlags = new Hashtable<String, Object>();
  connectFlags.put(TapjoyConnectFlag.ENABLE_LOGGING, "true"); // Disable this in production builds
  connectFlags.put(TapjoyConnectFlag.USER_ID, "USER_ID_GOES_HERE"); // Important for self-managed currency

  Tapjoy.connect(getApplicationContext(), "SDK_KEY_GOES_HERE", connectFlags, new TJConnectListener() {
        @Override
        public void onConnectSuccess() {
          this.onConnectSuccess();
        } 
        @Override
        public void onConnectWarning(int code, String message) {
          
        }
        @Override
        public void onConnectFailure() {
          this.onConnectFailure();
        }
   });

在此代码中您可以看到,我们连接Tapjoy(同时监听成功和失败回调)的时候,我们配置了两个连接标志位。

这两个重要并经常用到的标志位是ENABLE_LOGGINGUSER_ID

当您调试代码时您将会使用到日志标志位,但是在您正式发布时请将日志标志位关闭。

设置USER_ID标志位对于使用自管理虚拟货币的应用来说至关重要。在连接时设置可以保证在设置展示位置时被调用,避免不必要的奖励问题。

下面这些connect标志位可以帮助开发者控制Tapjoy使用Android系统相关ID:

  • ALLOW_LEGACY_ID_FALLBACK (在SDK 12.2.1 及以上版本可用) 如果设置了此标志位,在广告ID不可用的情况下,Tapjoy SDK将使用固定ID来投放广告。
  • DISABLE_ADVERTISING_ID_CHECK 默认情况下,Tapjoy SDK 会检查Google 广告ID,如果无法得到,SDK会初始化失败。如果设置了此标志位,Tapjoy SDK在无法得到Google 广告ID的的情况下也可以初始化成功。

要了解所有的connect标志位,请参考Java SDK Reference

现在请编译并且运行您的应用程序。

在Tapjoy控制面板中,如果您点击左侧的的导航栏中的”Real-time”标签,您应该能够看到您的应用的一些实时的应用数据,您可以多运行几次程序,这样用来展示的数据会更多。

恭喜您! 现在Tapjoy 已经开始在您的应用程序中工作了。