1. 程式人生 > >Unity接入百度廣告教程android篇

Unity接入百度廣告教程android篇

Unity 遊戲裡面接入百度,admob之類的廣告來增加遊戲的贏利是常用的增加收入的方法之一。
下面是我通過c#的方式在unity遊戲裡面接入百度移動廣告的過程
先下載百度移動廣告SDK外掛 github.com/unity-plugins/BaiDu-Unity-Plugin
BaiduUnityPlugin.unitypackage 是Baidu Unity 外掛主檔案,直接通過Unity的asset import進專案匯入導unity專案中


把Baidu Unity外掛新增進unity步驟如下
1. 開啟Unity工程
2. 從選單開啟,Assets -> Import Package -> Custom Package.
3. 選中Unity外掛檔案BaiduUnityPlugin.unitypackage
4. 選擇匯入所有內容,把baidu unity外掛內全部內容匯入導unity工程
5. 確認baidudemo.cs 已經匯入到專案中,如果沒有,請先從上面外掛中複製baidudemo.cs 到工程,並修改baidudemo.cs中的百度廣告ID
6. 把baidudemo.cs 拖到main camera 或者其他常在場景中的物件上


編譯執行工程專案
選擇選單File -> Build Settings 選擇Android平臺,選擇player settings設定平臺屬性,然後點選build
等待一會時間後應用將被安裝到連結到電腦的android裝置上,點開裝置就能看到廣告效果


Unity 整合baidu 廣告程式碼註解說明
[code]    using baidu;
    ...
    Baidu.Instance().initBaidu("app id", "banner id", "institial id", "video id");//id is got from ssp.baidu.com
    Baidu.Instance().showBannerRelative(AdSize.Banner, AdPosition.BOTTOM_CENTER, 0);
[/code]
上面是在Unity android和Unity iOS遊戲裡面整合baidu橫幅廣告
AdSize.Banner表示展示的廣告尺寸,AdPosition.BOTTOM_CENTER表示橫幅的放置位置,AdPosition裡面包含各個廣告位置常量,AdSize包含各個廣告尺寸常量




橫幅廣告相對位置
下面是所有支援的baidu橫幅廣告相對位置常量
[code]    AdPosition.TOP_LEFT
    AdPosition.TOP_CENTER
    AdPosition.TOP_RIGHT
    AdPosition.MIDDLE_LEFT
    AdPosition.MIDDLE_CENTER
    AdPosition.MIDDLE_RIGHT
    AdPosition.BOTTOM_LEFT
    AdPosition.BOTTOM_CENTER
    AdPosition.BOTTOM_RIGHT[/code]

下面是在Unity應用裡面整合百度廣告插屏廣告?
下面的Unity3d裡面新增baidu廣告的程式碼
[code]    using baidu;
    ...
    Baidu.Instance().initBaidu("app id", "banner id", "institial id", "video id");//id is got from ssp.baidu.com
    Baidu.Instance().loadInterstitial(); [/code]


和橫幅廣告不同,全屏廣告需要先載入,等載入完成後在合適的時間點展示廣告


[code]    if (Baidu.Instance().isInterstitialReady()) {
      Baidu.Instance().showInterstitial();
    }[/code]


百度移動廣告廣告事件處理
百度橫幅廣告和全屏廣告都有差不多的廣告事件,你可以在unity3d裡面監聽並處理所有百度移動廣告事件
下面是一個處理全屏廣告事件的例子,我們在收到廣告的時候就展示廣告
[code]    using baidu;
    ...
    Baidu.Instance().interstitialEventHandler += onInterstitialEvent;
    ...
    void onInterstitialEvent(string eventName, string msg)
    {
        Debug.Log("handler onBaiduEvent---" + eventName + "   " + msg);
        if (eventName == BaiduEvent.onAdLoaded)
        {
            Baidu.Instance().showInterstitial();
        }
    }[/code]