在 Unity 中使用 Google AdMob
以下說明如何在 Unity 中使用 Google AdMob
- 在 Unity 編輯器中,
Edit
->Project Settings
->Package Manager
,輸入以下資料並儲存1
2
3Name: OpenUPM
URL: https://package.openupm.com
Scopes: com.google - 在 Unity 編輯器中,
Window
->Package Manager
開啟Package Manager
,找到Google Mobile Ads for Unity
並按下 Install 安裝。 - 在 Unity 編輯器中,
Project Settings
->Player
->Android
->Publishing Settings
->Build
確認Custom Gradle Properties Template
和Custom Gradle Settings Template
有被勾選。 - 在 Unity 編輯器中,選取
Assets
->External Dependency Manager
->Android Resolver
->Resolve
,讓 Unity External Dependency Manager 程式庫將已宣告的依附元件複製到 Unity 應用程式的Assets/Plugins/Android
目錄中。 - 在 Unity 編輯器中,選取選單中的
Assets
->Google Mobile Ads
->Settings
,設定 AdMob 應用程式 ID - 在載入廣告之前,需要呼叫
MobileAds.Initialize()
讓應用程式初始化 Google Mobile Ads SDK。初始化只需執行一次,最好是在應用程式啟動時執行。1
2
3
4
5
6
7public class LoadGoogleMobileAdsScript : MonoBehaviour
{
public void Start()
{
MobileAds.Initialize(initStatus => { });
}
} - 可以使用以下 id 使用測試廣告進行測試
1
2
3
4
5
6
7
private string _adUnitId = "ca-app-pub-3940256099942544/6300978111";
private string _adUnitId = "ca-app-pub-3940256099942544/2934735716";
private string _adUnitId = "unused"; - 使用橫幅廣告 (
Banner Ad
)- 使用
BannerView
類建立橫幅廣告1
2
3
4
5
6
7
8
9// _adUnitId :BannerView 應從中載入廣告的廣告單元 ID。
// AdSize :您要使用的廣告尺寸。詳情請參閱「橫幅廣告尺寸」。
// AdPosition :橫幅廣告應放置的位置。AdPosition 列舉了有效的廣告排序值。
BannerView bannerView = new BannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
```
2. 使用 request 載入廣告
```csharp
var adRequest = new AdRequest();
bannerView.LoadAd(adRequest); - 使用後記得用銷毀廣告
1
2
3
4
5if (bannerView != null)
{
bannerView.Destroy();
bannerView = null;
} - 完整程式碼
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55public class BannerAd : MonoBehaviour
{
private string _adUnitId = "ca-app-pub-3940256099942544/6300978111";
private string _adUnitId = "ca-app-pub-3940256099942544/2934735716";
private string _adUnitId = "unused";
private BannerView _bannerView;
void Start()
{
LoadAd();
}
private void OnEnable()
{
LoadAd();
}
private void OnDisable()
{
DestroyAd();
}
public void CreateBannerView()
{
if (_bannerView != null)
{
DestroyAd();
}
_bannerView = new BannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
}
public void LoadAd()
{
if (_bannerView == null)
{
CreateBannerView();
}
var adRequest = new AdRequest();
_bannerView.LoadAd(adRequest);
}
public void DestroyAd()
{
if (_bannerView != null)
{
_bannerView.Destroy();
_bannerView = null;
}
}
}
- 使用
Reference: