跳到主要内容

横幅广告

1、请求广告

using TradplusSDK.Api;

//流量分组
Dictionary<string, string> customMap = {};
//local自定义Map,仅Android支持
Dictionary<string, object> localParams = {};

//设置附加参数 extra
TPBannerExtra extra = new TPBannerExtra();
extra.x = 0;
extra.y = 0;
extra.width = 320;
extra.height = 50;
extra.closeAutoShow = false;
extra.adPosition = TradplusBase.AdPosition.TopLeft;
extra.customMap = customMap;
extra.localParams = localParams;
extra.className = "tp_native_banner_ad_unit";

//请求广告
TradplusBanner.Instance().LoadBannerAd("在TP平台创建的广告位ID", sceneId, extra);

参数说明

unitId:TradPlus后台创建的广告位ID
  • 开发者需正确填入,例如:unitId设置前后有空格,均会导致广告因拉不到配置而请求失败。
sceneId :广告场景ID
  • 开发者可在在TradPlus后台创建,位置如下:应用管理--广告场景。
  • 具体如何调用,可以参考广告场景的调用时机和用途说明
  • 进入广告场景时传入sceneId,展示广告时也需传入sceneId,否则会影响统计。
TPBannerExtra:额外参数
  • x:坐标 x,默认 0。
  • y:坐标 y,默认 0。
  • width:宽度,默认 320。
  • height:高度,默认 50。
  • adPosition:屏幕位置定位(当 x y 都为 0 时生效),默认TopLeft。
  • closeAutoShow:是否关闭自动展示 。默认开启自动展示,传入true关闭。
  • customMap:设置流量分组 相关属性参数
  • localParams:设置本地参数。仅Android支持。个别广告平台特殊需要设定的参数。
  • className:自定义渲染的方式设置原生横幅,开发者传入布局名称即可。仅Android支持,V8.7.0.1新增API
    (1)Android V8.7.0.1开始支持使用横幅广告位配置原生横幅类型,SDK内置默认布局样式,如果开发者需要自己定义布局样式,就需要使用此方法渲染。
    (2)详细了解,见下文《如何使用横幅广告位配置原生横幅》部分介绍
    (3)tp_native_banner_ad_unit,为TradPlus提供的样式布局文件,可以在下载的unitypackage中获取。

2、检查是否有可用广告

  • 建议开发者展示广告前,调用该API判断是否有可用广告,有广告再调用show方法
  • true表示有可用广告,false表示暂时无可用广告
bool isReady = TradplusBanner.Instance().BannerAdReady("在TP平台创建的广告位ID");

3、进入广告场景 (可选)

TradplusBanner.Instance().EntryBannerAdScenario("在TP平台创建的广告位ID", "sceneId");

4、展示广告

此接口配合 closeAutoShow 关闭自动展示时使用

//调用展示前先判断是否有广告
bool isReady = TradplusBanner.Instance().BannerAdReady("在TP平台创建的广告位ID");
if(isReady)
{
//展示广告
TradplusBanner.Instance().ShowBannerAd("在TP平台创建的广告位ID", "sceneId");
}

5、隐藏已展示的广告

TradplusBanner.Instance().HideBanner("在TP平台创建的广告位ID");

6、显示已隐藏的广告

TradplusBanner.Instance().DisplayBanner("在TP平台创建的广告位ID");

7、销毁广告

//销毁广告
TradplusBanner.Instance().DestroyBanner("在TP平台创建的广告位ID");

8、监听回调

参数说明

常用回调

// 广告加载成功
TradplusBanner.Instance().OnBannerLoaded += OnlLoaded;
// 广告加载失败
TradplusBanner.Instance().OnBannerLoadFailed += OnLoadFailed;
// 广告展示成功
TradplusBanner.Instance().OnBannerImpression += OnImpression;
//广告展示失败
TradplusBanner.Instance().OnBannerShowFailed += OnShowFailed;
//广告点击
TradplusBanner.Instance().OnBannerClicked += OnClicked;
//广告关闭
TradplusBanner.Instance().OnBannerClosed += OnClosed;
//每层waterfall加载失败时回调
TradplusBanner.Instance().OnBannerOneLayerLoadFailed += OnOneLayerLoadFailed;

void OnlLoaded(string adunit, Dictionary<string, object> adInfo)
{
// 广告加载成功
//v1.1.2优化回调方式,一次loadAd对应一次loaded回调,不调用不回调。
}

void OnLoadFailed(string adunit, Dictionary<string, object> error)
{
// 广告加载失败
}

void OnImpression(string adunit, Dictionary<string, object> adInfo)
{
// 广告展示成功
}

void OnShowFailed(string adunit, Dictionary<string, object> adInfo, Dictionary<string, object> error)
{
//广告展示失败
}

void OnClicked(string adunit, Dictionary<string, object> adInfo)
{
//广告点击
}

