關(guān)于iOS接入VungleSDK你想知道的都在這

寫(xiě)在前面

什么是VungleSDK 侯养?VungleSDK一個(gè)廣告平臺(tái)的SDK。

0敞葛、相關(guān)鏈接

VungleSDK管理平臺(tái)
VungleSDK相關(guān)文檔

1狮惜、工作原理

init SDK -->loading -->play --> remove cache --> loading
簡(jiǎn)而言之,就是初始化-->加載緩存廣告視頻-->播放-->清除對(duì)應(yīng)播放的緩存視頻-->加載緩存新的廣告視頻
如果網(wǎng)速足夠快的話摘悴,在看完一個(gè)廣告之前峭梳,就已經(jīng)成功緩存好新的廣告,下次播放即可實(shí)現(xiàn)0秒等待

2烦租、開(kāi)始接入

步驟1:添加 Vungle 框架到您的 Xcode 項(xiàng)目

添加 VungleSDK.framework 到您的項(xiàng)目

分為Cocoapods接入手動(dòng)接入延赌,參考文檔即可正常接入除盏。
這里要說(shuō)一下關(guān)于手動(dòng)添加,鏈接一些其他的本地框架挫以,其實(shí)*.framework的者蠕,新版本的Xcode,都可以不用手動(dòng)添加了掐松,可以參考我的另一篇文章

添加“ObjC”鏈接器標(biāo)記踱侣,如圖:

other link.png

步驟2:刪除 iOS 狀態(tài)欄

作用應(yīng)該在于廣告的全屏正常顯示,在項(xiàng)目的info文件中添加大磺,右鍵點(diǎn)擊該文件-->Open as --> Source code

<key>UIStatusBarTintParameters</key>
    <dict>
        <key>UINavigationBar</key>
        <dict>
            <key>Style</key>
            <string>UIBarStyleDefault</string>
            <key>Translucent</key>
            <false/>
        </dict>
    </dict>

步驟3:添加代碼

注意:調(diào)用初始化的方法抡句,就開(kāi)始緩存廣告了,有可能初始化還沒(méi)成功杠愧,就成功緩存待榔,這種情況下,需要先對(duì)這個(gè)屬性initialized進(jìn)行判斷流济,否則直接調(diào)用play會(huì)不成功

初始化SDK

- (BOOL)startWithAppId:(nonnull NSString *)appID placements:(nonnull NSArray *)placements error:(NSError **)error;

一旦初始化成功锐锣,以下回調(diào)會(huì)被調(diào)用:

- (void)vungleSDKDidInitialize;

一旦初始化失敗,以下回調(diào)會(huì)被調(diào)用:

-(void)vungleSDKFailedToInitializeWithError:(NSError *)error;

注意:

  • appID需要在管理后臺(tái)中創(chuàng)建應(yīng)用獲取绳瘟,placements這是默認(rèn)廣告位雕憔,可以有多個(gè),具體需要在管理后臺(tái)進(jìn)行配置糖声,拿到placementID放入該數(shù)組斤彼。
  • 調(diào)用這個(gè)函數(shù),如果appID 和 placements兩個(gè)參數(shù)都為nil蘸泻,會(huì)返回FALSE世曾。如果其中一個(gè)參數(shù)是nil扬虚,或者錯(cuò)誤毕匀,則回調(diào)vungleSDKFailedToInitializeWithError涡尘。
  • 一個(gè)placementID代表一個(gè)廣告位,一個(gè)廣告位的廣告歼争,每次打開(kāi)都是不同的拜马,因?yàn)榇蜷_(kāi)后會(huì)清除緩存,重新緩存新的廣告沐绒。

為廣告位置加載廣告

- (BOOL)loadPlacementWithID:(NSString *)placementID error:(NSError **)error;

注意:

  • loadPlacementWithID返回YES俩莽,不代表緩存成功,只能代表加載成功乔遮,緩存還是需要一定的時(shí)間的扮超。

