Egret Native可以通過原生擴展能力接入第三方原生SDK,本文將為開發(fā)者介紹如何接入廣告系統(tǒng)。穿山甲是字節(jié)跳動提供的廣告接入SDK,提供了多種廣告樣式,具體信息可以參見其官方文檔。
站在用戶的角度思考問題,與客戶深入溝通,找到和碩網(wǎng)站設(shè)計與和碩網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋和碩地區(qū)。穿山甲平臺準(zhǔn)備
進入穿山甲平臺官網(wǎng),完成注冊登錄,并按照平臺要求完成應(yīng)用和代碼位的創(chuàng)建,具體操作可參照平臺幫助中心的說明。
**Android
下載示例 Demo**
白鷺引擎已經(jīng)為開發(fā)者提供了示例Demo,開發(fā)者可以直接基于該Demo 學(xué)習(xí)如何接入穿山甲廣告SDK。demo項目包含一個egret工程,一個android工程,一個debug安裝包。
|-- openadsdk # 這是白鷺項目
|-- openadsdk-android # 這是白鷺發(fā)布的 EgretNative項目
|-- openadsdk_demo.apk # 這是生成的APK文件,開發(fā)者可以直接安裝預(yù)覽效果
工程配置
參考穿山甲官方接入文檔,或直接修改使用提供的android工程,并在Adcode.java文件中對應(yīng)設(shè)置好應(yīng)用id和代碼位code。
使用方法
步驟1:導(dǎo)入egret示例項目中的src/openadsdk;
步驟2:在您的egret項目中恰當(dāng)?shù)奈恢弥苯诱{(diào)用相關(guān)靜態(tài)方法。
目前包含五種廣告接入
1、SplashAd: 開屏廣告
設(shè)置您安卓工程中的AndroidManifest.xml文件,將SplashActivity作為啟動,并在需要的情況下修改該文件的goToMainActivity()方法跳轉(zhuǎn)到您指定的活動。值得注意的是,雖然sdk中提供了調(diào)起開屏廣告的api,但不應(yīng)該這樣做,它并不像其他廣告類型那樣需要主動喚起。
2、RewardVideoAd:激勵視頻廣告激勵廣告需要設(shè)置如下參數(shù),當(dāng)回調(diào)事件參數(shù)的event屬性值為"onRewardVerify"時,會返回您需要的數(shù)據(jù),如"verify",它表示獎勵是否有效。
//激勵廣告
const data = {
is_horizontal: false,//是否為橫屏廣告
userID: "user0",//用戶id
rewardAmount: 1,//獎勵數(shù)量
rewardName: "金幣"http://獎勵名稱
}
openadsdk.RewardVideoAd((json) => {
console.log("激勵廣告事件:" + json)
const data = JSON.parse(json);
if(data.event === "onRewardVerify"){
const verify =data.verify;//是否有效
const amount =data.amount;//獎勵數(shù)量
const name =data.name;//獎勵名稱
}else if(data.event === "onAdShow"){
console.log("廣告顯示")
}else if(data.event === "onAdVideoBarClick"){
console.log("點擊banner")
}else if(data.event === "onAdClose"){
console.log("關(guān)閉廣告")
}else if(data.event === "onVideoComplete"){
console.log("視頻播放完畢")
}else if(data.event === "onVideoError"){
console.log("視頻播放錯誤")
}else if(data.event === "onSkippedVideo"){
console.log("跳過")
}
}, this, JSON.stringify(data))
3、FullScreenVideoAd: 全屏視頻廣告設(shè)置參數(shù):是否為橫屏。
//全屏廣告
const data = {
is_horizontal: false,//是否為橫屏廣告
}
openadsdk.FullScreenVideoAd((json) => {
console.log("全屏廣告事件:" + json)
}, this, JSON.stringify(data))
4、BannerExpressAd: banner廣告參數(shù)包括是否在屏幕頂部,寬度,高度,【尺寸請和平臺設(shè)置保持一致】。
//banner廣告
const data = {
is_top:false,
width:600,
height:90
}
openadsdk.BannerExpressAd((json) => {
console.log("banner廣告事件:" + json)
}, this, JSON.stringify(data))
5、InteractionAd: 插屏廣告參數(shù)包括寬度,高度,【尺寸請和平臺設(shè)置保持一致】。
//插屏廣告
const data = {
width:900,
height:900
}
openadsdk.InteractionAd((json) => {
console.log("插屏廣告事件:" + json)
}, this, JSON.stringify(data))
步驟3:發(fā)布到對應(yīng)android工程中
關(guān)于返回事件
在egret項目中,廣告回調(diào)的參數(shù)為json格式的字符串,其中event屬性說明了該事件的類型,類型說明如下,這邊只是轉(zhuǎn)發(fā)了穿山甲sdk原生的協(xié)議回調(diào),并不是所有類型廣告都包含如下事件類型,如:激勵廣告無法跳過,banner廣告沒有視頻類消息,ios和android也不盡相同,提供的原生工程對廣告的封裝實現(xiàn)也是直接復(fù)制了穿山甲提供的工程源碼,所以,請嚴(yán)格測試,參考原生代碼,合理使用回調(diào)事件。
onAdClicked //廣告點擊
onAdShow //廣告出現(xiàn)
onAdDismiss //插屏廣告關(guān)閉
onError //錯誤
onSelected //banner關(guān)閉按鈕
onCancel //點擊取消
onAdVideoBarClick //視頻類bar點擊
onAdClose //廣告關(guān)閉
onVideoComplete //視頻類播放完成
onVideoError //視頻類錯誤
onRewardVerify //激勵確認(rèn)
onSkippedVideo //視頻類跳過
iOS
下載示例Demo
白鷺引擎已經(jīng)為開發(fā)者提供了示例Demo,開發(fā)者可以直接基于該Demo 學(xué)習(xí)如何接入穿山甲廣告SDK。demo項目包含一個egret工程,一個ios工程。
工程配置
參考穿山甲官方接入文檔,或直接修改使用提供的ios工程,這里詳細(xì)走一遍官方提供的CocoaPods流程。
步驟1:安裝cocoapods
gem install cocoapods
步驟2:下載Git LFS ,解壓,安裝
sudo sh install.sh
步驟3:cd到你的xcode工程中創(chuàng)建Podfile文件寫入如下,這里的'openadsdk'是xcode工程的項目target,也就是egret發(fā)布中填寫的應(yīng)用名稱。
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'openadsdk' do
pod 'Bytedance-UnionAD'
end
步驟4:pod install
pod install
注:不同網(wǎng)絡(luò)環(huán)境下pod的安裝速度會有較大差異,首次安裝會有大概2G左右的文件下載,請耐心等待,并通過活動監(jiān)視器查看下載速度,若速度過慢,請考慮設(shè)置git代理,或自行clone可用倉庫到本地。
步驟5:打開ios-template.xcworkspace
步驟6:參照官方接入中心IOS-SDK接入文檔中的《Xcode編譯選項設(shè)置》完成剩余工程配置
步驟7:文件修改
1:將示例ios工程中的ios-template/sdk文件夾導(dǎo)入到您的ios工程中;
2:參照示例ios工程中的AppDelegate.h修改您ios工程的對應(yīng)文件;
3:為AppDelegate.mm添加如下兩個方法;
-(void)initJSEvent:(EgretNativeIOS*)native{
NSLog(@"InitJSEvent");
}
-(void)InitAD:(UIViewController*)root{
NSLog(@"InitAD");
}
并在didFinishLaunchingWithOptions中調(diào)用
//init
[self initJSEvent:_native];
[self InitAD:viewController];
return true;
4:在sdk/AdManager.h文件中設(shè)置您的廣告信息,如appKey,XXX_ID。
使用方法
目前包含五種廣告接入SplashAd: 開屏廣告開屏廣告的入口函數(shù)調(diào)用位于:
AppDelegate-Category.m //文件
-(void)setupBUAdSDK{} //方法
[self addSplashAD]; //語句
請根據(jù)需要注釋或保留,值得注意的是,雖然sdk中提供了調(diào)起開屏廣告的api,但不應(yīng)該這樣做,它并不像其他廣告類型那樣需要主動喚起。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。