菜单

原生广告

1. 原生广告调用说明

1.1 API说明

类名:ATCocosSdk

API参数说明功能说明
loadNativeAdconst char * placementId, cocos2d::ValueMap parameters用于加载native广告
unitId为广告位id;
parameters可为第三方平台设置信息
showNativeAdconst char * placementId, std::string parameters展示指定广告位的Native广告
parameters为指定native广告展示的位置
showNativeAdInScenarioconst char * placementId, std::string parameters, const char * scenario展示指定广告位的Native广告
parameters为指定native广告展示的位置, scenario为广告展示场景,可从后台创建场景参数
removeNativeAdconst char * placementId移除原生广告
isNativeAdReadyconst char * placementId判断指定广告位的广告是否加载完成
checkNativeAdStatusconst char * placementId获取当前广告位的状态(Json字符串):
1、isLoading:是否正在加载
2、isReady:是否有广告缓存(与isNativeAdReady作用相同)
3、AdInfo:当前优先级最高的广告缓存信息
setNativeAdListenerATCocosNativeAdListener * listener, const char * placementId设置回调对象

1.2 Listener回调方法说明

接口:ATNativeListener

API参数说明功能说明
onNativeAdLoadSuccessconst char * placementId广告加载完成
onNativeAdLoadFailedconst char * placementId, const char * errorString广告加载失败
errorMsg为加载失败的原因
onNativeAdShowWithExtraconst char * placementId, const char * extra广告位展示
extra包含当前广告的其他信息
onNativeAdClickWithExtraconst char * placementId, const char * extra广告位产生点击
extra包含当前广告的其他信息
onNativeAdVideoStartWithExtraconst char * placementId, const char * extra原生视频播放开始,不同network可能支持不一样
extra包含当前广告的其他信息
onNativeAdVideoEndWithExtraconst char * placementId, const char * extra原生视频播放结束,不同network可能支持不一样
extra包含当前广告的其他信息
onNativeAdCloseButtonTappedWithExtraconst char * placementId, const char * extra点击了关闭按钮
extra包含当前广告的其他信息

1.3 素材对象说明

素材对象:ATNativeProperty

API属性说明功能说明
ATNativePropertyATNativeItemProperty 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参数说明功能说明
ATNativeItemPropertyint 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.4 调用示例

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);


最近修改: 2025-05-30Powered by