void OnClosed(string adunit, Dictionary<string, object> adInfo)
{
//广告关闭
}

void OnOneLayerLoadFailed(string adunit, Dictionary<string, object> adInfo, Dictionary<string, object> error)
{
//每层waterfall加载失败时回调
}

广告源维度回调监听(可选)


//每次调用load方法时返回的回调
TradplusBanner.Instance().OnBannerStartLoad += OnStartLoad;
//Bidding开始(每有一个bidding广告源回调一次)
TradplusBanner.Instance().OnBannerBiddingStart += OnBiddingStart;
//Bidding加载结束(每有一个bidding广告源回调一次)
TradplusBanner.Instance().OnBannerBiddingEnd += OnBiddingEnd;
//每层waterfall开始加载时回调
TradplusBanner.Instance().OnBannerOneLayerStartLoad += OnOneLayerStartLoad;
//每层waterfall加载成功时回调
TradplusBanner.Instance().OnBannerOneLayerLoaded += OnOneLayerLoaded;
//加载流程结束
TradplusBanner.Instance().OnBannerAllLoaded += OnAllLoaded;
//调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。V1.0.5 新增回调
TradplusBanner.Instance().OnBannerIsLoading += OnAdIsLoading;

void OnStartLoad(string adunit, Dictionary<string, object> adInfo)
{
//每次调用load方法时返回的回调
}

void OnBiddingStart(string adunit, Dictionary<string, object> adInfo)
{
//Bidding开始(每有一个bidding广告源回调一次)
}

void OnBiddingEnd(string adunit, Dictionary<string, object> adInfo, Dictionary<string, object> error)
{
//Bidding加载结束(每有一个bidding广告源回调一次)
}

void onAdIsLoading(string unitId)
{
//调用load之后如果收到此回调,说明广告位仍处于加载状态,无法触发新的一轮广告加载。V1.0.5 新增回调
}

void OnOneLayerStartLoad(string adunit, Dictionary<string, object> adInfo)
{
//每层waterfall开始加载时回调
}

void OnOneLayerLoaded(string adunit, Dictionary<string, object> adInfo)
{
//每层waterfall加载成功时回调
}

void OnAllLoaded(string adunit, bool isSuccess)
{
//加载流程结束
// isSuccess 返回true,表示此次请求,有广告源加载成功
// isSuccess 返回false,表示此次请求,广告位adUnitId下所有广告源加载失败
}

下载监听 快手、穿山甲支持(可选)(仅Android支持)

void OnDownloadStart(string adunit, Dictionary<string, object> adInfo, int totalBytes,int currBytes, string fileName,string appName )
{
// 开始下载回调
// totalBytes:文件总大小(单位:字节)
// currBytes:当前已下载的大小(单位:字节)
// fileName:文件名称
// appName:文件对应的应用名称
}

void OnDownloadUpdate(string adunit, Dictionary<string, object> adInfo, int totalBytes, int currBytes, string fileName, string appName,int progress)
{
// 下载进度更新回调
// progress:下载进度
}

void OnDownloadPause(string adunit, Dictionary<string, object> adInfo, int totalBytes, int currBytes, string fileName, string appName)
{
// 暂停下载回调
}

void OnDownloadFinish(string adunit, Dictionary<string, object> adInfo, int totalBytes, int currBytes, string fileName, string appName)
{
// 下载完成回调
}

void OnDownloadFailed(string adunit, Dictionary<string, object> adInfo, int totalBytes, int currBytes, string fileName, string appName)
{
// 下载失败回调
}

void OnInstallled(string adunit, Dictionary<string, object> adInfo, int totalBytes, int currBytes, string fileName, string appName)
{
// Apk安装完成回调
}

9、如何使用横幅广告位配置原生横幅

  • TradPlus SDK V8.7.0.1开始支持,开发者首先需要在横幅广告位下添加新的广告源,横幅类型选择 原生横幅

后台配置

  • 第一步:后台选择TradPlus横幅广告位类型(注意:选错广告位类型会没有横幅类型选项)
  • 第二步:点击编辑横幅类型中选择原生横幅类型
  • 第三步:配置三方广告网络Placement ID
注意:选择原生横幅类型,创建的Placement ID不能填成横幅的Placement ID,否则百分比请求失败。

自定义渲染原生横幅广告

  • 开发者不使用SDK内置的布局样式,自定义样式渲染原生横幅广告
using TradplusSDK.Api;

//设置附加参数 extra
TPBannerExtra extra = new TPBannerExtra();
extra.x = 0;
extra.y = 0;
extra.width = 320;
extra.height = 50;
extra.closeAutoShow = false;
extra.adPosition = TradplusBase.AdPosition.TopLeft;
extra.className = "tp_native_banner_ad_unit"; // 为开发者自定义的布局XML

//请求广告
TradplusBanner.Instance().LoadBannerAd(adUnitId, sceneId, extra);