跳到主要内容

Java SDK

1 使用场景

DataNexus 的数据上报 API 可使用腾讯广告 Marketing API SDK 进行调用。该 SDK 提供了 Token获取、请求封装、响应解释等功能,以本地化方式轻松完成API的调用和结果的获取,旨在帮助开发者快速搭建数据上报系统。



2 使用条件

  1. 使用 SDK 需要首先注册成为腾讯广告开发者,请参考开发者快速入门文档
  2. 使用 SDK 需要先拥有API的访问权限,所有SDK的使用与应用拥有的权限组相关联
  3. Java SDK 需要依赖 JDK 1.7 及以上
  4. Maven


3 代码托管

目前marketing-api-java-sdk的源码已经可以在github阅读,欢迎访问:源码地址



4 使用步骤

4.1 如何安装运行

  • 我们推荐用Maven的方式管理我们的Java SDK,可以添加如下XML内容到您项目的pom.xml中

    <dependency>
    <groupId>com.tencent.ads</groupId>
    <artifactId>marketing-api-java-sdk</artifactId>
    <version>1.1.54</version>
    </dependency>
  • 或者您也可以手动下载Java压缩包文件,解压后可以得到一个Java SDK的源码项目。SDK下载地址:ams-marketing-sdk-java.zip

    1. 解压文件,默认解压到目录ams-marketing-sdk-java。

    2. 执行mvn clean install,将包安装到你本地的Maven资源库中。

      cd ams-marketing-sdk-java
      mvn clean install
    3. 在你的项目的pom.xml中添加刚刚安装的依赖

         <dependency>
      <groupId>com.tencent.ads</groupId>
      <artifactId>marketing-api-java-sdk</artifactId>
      <version>1.1.54</version>
      </dependency>

4.2 如何使用

SDK 数组参数调用的方法名与API接口一一对应,如user_actions/add接口就对应TencentAds.getInstance().userAtions().userAtionsAdd()方法。

获取Access Token

信息

DataNeuxs - 数据源接入功能支持一键生成 Access Token(具有数据上报权限组,有效期为永久)。如使用一键生成的 Access Token,可跳过本步骤。

注:本示例适用于授权时通过Authorization Code获取Access Token和Refresh Token。

import com.tencent.ads.model.OauthTokenResponseData;

public class Example {

private static Long clientId = 0L; // 修改为你的clientId
private static String clientSecret = ""; // 修改为你的clientSecret
private static String grantType = "authorization_code";
private static String authorizationCode = "YOUR AUTHORIZATION CODE"; // 修改为你获取到的AUTHORIZATION CODE
private static String redirectUri = "YOUR REDIRECT URI"; // 修改为你的回调地址

public static void main(String[] args) {
TencentAds tencentAds = TencentAds.getInstance();
tencentAds.init(new ApiContextConfig());

try {
OauthTokenResponseData responseData = tencentAds.oauth()
.oauthToken(clientId, clientSecret, grantType, authorizationCode, null, redirectUri);
if (responseData != null) {
String accessToken = responseData.getAccessToken();
System.out.println(accessToken);
tencentAds.setAccessToken(accessToken);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

设置调用环境、Access Token

    TencentAds tencentAds = TencentAds.getInstance();
tencentAds.init(new ApiContextConfig("{access-token}", true));
tencentAds.useSandbox();// 默认访问沙箱环境,如访问正式环境,请调用tencentAds.useProduction();

调用API接口

import com.tencent.ads.ApiContextConfig;
import com.tencent.ads.TencentAds;
import com.tencent.ads.exception.TencentAdsResponseException;
import com.tencent.ads.exception.TencentAdsSDKException;
import com.tencent.ads.model.*;
import com.tencent.ads.model.UserActionsAddRequest;
import com.tencent.ads.model.UserActionsAddResponse;
import java.util.ArrayList;
import java.util.List;

/**
* 本文件提供了一个上报用户行为数据的简单示例
**/
public class AddUserActions {
/** YOUR ACCESS TOKEN */
public String ACCESS_TOKEN = "YOUR ACCESS TOKEN";

/** TencentAds */
public TencentAds tencentAds;

public Long accountId = null;
public UserActionsAddRequest data = new UserActionsAddRequest();
public Long actionTime = 1591616815L;
public String hashImei = "YOUR USER IMEI";
public ActionType actionType = ActionType.CUSTOM;
public String customAction = "YOUR CUSTOM ACTION TYPE";
public Long userActionSetId = null;

public void init() {
this.tencentAds = TencentAds.getInstance();
this.tencentAds.init(
new ApiContextConfig().accessToken(ACCESS_TOKEN).isDebug(true)); // debug==true 会打印请求详细信息
this.tencentAds.useSandbox(); // 默认使用沙箱环境,如果要请求线上,这里需要设为线上环境
this.buildParams();
}

public void buildParams() {
data.setAccountId(accountId);

UserAction userAction = new UserAction();
userAction.setActionTime(actionTime);
ActionsUserId userId = new ActionsUserId();
userId.setHashImei(hashImei);
userAction.setUserId(userId);
userAction.setActionType(actionType);
userAction.setCustomAction(customAction);
List<UserAction> actions = new ArrayList<>();
actions.add(userAction);
data.setActions(actions);

data.setUserActionSetId(userActionSetId);
}

public UserActionsAddResponse addUserActions() throws Exception {
UserActionsAddResponse response = tencentAds.userActions().userActionsAdd(data);
return response;
}

public static void main(String[] args) {
try {
AddUserActions addUserActions = new AddUserActions();
addUserActions.init();
UserActionsAddResponse response = addUserActions.addUserActions();
} catch (TencentAdsResponseException e) {
e.printStackTrace();
} catch (TencentAdsSDKException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}

调试和查看API接口日志

TencentAds tencentAds = TencentAds.getInstance();
tencentAds.init(new ApiContextConfig("{access-token}", true));//第二个参数即为调试参数
// 或者主动设置debug模式
tencentAds.setDebug(true);
该内容是否有帮助?