您好,登錄后才能下訂單哦!
Egret Native可以通過原生擴展能力接入第三方原生SDK,本文將為開發者介紹如何接入廣告系統。穿山甲是字節跳動提供的廣告接入SDK,提供了多種廣告樣式,具體信息可以參見其官方文檔。
穿山甲平臺準備
進入穿山甲平臺官網,完成注冊登錄,并按照平臺要求完成應用和代碼位的創建,具體操作可參照平臺幫助中心的說明。
**Android
下載示例 Demo**
白鷺引擎已經為開發者提供了示例Demo,開發者可以直接基于該Demo 學習如何接入穿山甲廣告SDK。demo項目包含一個egret工程,一個android工程,一個debug安裝包。
|-- openadsdk # 這是白鷺項目
|-- openadsdk-android # 這是白鷺發布的 EgretNative項目
|-- openadsdk_demo.apk # 這是生成的APK文件,開發者可以直接安裝預覽效果
工程配置
參考穿山甲官方接入文檔,或直接修改使用提供的android工程,并在Adcode.java文件中對應設置好應用id和代碼位code。
使用方法
步驟1:導入egret示例項目中的src/openadsdk;
步驟2:在您的egret項目中恰當的位置直接調用相關靜態方法。
目前包含五種廣告接入
1、SplashAd: 開屏廣告
設置您安卓工程中的AndroidManifest.xml文件,將SplashActivity作為啟動,并在需要的情況下修改該文件的goToMainActivity()方法跳轉到您指定的活動。值得注意的是,雖然sdk中提供了調起開屏廣告的api,但不應該這樣做,它并不像其他廣告類型那樣需要主動喚起。
<activity
android:name=".sdk.SplashActivity"
android:configChanges="keyboard|orientation|screenSize"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
2、RewardVideoAd:激勵視頻廣告激勵廣告需要設置如下參數,當回調事件參數的event屬性值為"onRewardVerify"時,會返回您需要的數據,如"verify",它表示獎勵是否有效。
//激勵廣告
const data = {
is_horizontal: false,//是否為橫屏廣告
userID: "user0",//用戶id
rewardAmount: 1,//獎勵數量
rewardName: "金幣"//獎勵名稱
}
openadsdk.RewardVideoAd((json) => {
console.log("激勵廣告事件:" + json)
const data = JSON.parse(json);
if(data.event === "onRewardVerify"){
const verify =data.verify;//是否有效
const amount =data.amount;//獎勵數量
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("關閉廣告")
}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: 全屏視頻廣告設置參數:是否為橫屏。
//全屏廣告
const data = {
is_horizontal: false,//是否為橫屏廣告
}
openadsdk.FullScreenVideoAd((json) => {
console.log("全屏廣告事件:" + json)
}, this, JSON.stringify(data))
4、BannerExpressAd: banner廣告參數包括是否在屏幕頂部,寬度,高度,【尺寸請和平臺設置保持一致】。
//banner廣告
const data = {
is_top:false,
width:600,
height:90
}
openadsdk.BannerExpressAd((json) => {
console.log("banner廣告事件:" + json)
}, this, JSON.stringify(data))
5、InteractionAd: 插屏廣告參數包括寬度,高度,【尺寸請和平臺設置保持一致】。
//插屏廣告
const data = {
width:900,
height:900
}
openadsdk.InteractionAd((json) => {
console.log("插屏廣告事件:" + json)
}, this, JSON.stringify(data))
步驟3:發布到對應android工程中
關于返回事件
在egret項目中,廣告回調的參數為json格式的字符串,其中event屬性說明了該事件的類型,類型說明如下,這邊只是轉發了穿山甲sdk原生的協議回調,并不是所有類型廣告都包含如下事件類型,如:激勵廣告無法跳過,banner廣告沒有視頻類消息,ios和android也不盡相同,提供的原生工程對廣告的封裝實現也是直接復制了穿山甲提供的工程源碼,所以,請嚴格測試,參考原生代碼,合理使用回調事件。
onAdClicked //廣告點擊
onAdShow //廣告出現
onAdDismiss //插屏廣告關閉
onError //錯誤
onSelected //banner關閉按鈕
onCancel //點擊取消
onAdVideoBarClick //視頻類bar點擊
onAdClose //廣告關閉
onVideoComplete //視頻類播放完成
onVideoError //視頻類錯誤
onRewardVerify //激勵確認
onSkippedVideo //視頻類跳過
iOS
下載示例Demo
白鷺引擎已經為開發者提供了示例Demo,開發者可以直接基于該Demo 學習如何接入穿山甲廣告SDK。demo項目包含一個egret工程,一個ios工程。
工程配置
參考穿山甲官方接入文檔,或直接修改使用提供的ios工程,這里詳細走一遍官方提供的CocoaPods流程。
步驟1:安裝cocoapods
gem install cocoapods
步驟2:下載Git LFS ,解壓,安裝
sudo sh install.sh
步驟3:cd到你的xcode工程中創建Podfile文件寫入如下,這里的'openadsdk'是xcode工程的項目target,也就是egret發布中填寫的應用名稱。
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'openadsdk' do
pod 'Bytedance-UnionAD'
end
步驟4:pod install
pod install
注:不同網絡環境下pod的安裝速度會有較大差異,首次安裝會有大概2G左右的文件下載,請耐心等待,并通過活動監視器查看下載速度,若速度過慢,請考慮設置git代理,或自行clone可用倉庫到本地。
步驟5:打開ios-template.xcworkspace
步驟6:參照官方接入中心IOS-SDK接入文檔中的《Xcode編譯選項設置》完成剩余工程配置
步驟7:文件修改
1:將示例ios工程中的ios-template/sdk文件夾導入到您的ios工程中;
2:參照示例ios工程中的AppDelegate.h修改您ios工程的對應文件;
3:為AppDelegate.mm添加如下兩個方法;
-(void)initJSEvent:(EgretNativeIOS*)native{
NSLog(@"InitJSEvent");
}
-(void)InitAD:(UIViewController*)root{
NSLog(@"InitAD");
}
并在didFinishLaunchingWithOptions中調用
//init
[self initJSEvent:_native];
[self InitAD:viewController];
return true;
4:在sdk/AdManager.h文件中設置您的廣告信息,如appKey,XXX_ID。
使用方法
目前包含五種廣告接入SplashAd: 開屏廣告開屏廣告的入口函數調用位于:
AppDelegate-Category.m //文件
-(void)setupBUAdSDK{} //方法
[self addSplashAD]; //語句
請根據需要注釋或保留,值得注意的是,雖然sdk中提供了調起開屏廣告的api,但不應該這樣做,它并不像其他廣告類型那樣需要主動喚起。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。