---
description: Là Plugin để giúp Dev tích hợp NativeAd nhanh nhất có thể
---

# NativeAd

## 1. Điều kiện bắt buộc

* Trong Project phải có GoogleMobileAds: [Xem hướng dẫn tại đây](https://developers.google.com/admob/unity/quick-start)
* Cần có `MobileAds.RaiseAdEventsOnUnityMainThread = true;` trước khi gọi MobileAds.Initialize(initStatus). Gọi lúc khi bắt đầu ứng dụng
* Cần thực hiện `MobileAds.Initialize(initStatus)` để khởi tạo MobileAds. Gọi khi bắt đầu ứng dụng
* Import CSCMobiLogger: [Download tại đây](https://gitlab.com/cscmobistudios/gsm-sdk/-/tree/main/Unity/CSCMobiPlugin/Logger?ref_type=heads)



## 2. Download Plugin

* Download: [AdmobNativeAd\_v0.0.1.1.unitypackage](https://gitlab.com/cscmobistudios/gsm-sdk/-/tree/main/Unity/CSCMobiPlugin/AdmobMediation)

## 3. Sử dụng

### 3.1 Bước 1: Kéo Prefab AdmobNativeAdPoolManager vào game

* Vào _**Assets** => **CSCPlugin** => **AdmobMediation** => **AdmobNativeAd** => **Prefabs**_&#x20;
* Kéo Prefab **AdmobNativeAdPoolManager** vào đầu game, nơi Scene đầu tiên của game
* Thiết lập các thông số trong AdmobNativeAdPoolManager:
  * **Auto Load**: Cờ bật tắt tự động load quảng cáo ban đầu vào pool. Nếu đặt AutoLoad = false thì cần call method Init để load quảng cáo theo logic của game
  * **AdUnitId**: là Id của quảng cáo native
  * **Init Pool Size**: là số lượng quảng cáo sẽ được load trước vào pool. (<mark style="color:red;">**Lưu ý**</mark><mark style="color:red;">:</mark> _Cần tùy biến số lượng phù hợp, để tránh load nhiều mà không hiển thị hết, gây ra tỉ lệ Show Rate kém_)
  * **Max Pool Size**: Là số lương quảng cáo tối đa sẽ được lưu trữ vào Pool.
  * **Next Load Delay Seconds**: Là số giây delay cho mỗi lần load quảng cáo trong Pool. Yêu cầu từ 5s trở lên
  * **Load Ad After Fail Seconds**: Là số giây delay cho mỗi lần load quảng cáo bị fail của Pool. Yêu cầu từ 10s trở lên
  * **Max Load Fail Count**: Là số lượng tối đa load lại quảng cáo khi bị fail

<figure><img src="https://2104621774-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgeyYu23aXsOKQRAzehmS%2Fuploads%2Fxht2I8ifCTqCiw7dDlOt%2Fimage.png?alt=media&#x26;token=c8060575-d6cb-4bcd-b4d0-fc8aa799b8ce" alt=""><figcaption></figcaption></figure>

### 3.2 Tạo Script quản lý NativeAd

* _Tạo 1 Script kế thừa từ class **`AdmobNativeAd`**_

Code mẫu:

```csharp
public class NativeAdItem : AdmobNativeAd
{
}
```

* _Overide các method để lắng nghe sự kiện_

```csharp
protected override void OnStartLoadAd()
{
    //Bắt đầu quảng cáo được load
}
protected override void OnNativeAdLoaded(object sender)
{
    //Quảng cáo được load thành công
}
protected override void OnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    //Quảng cáo load fail
}
protected override void OnPaidEvent(NativeAd nativeAd, AdValue adValue)
{
    //Khi quảng cáo được trả tiền
    //Gửi dữ liệu LogImpression lên GSM, Adjust, Firebase ở đây
}
```

### 3.3 Đưa script quản lý NativeAd vào UI&#x20;

* Kéo script vừa tạo ở bước 3.2
* Tạo UI đầy đủ các thành phần gồm có: AdIcon, AdChoice, AdHeadline, Ad Body, AdCallToAction, AdImage
* Đưa các thành phần UI vào Script (Tham khảo Prefab: NativeAd)

## 4. Sample

* Bạn có thể xem ví dụ trong: **Assets** => **CSCMobiPlugin** => **AdmobMediation** => **AdmobNativeAd**=> **Samples**
