如何接入广告(Lua)

来自AnySDK 文档
跳转至: 导航搜索

接入anysdk-lua框架

按照( http://docs.anysdk.com/LuaTutorial )接入anysdk-lua的框架。

初始化插件

--for anysdk
local agent = AgentManager:getInstance()
--cclog("agent is---" .. type(agent))
--init
local appKey = "BA5B660B-6DD5-0F67-8CC7-8FE0BA7545D6";
local appSecret = "e23ae7d6da34334d4cc11df0dc7f3de0";
local privateKey = "76E1D975EA4B9A4ECD0E85AF2D782E99";
local oauthLoginServer = "http://oauth.anysdk.com/api/OauthLoginDemo/Login.php";
agent:init(appKey,appSecret,privateKey,oauthLoginServer)
--load
agent:loadAllPlugins()

备注:在什么地方初始化呢,在进入游戏之后的,需要调用插件之前,任何能调用到的地方,都可以进行初始化。注意保持agent可以在使用的时候调用到,也就是init 和 loadAllPlugins最好只进行一次。

获取广告插件

这是获取我们要使用的广告插件:

local ads_plugin = agent:getAdsPlugin()

是否支持该类型的广告

local bSupport = ads_plugin:isAdTypeSupported(AdsType.AD_TYPE_BANNER)

一般用法:

if( ads_plugin:isAdTypeSupported(AdsType.AD_TYPE_BANNER) )  then
    ads_plugin:showAds(AdsType.AD_TYPE_BANNER)
end
if( ads_plugin:isAdTypeSupported(AdsType.AD_TYPE_FULLSCREEN) )  then
    ads_plugin:showAds(AdsType.AD_TYPE_FULLSCREEN)
end
if( ads_plugin:isAdTypeSupported(AdsType.AD_TYPE_MOREAPP) )  then
    ads_plugin:showAds(AdsType.AD_TYPE_MOREAPP)
end
if( ads_plugin:isAdTypeSupported(AdsType.AD_TYPE_OFFERWALL) )  then
    ads_plugin:showAds(AdsType.AD_TYPE_OFFERWALL)
end

设置监听函数

local function onAdsListener( code, msg )
   print("on ads action listener.")
end
ads_plugin:setAdsListener(onAdsListener)

备注:广告监听函数,会返回两种不同情况,需要加以判断。

local function onAdsListener( code, msg )
   print("on ads action listener.")
   if( type(code) == "number" )
   {
        print("show ads result code:" .. code)
        print("show ads result message:" .. msg)   --msg可能为空
   }
   else
   {
        print("get ads points:" .. msg)    --此时code的类型 ProtocolAds
   }
end

展示和隐藏广告

广告类型

AdsType = {
	"AD_TYPE_BANNER",		--/**< enum value is banner ads . */
	"AD_TYPE_FULLSCREEN",		--/**< enum value is fullscreen ads . */
	"AD_TYPE_MOREAPP",		--/**< enum value is moreapp ads . */
	"AD_TYPE_OFFERWALL"		--/**< enum value is offerwall ads . */
};

展示广告

显示banner广告(第二个参数index可以不填,会默认为1)

ads_plugin:showAds(AdsType.AD_TYPE_BANNER)

备注:有一些广告支持多个banner和插屏广告,这时可以用第二个参数index, 1表示添加的第一个banner广告,2表示添加的第二个bannner广告

ads_plugin:showAds(AdsType.AD_TYPE_BANNER, 1)

隐藏广告

隐藏banner广告(第二个参数index可以不填,会默认为1)

ads_plugin:hideAds(AdsType.AD_TYPE_BANNER)

预加载广告

预加载插屏广告(第二个参数index可以不填,会默认为1)

ads_plugin:preloadAds(AdsType.AD_TYPE_FULLSCREEN)

有积分广告

有积分广告一般有精品广告(AD_TYPE_MOREAPP)和积分墙广告(AD_TYPE_OFFERWALL)两种。

查询积分

local points = ads_plugin:queryPoints()

消费积分

ads_plugin:spendPoints(points)

怎么确认接入完成?

1:获取ads_plugin之后,可以打印一下type(ads_plugin),不为空;
2:调用showAds,执行
    ads_plugin:showAds(AdsType.AD_TYPE_BANNER) 之后,显示一个广告框。

使用anysdk工具打包

1:打开anysdk工具并登录;
2:在配置管理界面,sdk管理界面选择广告类型里面的 sdk;
3:在参数配置里面配置该sdk的参数(参数获取,需要到对应sdk的后台获取);
4:在打包界面,在渠道列表选择之前配置的渠道,并选择自己的游戏,点击开始打包。