类名:ATCocosSdk
API | 参数说明 | 功能说明 |
---|---|---|
loadNativeAd | const char * placementId, cocos2d::ValueMap parameters | 用于加载native广告 unitId为广告位id; parameters可为第三方平台设置信息 |
showNativeAd | const char * placementId, std::string parameters | 展示指定广告位的Native广告 parameters为指定native广告展示的位置 |
showNativeAdInScenario | const char * placementId, std::string parameters, const char * scenario | 展示指定广告位的Native广告 parameters为指定native广告展示的位置, scenario为广告展示场景,可从后台创建场景参数 |
removeNativeAd | const char * placementId | 移除原生广告 |
isNativeAdReady | const char * placementId | 判断指定广告位的广告是否加载完成 |
checkNativeAdStatus | const char * placementId | 获取当前广告位的状态(Json字符串): 1、isLoading:是否正在加载 2、isReady:是否有广告缓存(与isNativeAdReady作用相同) 3、AdInfo:当前优先级最高的广告缓存信息 |
setNativeAdListener | ATCocosNativeAdListener * listener, const char * placementId | 设置回调对象 |
接口:ATNativeListener
API | 参数说明 | 功能说明 |
---|---|---|
onNativeAdLoadSuccess | const char * placementId | 广告加载完成 |
onNativeAdLoadFailed | const char * placementId, const char * errorString | 广告加载失败 errorMsg为加载失败的原因 |
onNativeAdShowWithExtra | const char * placementId, const char * extra | 广告位展示 extra包含当前广告的其他信息 |
onNativeAdClickWithExtra | const char * placementId, const char * extra | 广告位产生点击 extra包含当前广告的其他信息 |
onNativeAdVideoStartWithExtra | const char * placementId, const char * extra | 原生视频播放开始,不同network可能支持不一样 extra包含当前广告的其他信息 |
onNativeAdVideoEndWithExtra | const char * placementId, const char * extra | 原生视频播放结束,不同network可能支持不一样 extra包含当前广告的其他信息 |
onNativeAdCloseButtonTappedWithExtra | const char * placementId, const char * extra | 点击了关闭按钮 extra包含当前广告的其他信息 |
素材对象:ATNativeProperty
API | 属性说明 | 功能说明 |
---|---|---|
ATNativeProperty | ATNativeItemProperty parent, ATNativeItemProperty icon, ATNativeItemProperty mainImage, ATNativeItemProperty title, ATNativeItemProperty desc, ATNativeItemProperty adLogo, ATNativeItemProperty cta, ATNativeItemProperty rating, ATNativeItemProperty dislike | parent:父布局, icon:App图标 mainImage:大图或者媒体视频 title:标题 desc:描述 adLogo:广告logo cta:CTA按钮 rating:评分 dislike:关闭按钮 |
布局对象:ATNativeItemProperty
API | 参数说明 | 功能说明 |
---|---|---|
ATNativeItemProperty | int x, int y, int width, int height, std::string backgroundColor, std::string textColor, int textSize, int isCustomClick | x:左上角x坐标, y:左上角y坐标 width:宽度 height:高度 backgroundColor:背景颜色 textColor:文本颜色 textSize:文本大小 isCustomClick:是否点击时直接下载(只针对Android且只针对腾讯广告平台的应用类广告有效) |
1、加载原生广告
auto glView = Director::getInstance()->getOpenGLView();
auto frameSize = glView->getFrameSize();
int width = frameSize.width;
std::string widthStr = StringUtils::format("%d", width);
std::string heightStr = StringUtils::format("%d", width * 4 / 5);
cocos2d::ValueMap localExtra;
localExtra[ATCocosSdk::KEY_WIDTH] = widthStr;
localExtra[ATCocosSdk::KEY_HEIGHT] = heightStr;
ATCocosSdk::loadNativeAd(nativePlacementId, localExtra);
2、展示原生广告
Rect rect = Director::getInstance()->getOpenGLView()->getVisibleRect();
auto *glView = Director::getInstance()->getOpenGLView();
auto frameSize = glView->getFrameSize();
if (ATCocosSdk::isNativeAdReady(nativePlacementId)) {
auto glView = Director::getInstance()->getOpenGLView();
auto frameSize = glView->getFrameSize();
int width = frameSize.width;
int height = frameSize.height;
cocos2d::ValueMap rectDict;
#if CC_TARGET_PLATFORM == CC_PLATFORM_IOS // IOS
int ptHight = height/ATCocosSdk::getScreenScale();
int parentWidth = width/ATCocosSdk::getScreenScale();
int parentHeight = (width * 4/5)/ATCocosSdk::getScreenScale();
int appIconSize = (width / 7)/ATCocosSdk::getScreenScale();
int padding = (width / 35)/ATCocosSdk::getScreenScale();
ATNativeProperty property = ATNativeProperty();
property.parent = ATNativeItemProperty(0, ptHight - parentHeight, parentWidth, parentHeight, "#ffffff", "", 0);
property.cta = ATNativeItemProperty(parentWidth-appIconSize*2, parentHeight - appIconSize, appIconSize*2, appIconSize, "#2095F1" , "#000000", appIconSize/3);
property.icon = ATNativeItemProperty(0, parentHeight - appIconSize, appIconSize,appIconSize ,"clearColor", "",0);
property.mainImage = ATNativeItemProperty(padding ,padding, parentWidth-2*padding, parentHeight - appIconSize - 2*padding, "#ffffff", "#000000", 14);
property.title = ATNativeItemProperty(appIconSize + padding , parentHeight - appIconSize, parentWidth - 3* appIconSize -2 * padding, appIconSize/2 , "#ffffff" , "#000000", appIconSize/3);
property.desc = ATNativeItemProperty(appIconSize + padding , parentHeight - appIconSize/2, parentWidth - 3* appIconSize -2 * padding, appIconSize/2 , "#ffffff" , "#000000", appIconSize/4);
#endif
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID // android
int parentWidth = width;
int parentHeight = width * 4 / 5;
int appIconSize = width / 7;
int padding = width / 35;
ATNativeProperty property = ATNativeProperty();
property.parent = ATNativeItemProperty(0, height - parentHeight, parentWidth, parentHeight, "#ffffff", "", 0);
property.cta = ATNativeItemProperty(parentWidth-appIconSize*2, parentHeight - appIconSize, appIconSize*2, appIconSize, "#2095F1" , "#000000", appIconSize/3);
property.icon = ATNativeItemProperty(0, parentHeight - appIconSize, appIconSize,appIconSize ,"", "",0);
property.mainImage = ATNativeItemProperty(padding ,padding, parentWidth-2*padding, parentHeight - appIconSize - 2*padding, "#ffffff", "#000000", 14);
property.title = ATNativeItemProperty(appIconSize + padding , parentHeight - appIconSize, parentWidth - 3* appIconSize -2 * padding, appIconSize/2 , "" , "#000000", appIconSize/3);
property.desc = ATNativeItemProperty(appIconSize + padding , parentHeight - appIconSize/2, parentWidth - 3* appIconSize -2 * padding, appIconSize/2 , "#ffffff" , "#000000", appIconSize/4);
// property.adLogo = ATNativeItemProperty(0,0,0,0,"#ffffff","#ffffff",14);
// property.rating = ATNativeItemProperty(0,0,0,0,"#ffffff","#ffffff",14);
#endif
ATCocosSdk::showNativeAd(nativePlacementId, property.toJsonString());
} else {
CCLOG("ATCocosSdk::isNativeAdReady is false");
}
3、移除原生广告
ATCocosSdk::removeNativeAd(nativePlacementId);