一旦緩存成功,會(huì)回調(diào)這個(gè)方法:

- (void)vungleAdPlayabilityUpdate:(BOOL)isAdPlayable placementID:(nullable NSString *)placementID; 

注意

  • 初始化SDK的時(shí)候,默認(rèn)是有一個(gè)廣告位(placementID)為自動(dòng)緩存出刷,具體可以在管理后臺(tái)進(jìn)行設(shè)置你想要的廣告位為默認(rèn)緩存璧疗,也就是說(shuō),調(diào)用SDK初始化的方法馁龟,還沒(méi)回調(diào)成功崩侠,有可能該廣告位已經(jīng)緩存廣告成功了。實(shí)測(cè)是這樣的坷檩。

可以通過(guò)調(diào)用以下方法却音,來(lái)判斷該廣告位的廣告是否具備可播放的性質(zhì),一旦返回YES,即說(shuō)明該廣告可播放矢炼,進(jìn)而調(diào)用play的函數(shù):

- (BOOL)isAdCachedForPlacementID:(nonnull NSString *)placementID;

播放廣告

一旦確定廣告位置的廣告已準(zhǔn)備好系瓢,可使用以下方法來(lái)播放廣告:

- (BOOL)playAd:(UIViewController *)controller options:(nullable NSDictionary *)options placementID:(nullable NSString *)placementID error:( NSError *__autoreleasing _Nullable *_Nullable)error;

開(kāi)始播放 和 結(jié)束播放,都有對(duì)應(yīng)的回調(diào)句灌,如下:

- (void)vungleWillShowAdForPlacementID:(nullable NSString *)placementID;
- (void)vungleWillCloseAdWithViewInfo:(VungleViewInfo *)info placementID:(NSString *)placementID;

Flex Feed 廣告

非全屏廣告夷陋,具體請(qǐng)參考文檔。

我的接入

我的接入思路涯塔,以及遇到的問(wèn)題

1肌稻、因?yàn)槲易龅氖荢DK,現(xiàn)在在我的SDK項(xiàng)目中匕荸,接入VungleSDK,等于說(shuō)枷邪,我暴露出去的榛搔,分為兩個(gè)函數(shù),接入我的SDK东揣,需要開(kāi)APP啟動(dòng)的時(shí)候先調(diào)用第一個(gè)函數(shù)践惑,然后具體在播放的時(shí)機(jī),再調(diào)用第二個(gè)函數(shù)嘶卧。如下:

//初始化并開(kāi)始緩存
-(void)startCacheAdvertisingSuccess:(EventBlock)initSuccessBlock
                            failure:(EventBlock)initFailureBlock;
//開(kāi)始播放
-(void)showAdvertisingWithCloseTipsTitle:(NSString*)closeTipsTitle
                        closeTipsContent:(NSString*)closeTipsContent
                               startPlay:(EventBlock)startPlayBlock
                                 endPlay:(EventBlock)endPlayBlock
                             playFailure:(FailureBlock)playFailureBlock;

2尔觉、由于SDK緩存全看網(wǎng)速,在必要的時(shí)候芥吟,需要我手動(dòng)遍歷侦铜,未cache的則調(diào)用loading,并做一些等待提示钟鸵,緩存成功钉稍,需要直接播放。如果是自動(dòng)緩存棺耍,則只有開(kāi)發(fā)者調(diào)用時(shí)才播放贡未。

-(void)loadAllPlacement{
    WEAKSELF;
    [self.placementIDsArray enumerateObjectsUsingBlock:^(NSString *placementID, NSUInteger idx, BOOL * _Nonnull stop) {
        //已經(jīng)緩存的,不再緩存
        if (![self.sdk isAdCachedForPlacementID:placementID]) {
            NSError *error = nil;
            [weakSelf.sdk loadPlacementWithID:placementID error:&error];
        }
    }];
}
//獲取已緩存的廣告位
-(NSArray*)alreadyCachedPlacement:(NSArray*)allArr{
    __block NSMutableArray *arr = [NSMutableArray array];
    [allArr enumerateObjectsUsingBlock:^(NSString  *placementID, NSUInteger idx, BOOL * _Nonnull stop) {
        if ([self.sdk isAdCachedForPlacementID:placementID]) {
            [arr addObject:placementID];
        }
    }];
    return arr;
}

