你正在使用老旧的 TGSDK 广告 SDK 版本!!!
目錄
1、導入 TGSDK 到工程
首先從 Yomob 官方下載頁 下載最新的 TGSDK 穩定版本。將下載好的 TGSDK.unity.x.x.x.unitypackage
文件導入到你的 Unity 項目中。
目前我們的 TGSDK 只支持 Unity 5.x 以上版本,如果你使用的是 Unity 4.x 或之前更老的版本,請聯繫我們
Android 設置啟動 Activity
【注意】 在 Assets/Plugins/Android/AndroidManifest.xml
文件中設置默認的啟動類 Activity 為:
com.soulgame.sgsdk.tgsdklib.unity.TGSDKUnityActivity
請保證你的項目使用的啟動 Activity 是該類或者該類的子類。如果你已經使用了自己的自定義 Activity 作為啟動 Activity,那麼你也可以手動添加方法到你的自定義 Activity 類中。
不要忘記在 Activity 的生命週期回調方法中調用 TGSDK 的同名方法
class YourCustomActivity extends UnityPlayerActivity {
@Override
protected void onStart() {
TGSDK.onStart(this);
super.onStart();
}
@Override
protected void onStop() {
TGSDK.onStop(this);
super.onStop();
}
@Override
protected void onPause() {
TGSDK.onPause(this);
super.onPause();
}
@Override
protected void onResume() {
TGSDK.onResume(this);
super.onResume();
}
@Override
protected void onDestroy() {
TGSDK.onDestroy(this);
super.onDestroy();
}
@Override
protected void onActivityResult(int reqCode, int resCode, Intent data) {
TGSDK.onActivityResult(this, reqCode, resCode, data);
super.onActivityResult(reqCode, resCode, data);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
TGSDK.onRequestPermissionsResult(this, requestCode, permissions, grantResults);
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
加入 Google Play Services 支持
如果你的產品最終要發佈到 Google Play 應用商店,那麼你需要在你的項目中加入 Google Play Services 支持,因為我們的廣告會依賴這個服務。
具體如何將 Google Play Services 引入你的項目,請參看 Google 的官方開發文檔。需要注意的是:
不需要將全部 Google Play Services 的庫導入你的項目中,我們只依賴
com.google.android.gms:play-services-ads com.google.android.gms:play-services-location com.google.android.gms:play-services-basement com.google.android.gms:play-services-gcm
Unity 項目如何加入 Google Play Services
Google 的官方開發文檔中並沒有針對 Unity 項目如何引入 Google Play Services 服務做詳細的說明。針對 Unity 項目需要手動複製相應的 Google Play Services 庫的 aar
文件並粘貼到你的項目中。你可以從這裡直接下載我們提供的 aar 文件直接複製粘貼到 TGSDK 提供的 libs 文件夾下面
Assets/Plugins/Android/libs
加入 Android Support V4 支持庫
【注意】Android Support v4 支持庫為強制依賴,請務必將其引入你的項目並且使用 26 版本以上的支持庫(支持庫向下兼容請勿擔心),否則可能會導致程序崩潰!
Googleplay版本sdk強制要求v4版本為26及以上
我們在 1.6.2(含)版本以上的 SDK 中默認放入了 v4 支持庫。如果你使用的是 1.6.2 以前的版本,則需要手動將支持庫加入你的項目。你可以在 Android SDK
目錄中找到該庫的 aar
文件手動添加。具體的庫文件地址
Your-Android-SDK-Path/extras/android/m2repository/com/android/support/support-v4
同樣,你可以將復制出來的 android.support.v4
庫的 aar
文件直接複製粘貼到 TGSDK 提供的 libs
文件夾下面
Assets/Plugins/Android/libs
【注意】Android Support v4 支持庫為強制依賴,請務必將其引入你的項目並且使用 26 版本以上的支持庫(支持庫向下兼容請勿擔心),否則可能會導致程序崩潰!
關於 Google AdMob 廣告
從 1.6.5
版本開始 YoMob 廣告 SDK 支持了 Google 的 AdMob 廣告。由於Google AdMob 廣告服務所屬與Google Player Services 的部分,所以需要參照《Google AdMob 官方指南》來將所需要的依賴添加到你的工程中。
com.google.android.gms:play-services-ads-lite
關於 Android 7.0許可權
1.在AndroidManifest.xml中的Application標籤中修改${applicationId}
為app的包名
2.混淆設定檔中加上:
-keep class android.support.v4.**{ *;}
避免support-V4包中的FileProvider程式碼被混淆。
iOS 工程 BitCode 支持
從 1.6.1
版本開始 iOS 版本(含對 Unity 的支持)的廣告 SDK 支持 iOS 的 BitCode
技術,使用者可以放心的打開項目對 BitCode
的支持。
【注意】支持
BitCode
後SDK 本身的體積會有一定的增大,用戶打包的iOS 工程體積也會相應的增大,但是用戶從蘋果商店下載到的應用體積會大幅度的減小,所以建議用戶請放心開啟BitCode
支持
iOS 出包注意事項
在 TGSDK 根目錄下有名為 TGPostProcess.cs
的專門用於 iOS 出包的腳本,該腳本使用相對工程的目錄進行 SDK 資源的拷貝、鏈接,所以如果 SDK 的相對目錄發生改變,則應該對出包腳本進行相應的修改。建議出包盡量在 Mac 環境中出包,Windows環境下可能會存在Bug。
2、初始化 TGSDK
從 Yomob官方網站 為產品註冊好賬戶後,你將會從網站得到你的產品對應的 AppID
使用這個參數來初始化 TGSDK

如果你的產品在國內髮型,並需要在多個應用渠道進行髮型,初始化的方法略有不同,具體請參見《支持多渠道分包》
using Together;
TGSDK.Initialize("Your application ID from yomob");
3、預加載廣告資源
為了有充裕的時間來加載廣告資源,建議儘早調用預加載 API 來開始廣告的加載工作。甚至你可以在初始化 TGSDK 的同時就開始調用廣告預加載 API 來預加載廣告。
注意! ! !你的應用使用的包名( package name )或 Bundle ID 必須和你在 Yomob 網站上註冊的一致,否則可能無法正常加載廣告資源,無法正常顯示廣告
using Together;
TGSDK.PreloadAd();
4、播放廣告
通過Yomob 官方網站 為註冊的應用建立廣告場景,獲得相應的廣告場景ID 後,通過場景ID 參數來判斷廣告是否已經準備好,如果對應場景的廣告已經準備好,則可以調用播放API 來播放對應場景的廣告。
using Together;
if (TGSDK.CouldShowAd("Your scene ID from yomob")) {
TGSDK.ShowAd("Your scene ID from yomob");
}
5、Banner類型廣告的播放
針對Banner廣告的特殊性,需要提前設置Banner廣告的類型以及位置:
TGSDK.SetBannerConfig(String scene, string type,
float x, float y,
float width, float height,
int interval);
參數解釋:
-
scene
Banner 廣告對應註冊的廣告場景 ID -
type
Banner 廣告尺寸類型, 其中分為三種類型:
Banner類型對應字符串 | Banner尺寸 |
---|---|
TGBannerNormal | 320*50 |
TGBannerLarge | 320*90 |
TGBannerMediumRectangle | 300*250 |
-
x、y
Banner 放置的位置對應的 X 坐標和 Y 坐標,單位:px -
width、height
Banner 廣告預留展示位置的寬高,單位:px -
interval
Banner 廣告輪播切換廣告內容的間隔時間,單位:秒
坐標以屏幕左上角為零點,interval為輪播時間,以秒為單位,建議在30-120範圍內。顯示Banner廣告:
if (TGSDK.CouldShowAd("Your scene ID from yomob")) {
TGSDK.ShowAd("Your scene ID from yomob");
}
需要時還可以關閉Banner廣告:
TGSDK.CloseBanner("Scene ID");
[注意] 當不需要展示Banner 廣告或者展示Banner 廣告的視圖被關閉銷毀時,請一定調用
[TGSDK closeBanner:@"Scene ID"]
方法手動關閉Banner 廣告,否則會影響下一次的Banner 廣告正常展示。
6、高級用法
開啟 Debug 模式
開啟 debug 模式後可以看到更多 Log 輸出,方便定位遇到的問題。但需要注意
在生產環境請勿使用 Debug 模式,另外,如果需要啟動 Debug 模式,請在調用初始化 API 前設置 Debug 模式的開啟
using Together;
TGSDK.SetDebugModel(true);
設置廣告預加載事件監聽
在調用 PreloadAd
方法預先加載廣告資源的過程中會產生一些事件通知,通過綁定回調函數來捕捉這些事件通知。示例:
// 使用 lambda 表達式
// 廣告配置數據獲取成功
TGSDK.PreloadAdSuccessCallback = (string ret) => {
};
// 廣告配置數據獲取失敗
TGSDK.PreloadAdFailedCallback = (string error) => {
};
// 獎勵視頻廣告已經準備好
TGSDK.AwardVideoLoadedCallback = (string ret) => {
};
// 插屏視頻廣告已經準備好
TGSDK.InterstitialVideoLoadedCallback = (string ret) => {
};
// 靜態插屏廣告已經準備好
TGSDK.InterstitialLoadedCallback = (string ret) => {
};
// 使用 Action<string>
public void OnPreloadAdSuccess(string ret) {
}
TGSDK.PreloadAdSuccessCallback = OnPreloadAdSuccess;
public void OnPreloadAdFailed(string error) {
}
TGSDK.PreloadAdFailedCallback = OnPreloadAdFailed;
public void OnAwardVideoLoadedCallback(string ret) {
}
TGSDK.AwardVideoLoadedCallback = OnAwardVideoLoadedCallback;
public void OnInterstitialVideoLoadedCallback(string ret) {
}
TGSDK.InterstitialVideoLoadedCallback = OnInterstitialVideoLoadedCallback;
public void OnInterstitialLoadedCallback(string ret) {
}
TGSDK.InterstitialLoadedCallback = OnInterstitialLoadedCallback;
【注意】
PreloadAdSuccessCallback
只表示成功的獲取了廣告配置數據,並不代表廣告本身加載完成,請不要根據此回調作為判斷是否可以播放廣告的依據
設置廣告播放行為事件監聽
在調用 ShowAd
方法播放廣告的過程中會產生相應的事件通知,通過綁定回調函數可以捕捉這些事件通知,示例:
// 使用 lambda 表達式
// 廣告成功開始播放回調
TGSDK.AdShowSuccessCallback = (string scene, string name) => {
};
// 廣告播放失敗回調
TGSDK.AdShowFailedCallback = (string scene, string name, string error) => {
};
// 廣告關閉回調,是否獎勵則在第三個參數award中fuck.yomob
TGSDK.AdCloseCallback = (string scene, string name, bool award) => {
};
// 廣告被用戶點擊的回調
TGSDK.AdClickCallback = (string scene, string name) => {
};
// 使用 Action<string>
public void OnAdShowSuccess(string scene, string name) {
}
TGSDK.AdShowSuccessCallback = OnAdShowSuccess;
public void OnAdShowFailed(string scene, string name, string error) {
}
TGSDK.AdShowFailedCallback = OnAdShowFailed;
public void OnAdClose(string scene, string name, bool award) {
}
TGSDK.AdCloseCallback = OnAdClose;
public void OnAdClick(string scene, string name) {
}
TGSDK.AdClickCallback = OnAdClick;
【注意】如果 banner 類型廣告回調
OnAdShowFailed
後說明 Banner 廣告加載失敗,廣告沒有正常顯示,需要手動調用TGSDK.CloseBanner
關閉當前展示的 Banner,然後可以再次嘗試調用TGSDK.ShowAd
重新展示 Banner 廣告。
廣告播放測試工具
此功能只在 TGSDK 1.6.5(含)以上版本中提供,建議升級您的 TGSDK 以獲得更好的使用體驗
請不要在生產環境使用此功能,此功能僅供測試
在測試階段,你可以使用廣告播放測試工具 API 來替代正常的廣告播放 API,這樣更方便你整體檢測廣告的加載情況和廣告的運行情況
使用廣告播放測試工具接口
TGSDK.ShowTestView("Your scene id from Yomob");
來替代廣告播放接口
TGSDK.ShowAd("Your scene id from Yomob");
將會彈出如下圖所示的 UI 界面,從中你可以檢查廣告插件的運行情況並通過點擊準備好播放的廣告插件來播放指定廣告商的廣告。

付費用戶追踪
此功能只在 TGSDK 1.7.0(含)以上版本中提供,建議升級您的 TGSDK 以獲得更好的使用體驗
Yomob在為您提供廣告變現優化服務的同時,也提供內付費(IAP)和廣告變現的聯合優化服務,以增加您應用的總收入。為此,您需要接入付費相關的API,向我們發送用戶付費行為數據,我們會提供如下相應優化功能:
-
每日付費、人均付費、人均廣告 + 付費總收入等數據統計。
-
廣告觀看與付費行為的交叉分析,分析付費/非付費用戶在廣告觀看行為上的差異。
-
智能優化算法對於付費/非付費用戶給予更為精準的廣告推送,提升eCPM。
-
可以針對付費行為進行個性化廣告策略配置,如對付費用戶減少廣告展示(提升付費潛力)、對非付費用戶增加廣告展示,進而提升總收入。
付費用戶追踪接口的具體形式為:
use Together;
TGSDK.TagPayingUser(TGPayingUser user,
float currency,
float currentAmount,
float totalAmount);
參數說明:
-
user 用於標識用戶的付費等級,目前可用的付費等級有:TGNonPayingUser(非付費用戶)、TGSmallPaymentUser(小額付費用戶)、TGMediumPaymentUser(中等額度付費用戶)、TGLargePaymentUser(大額付費用戶),具體額度等級用戶可根據自身產品決定
-
currency 用戶所在地區付費使用的貨幣標識,請遵循ISO 4217 標準
-
currentAmount 當前支付數額
-
totalAmount 用戶累計支付總數額
調用建議:
每當用戶成功完成一筆支付交易時通過該接口上報用戶交易行為,如果不方便統計用戶累計支付總額度的,用戶累計支付總額度可以傳 0
上報用戶觀看廣告行為
如果開發者想了解廣告場景對於用戶的吸引力,可以通過 API 主動上報一些關於用戶觀看廣告行為的數據。上報後,開發者在Dashboard 相關頁面可以查看並分析“場景展示- 點擊觀看”的轉化率情況,有助於開發者優化場景設計,以增加廣告播放量進而增加總收入。
上報廣告展示行為

如圖所示,當用戶通過產品UI 明確意識到產品即將發生廣告播放的行為,或是產品通過UI 展現了讓用戶選擇是否播放廣告的控件,例如圖示的產品展示了廣告播放按鈕讓用戶選擇是否通過播放廣告來獲得收益時,請上報告知TGSDK 這種行為
TGSDK.ShowAdScene("Your scene ID from yomob");
上報用戶拒絕觀看廣告行為

如圖所示,當用戶在明確意識到接下來要發生的廣告播放行為的情況下,明確選擇拒絕或放棄了這次廣告播放,例如,當用戶在圖示的產品中明確看到了通過觀看廣告獲得收益的播放按鈕UI,但是還是明確選擇了Give Up 放棄,那麼請上報這個行為告知TGSDK
TGSDK.ReportAdRejected("Your scene ID from yomob");
支持國內安卓多渠道分包
由於國內安卓市場的特殊性,你的產品如果在國內發行的話可能需要發佈到多個不同的應用商店,這時你在初始化TGSDK 時需要附帶應用所發行的應用商店的渠道標記,即ChannelId
,渠道標記請參看國內安卓渠道表
using Together;
#if UNITY_IOS && !UNITY_EDITOR
TGSDK.Initialize("Your application id from yomob");
#elif UNITY_ANDROID && !UNITY_EDITOR
TGSDK.Initialize("Your application id", "Your Channel id");
#endif
當然,為了方便大家多渠道打包你的安卓應用,我們也提供通過從AndroidManifest.xml
讀取AppId 和ChannelId 來初始化TGSDK,你需要做的是在你項目中的AndroidManifest.xml
文件中增加兩個項目
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.soulgame.tgsdksampleapp.android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<!-- 用於初始化 TGSDK -->
<meta-data android:name="TGSDK_APPID" android:value="Your application id from Yomob" />
<meta-data android:name="TGSDK_CHANNELID" android:value="Your channel id of app store" />
<activity
android:name=".MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
在 AndroidManifest.xml
中配置好 AppId 和 ChannelId 後,在你的代碼裡初始化 TGSDK 的時候你就無需再傳這兩個參數了。
using Together
#if UNITY_IOS && !UNITY_EDITOR
TGSDK.Initialize("Your application id from yomob");
#elif UNITY_ANDROID && !UNITY_EDITOR
TGSDK.Initialize();
#endif
由於 Unity 的跨平台特性,如果你需要在 iOS 平台依然使用上面的無參數初始化方法,那麼你需要在你的 Info.plist 文件中增加兩項
<key>TGSDK_APPID</key>
<string>Your application id from Yomob</string>
<key>TGSDK_CHANNELID</key>
<string>10006</string>
國內安卓渠道表
渠道ID 中文名稱 10010 360手機助手 10040 騰訊應用寶 10009 小米應用商店 10041 百度手機助手 10029 華為應用市場 10042 安卓市場 10024 步步高應用商店 10035 谷歌 10023 可可軟件商店 10037 豌豆莢 10017 安智市場 10043 魅族應用商店 10004 91助手 10034 中國聯通沃商店 10012 聯想樂商店
10026 宇龍酷派應用商店
10028 搜狗手機助手 10044 金立應用商店
10032 中國電信天翼空間 10033 中國移動 10001 快用應用商店 10003 PP手機助手 10002 同步推應用商店 10005 iToos 10008 易玩應用商店 10011 拇指玩應用商店 10013 金山應用商店 10015 海馬應用商店 10016 當樂應用商店 10018 UC瀏覽器應用商店 10030 優酷應用商店 10038 卓易市場 10045 手機qq 10046 微信游戲 10047 騰訊精品遊戲 10048 4399遊戲 10049 樂視遊戲 10050 天天遊戲 10021 應用匯 10051 新浪游戲 10052 網易 10053 Taptap 10054 酷安 10055 蟲蟲助手 10056 朋友玩