開發壹款App有了壹定的用戶量之後通常會想接入第三方廣告來實現變現,
然而在很多市場不讓這類帶廣告的App上架,除非接的是他們家的廣告.
在這裏我只能呵呵了.這點困難就想難倒我們.
那接下來ShowTime.怎麽做呢?
沒錯,就是插件化.
以廣點通廣告為例
這裏我使用的是360開源的 RePlugin ,具體介紹和使用方法請看官方文檔.
壹. RePlugin插件接入指南
第 1 步:添加 RePlugin Plugin Gradle 依賴
在項目根目錄的 build.gradle(註意:不是 app/build.gradle) 中添加 replugin-plugin-gradle 依賴:
第 2 步:添加 RePlugin Plugin Library 依賴
在 app/build.gradle 中應用 replugin-plugin-gradle 插件,並添加 replugin-plugin-lib 依賴:
接下來您就可以像正常接入廣告那樣,開發插件。生成出來的是APK,既可以“安裝到設備”,又可以“作為插件”使用。
二. RePlugin主程序接入指南
第 1 步:添加 RePlugin Host Gradle 依賴
在項目根目錄的 build.gradle(註意:不是 app/build.gradle) 中添加 replugin-host-gradle 依賴:
第 2 步:添加 RePlugin Host Library 依賴
在 app/build.gradle 中應用 replugin-host-gradle 插件,並添加 replugin-host-lib 依賴:
第 3 步:配置 Application 類
三. 宿主App 調用 插件廣告
1.編譯插件廣告,將生成的xx.apk包重命名xx.jar
將 xx.jar放到宿主App的 assets/plugins 目錄下 , Replugin將會自動獲取該內置插件
2.處理廣點通開屏廣告
由於廣點通開屏廣告的展示點擊都由SDK封裝處理了.
我們這裏采用的方式是,由宿主跳轉到插件的閃屏頁,在插件中完成請求,展示,點擊結束後回到宿主的主頁面.
(1)宿主跳轉到插件Activity
(2)插件開屏廣告請求處理,就按正常的廣告邏輯走
(3)插件回到宿主的主頁面
(4)宿主的清單文件中添加必要配置,否則廣告無反應
註意 : 盡量使宿主和插件的包名壹致,已避免廣告無收益
3.處理廣點通原生廣告
廣點通原生廣告不同於開屏廣告,其展示曝光和點擊曝光都由自己處理.
我們只能通過反射的方案去請求廣告
(1)在插件中先對廣告請求做壹層封裝
(2)宿主中反射LoadManager的requestNativeAD()方法
a.拿到插件的ClassLoader
b.取得需要反射的類
c.由於請求廣告的requestNativeAD()方法中有壹個參數是接口.
(這裏得使用動態代理)
取得被代理接口
d.接下來就是反射請求接口了
註意傳入的Context必須是插件的Context
e.在動態代理中取得回調
這裏我使用了EventBus將回調的廣告傳到請求的界面中
點擊曝光的反射
四.最後,第壹次寫文章,歡迎點評
宿主App : /AndWong/RePluginHostForAD/tree/master/app
插件App : /AndWong/RePluginHostForAD/tree/master/pluginApp