# 调用接口

### 1、初始化

调用该函数初始化广告SDK，该函数需要在[GameSDK.init()](/project/you-xi-jie-ru-wen-dang/ji-shu-dui-jie/ke-hu-duan-dui-jie/tiao-yong-jie-kou.md#chu-shi-hua)之后调用。

函数：

```
AdSDK.init();
```

#### 注意：为避免广告填充率不足时，游戏出现因无法请求到广告而卡界面的问题，请开发者务必监听请求广告失败的回调，并进行处理。

### 2、创建横幅广告

游戏调用该函数创建横幅广告，仅支持单个banner横幅创建展示

函数：

```
var banner=AdSDK.createBannerAd(adId,bannerAdId,position); 
```

参数说明：

| **参数**   | **含义** | **类型** | **是否为空** | **备注**      |
| -------- | ------ | ------ | -------- | ----------- |
| adId     | 广告序号ID | String | 非空       | 标识广告(游戏自定义) |
| bannerId | 广告位ID  | String | 非空       | 广告位ID，需申请   |
| position | 广告位置   | Int    | 非空       | 1、顶部；2、底部；  |

### 3、监听横幅广告加载成功事件

游戏调用该函数注册回调函数，当加载广告成功时平台会通知游戏，游戏收到该回调后，在调用展示操作。

函数：

```
banner.onLoad (func());
```

方法说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 横幅广告加载成功回调函数 | function | 非空       | 游戏定义回调函数 |

### 4、监听横幅广告加载失败事件

游戏调用该函数注册回调函数，当加载广告失败时函数会执行

函数：

```
banner.onError(func(param));
```

方法说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 横幅广告加载失败回调函数 | function | 非空       | 游戏定义回调函数 |

参数说明

| 参数    | 含义     | 类型     | 是否为空 | 备注         |
| ----- | ------ | ------ | ---- | ---------- |
| param | 广告加载失败 | Json对象 | 非空   | Json对象，见下文 |

```
Param Json对象:
{
    adId,  // string 加载失败的广告Id
    errorCode//string 错误码
}
errorCode请查看本文最下方错误列表
```

### 5、展示横幅广告

横幅广告组件默认是隐藏的，调用广告实例的show函数展示横幅广告，返回值为Promise,banner广告显示操作的结果

***建议在监听到横幅广告加载成功的回调函数中调用该函数。***

函数：

```
banner.show().then(function(){
    console.log('banner 广告显示成功')
},function(err){
    console.log('banner 广告显示失败')
})

```

方法说明：

| **参数**        | **含义**   | **类型**   | **是否为空** | **备注**   |
| ------------- | -------- | -------- | -------- | -------- |
| function()    | 展示广告成功回调 | function | 否        | 游戏自定义该方法 |
| function(err) | 展示广告失败回调 | function | 否        | 游戏自定义该方法 |

### 6、隐藏横幅广告

调用广告实例的hide函数隐藏横幅广告

函数：

```
banner.hide();
```

### 7、销毁横幅广告

调用广告实例的destroy函数销毁横幅广告

函数：

```
banner.destroy();
```

### 8、创建插屏广告

调用该函数创建插屏广告，**建议开发者提前创建的广告，这样展示广告的时候无需加载，体验上更好。**

函数：

```
var interstitialAd=AdSDK.createInterstitialAd(adId,interstitialAdId, style);
```

参数说明：

| **参数**           | **含义** | **类型** | **是否为空** | **备注**      |
| ---------------- | ------ | ------ | -------- | ----------- |
| adId             | 广告序号ID | String | 非空       | 标识广告(游戏自定义) |
| interstitialAdId | 广告位ID  | String | 非空       | 插屏广告位ID，需申请 |
| style            | 展示样式   | Int    | 非空       | 1、全屏；2、半屏   |

### 9、监听插屏广告加载成功事件

游戏调用该函数注册回调函数，当加载插屏广告成功时平台会通知游戏，游戏收到该回调后，在调用展示操作。

函数：

```
interstitialAd.onLoad(func());
```

方法说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 插屏广告加载成功回调函数 | function | 非空       | 游戏定义回调函数 |

### 10、监听插屏广告加载失败事件

游戏调用该函数注册回调函数，当加载广告失败时函数会执行。如广告加载失败，确保游戏正常继续运行。

函数：

```
interstitialAd.onError(func(param));
```

方法说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 插屏广告加载失败回调函数 | function | 非空       | 游戏定义回调函数 |

参数说明

| 参数    | 含义     | 类型     | 是否为空 | 备注         |
| ----- | ------ | ------ | ---- | ---------- |
| param | 广告加载失败 | Json对象 | 非空   | Json对象，见下文 |

```
Param Json对象:
{
    adId,  // string 加载失败的广告Id
    errorCode//string 错误码
}
errorCode请查看本文最下方错误列表
```

### 11、展示插屏广告

调用广告实例的show函数展示插屏广告，返回值Promise，返回广告显示操作的结果

***建议在监听到插屏广告加载成功的回调函数中调用该函数。***

函数：

```
interstitialAd.show().then(function(){
      console.log('interstitialAd 广告显示成功')
 },function(err){
      console.log('interstitialAd 广告显示失败')
});
```

方法说明：

| **参数**        | **含义**   | **类型**   | **是否为空** | **备注**   |
| ------------- | -------- | -------- | -------- | -------- |
| function()    | 展示广告成功回调 | function | 否        | 游戏自定义该方法 |
| function(err) | 展示广告失败回调 | function | 否        | 游戏自定义该方法 |

奖励操作，可以在广告展示成功回调中执行。

### 12、隐藏插屏广告

调用广告实例的hide函数隐藏插屏广告

函数：

```
interstitialAd.hide();
```

### 13、销毁插屏广告

调用广告实例的destroy函数销毁插屏广告

函数：

```
interstitialAd.destroy();
```

### 14、创建视频广告

调用该函数创建视频广告，仅支持单个视频广告创建。**建议开发者提前创建的广告，这样展示广告的时候无需加载，体验上更好。**

函数：

```
var videoAd=AdSDK.createRewardedVideoAd(adId,videoAdId,screenOrientation);
```

参数说明：

| **参数**            | **含义** | **类型** | **是否为空** | **备注**      |
| ----------------- | ------ | ------ | -------- | ----------- |
| adId              | 广告序号ID | String | 非空       | 标识广告(游戏自定义) |
| videoAdId         | 广告位ID  | String | 非空       | 视频广告位ID，需申请 |
| screenOrientation | 展示样式   | Int    | 非空       | 1、横屏；2、竖屏   |

### 15、监听视频广告加载成功事件

游戏调用该函数注册回调函数，当加载视频广告成功时平台会通知游戏，游戏收到该回调后，在调用展示操作。

函数：

```
videoAd.onLoad(func());
```

方法说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 视频广告加载成功回调函数 | function | 非空       | 游戏定义回调函数 |

### 16、监听视频广告加载失败事件

调用该函数注册回调函数，当加载广告失败函数会执行，如广告加载失败，确保游戏正常继续运行。

函数：

```
videoAd.onError(func(param));
```

方法说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 视频广告加载失败回调函数 | function | 非空       | 游戏定义回调函数 |

参数说明：

| 参数    | 含义     | 类型     | 是否为空 | 备注         |
| ----- | ------ | ------ | ---- | ---------- |
| param | 广告加载失败 | Json对象 | 非空   | Json对象，见下文 |

```
Param Json对象:
{
    adId,  // string 加载失败的广告Id
    errorCode//string 错误码
}
errorCode请查看本文最下方错误列表
```

### 17、展示视频广告（激励奖励）

调用该函数展示视频广告，返回值Promise，视频广告显示操作的结果。

***建议在监听到视频广告加载成功的回调函数中调用该函数。***

***展示成功后建议销毁广告对象，从新创建新的广告对象。***

函数：

```
videoAd.show().then(function(){
  console.log('videoAd 广告显示成功，发放激励奖励')
},function(err){
  console.log('videoAd 广告显示失败')
});
```

方法说明：

| **参数**        | **含义**   | **类型**   | **是否为空** | **备注**   |
| ------------- | -------- | -------- | -------- | -------- |
| function()    | 展示广告成功回调 | function | 否        | 游戏自定义该方法 |
| function(err) | 展示广告失败回调 | function | 否        | 游戏自定义该方法 |

奖励操作，可以在广告展示成功回调中执行。

### 18、隐藏视频广告

调用该函数隐藏视频广告

函数：

```
videoAd.hide();
```

### 19、销毁视频广告

调用该函数销毁视频广告

函数：

```
videoAd.destroy();
```

### 20、监听视频广告关闭按钮点击事件

关闭视频广告时该函数执行，该函数执行并不代表视频正常观看完。奖励应在展示成功回调中设置。

函数：

```
videoAd.onClose(func);
```

参数说明：

| **参数** | **含义**       | **类型**   | **是否为空** | **备注**   |
| ------ | ------------ | -------- | -------- | -------- |
| func   | 视频广告关闭时回调该函数 | function | 非空       | 游戏定义回调函数 |

### 21、错误码列表

```
2001=初始化错误	开发者自查参数问题
2002=内部错误	反馈给广点通商务，请把提供错误码和错误信息
3001=网络异常	检查网络状态并重试
3003=网络类型错误，当前设备的网络类型不符合开屏广告的加载条件	检查网络状态并重试
4001=初始化错误, 包括广告位为空、App ID为空、Context/Activity为空	根据 Logcat 中的错误信息提示修改嵌入代码
4002=请检查 Manifest 文件中的 Activity/Service/Permission 的声明是否正确以及声明的权限是否都已授予	根据 Logcat 中的错误信息提示修改嵌入代码
4003=广告位错误	根据 Logcat 中的错误信息提示修改嵌入代码
4007=当前设备或版本不支持	请参照本文档中相应广告类型对设备或版本的限制
4008=设备方向不适合展示广告	根据 Logcat 中的错误信息提示修改嵌入代码
4012=内容广告接口调用顺序错误，调用点击接口前未调用曝光接口	注意内容接口调用
4013=在旧版的 SDK 上使用了模板视频的广告位，需要升级 SDK	请升级到最新版SDK
4014=广告数据返回前尝试展示广告	开发者调整代码，在广告返回后进行展示广告的操作
4015=同一条广告不允许多次展示	重新拉取广告后再进行展示
4016=应用横竖方向参数与广告位支持方向不匹配	开发自查应用横竖屏状态与广告位支持方向是否匹配
5001=服务端数据错误	建议稍后重试，如果重试仍然有错误，请反馈给广点通商务
5002=视频素材下载错误	建议稍后重试，如果重试仍然有错误，请反馈给广点通商务
5003=视频素材播放错误	建议稍后重试，如果重试仍然有错误，请反馈给广点通商务
5004=未匹配到合适的广告	此情况下禁止多次重试请求广告，否则可能影响系统对您流量的评价从而影响变现效果
5005=广告请求量或者消耗等超过日限额，请明天再请求广告	请明天再发起请求(由于数据延迟问题，建议第二天的00:30之后再发起请求)
5006=包名校验错误，当前 App 的包名和广点通官网注册媒体时填写的包名不一致，因此无广告返回	请检查接入广点通 SDK 的 App 包名是否和注册时填写的一致，否则将影响您的收益
5007=资源加载错误	建议稍后重试，如果重试仍然有错误，请反馈给广点通商务
5008=图片加载错误	建议稍后重试，如果重试仍然有错误，请反馈给广点通商务
5009=广告请求量或者消耗等超过小时限额，请一小时后再请求广告	请一小时后再请求广告
5010=广告样式校验失败，请检查广告位与接口使用是否一致	目前后台开放权限的是原生模板广告，请根据原生模板广告的接入文档进行接入，如果是按照自渲染原生广告接入文档进行接入的话，也会报错107034
5011=原生模版渲染失败	这种情况一般是原生模版在服务端渲染失败，导致返回的数据和模版数不一致导致的，请将该问题反馈给广点通商务排查
5012=广告数据过期	部分广告（如激励视频）可以预拉取，拉取广告后广告数据会有存在一个过期时间，当开发者调用展示广告的接口但此时当前时间已经超过过期时间时会返回此错误码
5013=广告请求过于频繁	请求过于频繁，服务器繁忙时会返回该错误码，请检测与控制请求频率
100001=解析请求失败,常见原因是请求参数值没有正确进行url编码	参考广告请求参数说明,并对每一个参数值进行url编码
100007=解析请求失败,常见原因是请求参数值没有正确进行url编码	参考广告请求参数说明,并对每一个参数值进行url编码
100133=广告位ID无效	参考腾讯联盟开发者平台中生成的广告位ID进行填写
100125=广告位width或height无效	参考width和height参数填写逻辑
100135=广告位被联盟后台封禁或违规暂停	请自查数据上报是否异常，并联系商务人员
102006=未匹配到合适的广告	请自查广告请求逻辑，如该问题频繁出现请联系商务人员
100303=ad_count无效	参考ad_count参数填写逻辑
100351=need_rendered_ad无效	参考need_rendered_ad参数填写逻辑
104012=ad_pull_mode无效	参考ad_pull_mode参数填写逻辑
104014=idfa无效	参考idfa参数填写逻辑
104015=imei_md5无效	参考imei_md5参数填写逻辑
104017=android_id_md5无效	参考android_id_md5参数填写逻辑
104018=android_ad_id无效	参考android_ad_id参数填写逻辑
107002=os无效	参考os参数填写逻辑
107005=app_id无效	参考app_id参数填写逻辑
107006=app_id无效	参考app_id参数填写逻辑
107030=app_bundle_id无效	参考app_bundle_id参数填写逻辑
107011=操作系统类型与广告位冲突	保证手机操作系统与广告位设置一致
107012=device无效	参考device参数填写逻辑，并进行url编码
107014=network无效	参考network参数填写逻辑，并进行url编码
107015=geo无效	参考geo参数填写逻辑，并进行url编码
107016=model无效	参考model参数填写逻辑
107017=orientation无效	参考orientation参数填写逻辑
107018=connect_type无效	参考connect_type参数填写逻辑
107019=carrier无效	参考carrier参数填写逻辑
107020=lat无效	参考lat参数填写逻辑
107021=lng无效	参考lng参数填写逻辑
107022=location_accuracy无效	参考location_accuracy参数填写逻辑
107023=support_full_screen_interstitial无效	参考support_full_screen_interstitial参数填写逻辑
107024=os_version无效	参考os_version参数填写逻辑
107025=screen_width无效	参考screen_width参数填写逻辑
107026=screen_height无效	参考screen_height参数填写逻辑
107027=pos无效	参考pos参数填写逻辑，并进行url编码
107028=media无效	参考media参数填写逻辑，并进行url编码
107031=manufacturer无效	参考manufacturer参数填写逻辑
107032=device_type无效	参考device_type参数填写逻辑
107033=缺少有效的设备标识（对安卓是imei或imei_md5或android_id或android_id_md5；对ios是idfa）	如果能获取到有效设备标识，请获取有效设备标识后重试；否则，禁止重试。
107034=广告样式校验失败	请根据实际系统环境区分处理
107035=在旧版的SDK上使用了模板视频的广告位	请升级到最新版SDK
107040=原生接口调用错误	请参考调用原生接口的逻辑
107041=SDK版本已废弃	请升级到最新版SDK
109506=该广告位处于流量测试期，且达到日请求量上限，因此未返回广告。对新上线的广告位和最近流量大幅波动的广告位会返回该返回码。	请明天再发起请求(由于数据延迟问题,建议第二天的00:30之后再发起请求)
109507=该广告位处于流量测试期，且达到当前小时的请求量上限，因此未返回广告。对新上线的广告位和最近流量大幅波动的广告位会返回该返回码。	请下一小时再发起请求
109511=点击数据上报错误	点击上报时候，未上报有效点击坐标或点击重复上报提示
112001=请求合法，但当前暂无资讯内容返回	禁止重试，否则可能影响系统对您流量的评价从而影响变现效果
112003=channel无效	参考channel参数填写逻辑
112004=广告位类型错误	非资质通荐广告位请求了资质通荐广告接口，请修改广告位ID后进行重试。
112005=资质通荐请求错误	系统内部错误，请联系商务人员
1000012=广告位width无效	参考width参数填写逻辑
1000014=广告位height无效	参考height参数填写逻辑


```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gamebox.gitbook.io/project/you-xi-jie-ru-wen-dang/guang-gao-jie-ru/ji-shu-dui-jie/tiao-yong-jie-kou.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