遇到的問(wèn)題

在管理后臺(tái)新增一個(gè)應(yīng)用后,添加一個(gè)廣告位俊卤,只有一個(gè)廣告的時(shí)候嫩挤,該廣告位為自動(dòng)緩存的廣告位。
寫(xiě)好自己的demo之后消恍,使用了VungleSDK官方的文檔中提供的appID 和 placements俐镐,發(fā)現(xiàn)我的demo能夠正常播放廣告,可是使用了自己管理后臺(tái)的哺哼,就不能正常播放廣告佩抹,要么沒(méi)播放完就停止播放并且黑屏,要么點(diǎn)擊廣告關(guān)閉按鈕后黑屏取董。由此我猜想是:該廣告位對(duì)應(yīng)的測(cè)試狀態(tài)下的廣告有問(wèn)題棍苹,不能正常緩存。

解決問(wèn)題

于是茵汰,找了他們官方的文檔半天(大概是這個(gè)位置)枢里,才找到一個(gè)支持郵箱(monetize@vungle.com),于是有了以下對(duì)話:

我發(fā)郵件尋求幫助:


郵件1.png

技術(shù)支持的回復(fù):(注意:這里說(shuō)是一般需要30分鐘才生效u逦纭)


郵件2.png

我的建議:


郵件3.png

技術(shù)支持的回復(fù):


郵件4.png

小結(jié)

有趣栏豺,VungleSDK很少人用?反正基本找不到相關(guān)的接入教程豆胸,相關(guān)官方文檔也沒(méi)有人評(píng)論奥洼,而官方文檔又沒(méi)有提示這個(gè)測(cè)試廣告有問(wèn)題的幺蛾子!還好官方的工作人員郵件倒是回復(fù)的很快晚胡,因此結(jié)合文檔灵奖,堅(jiān)定自己的判斷,就解決問(wèn)題了估盘。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓷患,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子遣妥,更是在濱河造成了極大的恐慌擅编,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箫踩,死亡現(xiàn)場(chǎng)離奇詭異爱态,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)班套,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)肢藐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吱韭,你說(shuō)我怎么就攤上這事吆豹∮愕模” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵痘煤,是天一觀的道長(zhǎng)凑阶。 經(jīng)常有香客問(wèn)我,道長(zhǎng)衷快,這世上最難降的妖魔是什么宙橱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蘸拔,結(jié)果婚禮上师郑,老公的妹妹穿的比我還像新娘。我一直安慰自己调窍,他們只是感情好宝冕,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著邓萨,像睡著了一般地梨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缔恳,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天宝剖,我揣著相機(jī)與錄音,去河邊找鬼歉甚。 笑死万细,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铃芦。 我是一名探鬼主播雅镊,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼刃滓!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起耸弄,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤咧虎,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后计呈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體砰诵,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年捌显,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茁彭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡扶歪,死狀恐怖理肺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤妹萨,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布年枕,位于F島的核電站,受9級(jí)特大地震影響乎完,放射性物質(zhì)發(fā)生泄漏熏兄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一树姨、第九天 我趴在偏房一處隱蔽的房頂上張望摩桶。 院中可真熱鬧,春花似錦帽揪、人聲如沸硝清。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)耍缴。三九已至,卻和暖如春挽霉,著一層夾襖步出監(jiān)牢的瞬間防嗡,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工侠坎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蚁趁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓实胸,卻偏偏與公主長(zhǎng)得像他嫡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庐完,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容