Hướng dẫn này cho bạn biết cách sử dụng tiện ích bổ sung quảng cáo gốc để triển khai quảng cáo gốc AdMob quảng cáo trong ứng dụng Unity, cũng như một số điều quan trọng cần xem xét trong quá trình triển khai.
Quảng cáo gốc phù hợp với cả hình thức và chức năng của trải nghiệm người dùng mà trong đó vị trí của chúng. Các quảng cáo này cũng phù hợp với thiết kế trực quan của ứng dụng hiển thị quảng cáo. Định dạng quảng cáo gốc của AdMob cho phép nhà xuất bản hiển thị quảng cáo liền mạch với nội dung. Bạn có thể sử dụng công nghệ này để triển khai tính năng hiển thị tuỳ chỉnh cao tận dụng tối đa mã gốc trong các ứng dụng Unity.
Quảng cáo gốc hiển thị bằng cách sử dụng cùng các loại GameObjects
mà bạn đang sử dụng
đã tạo ứng dụng và có thể được định dạng cho phù hợp với thiết kế trực quan của
trải nghiệm người dùng nơi họ sống. Khi một quảng cáo gốc tải, ứng dụng của bạn
nhận một đối tượng gốc chứa nội dung và ứng dụng Unity (thay vì
SDK) sẽ hiển thị chúng.
Điều kiện tiên quyết
- Trình bổ trợ Unity của quảng cáo trên thiết bị di động của Google phiên bản 7.0.0 trở lên.
- Xem hết Hướng dẫn bắt đầu sử dụng.
- Tải xuống và cài đặt tiện ích bổ sung cho quảng cáo gốc.
Tải định dạng quảng cáo gốc
Quảng cáo gốc được tải thông qua lớp AdLoader
, có lớp riêng
AdLoader.Builder
để tuỳ chỉnh trong quá trình tạo. ForNativeAd()
sẽ định cấu hình tagmanager để xử lý quảng cáo gốc.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
}
Đăng ký sự kiện quảng cáo tagmanager
Để được thông báo khi quảng cáo gốc tải thành công hoặc không thể tải, hãy thêm
uỷ quyền cho lớp AdLoader
cho những sự kiện được liệt kê dưới đây.
OnNativeAdLoaded
Được gọi khi quảng cáo gốc đã tải thành công. Bắt buộc phải có uỷ quyền cho sự kiện này để truy cập vào quảng cáo đã tải.
OnAdFailedToLoad
Được gọi khi không thể tải quảng cáo gốc.
Tải quảng cáo
Sau khi bạn tạo xong AdLoader
, hãy gọi phương thức LoadAd()
để
yêu cầu quảng cáo:
adLoader.LoadAd(new AdRequest.Builder().Build());
Đặt yêu cầu quảng cáo lại với nhau
Đoạn mã dưới đây minh hoạ cách tạo AdLoader
đã định cấu hình để yêu cầu quảng cáo gốc, đặt ủy quyền cho quảng cáo thành công và không thành công
tải và đưa ra yêu cầu quảng cáo.
private void RequestNativeAd() {
AdLoader adLoader = new AdLoader.Builder(INSERT_AD_UNIT_HERE)
.ForNativeAd()
.Build();
adLoader.OnNativeAdLoaded += this.HandleNativeAdLoaded;
adLoader.OnAdFailedToLoad += this.HandleAdFailedToLoad;
adLoader.LoadAd(new AdRequest.Builder().Build());
}
Xử lý các lượt tải quảng cáo không thành công
Sự kiện OnAdFailedToLoad
thuộc loại EventHandle<AdFailedToLoadEventArgs>
.
Dưới đây là lý do khiến sự kiện này không tải được quảng cáo.
private void RequestNativeAd() {
...
adLoader.OnAdFailedToLoad += this.HandleNativeAdFailedToLoad;
}
private void HandleNativeAdFailedToLoad(object sender, AdFailedToLoadEventArgs args) {
Debug.Log("Native ad failed to load: " + args.Message);
}
Hiển thị quảng cáo gốc
Khi Quảng cáo gốc tải, sự kiện quảng cáo cho định dạng quảng cáo tương ứng sẽ được gọi. Sau đó, ứng dụng của bạn sẽ chịu trách nhiệm hiển thị quảng cáo, mặc dù ứng dụng không làm như vậy nhất thiết phải thực hiện ngay lập tức.
Xử lý lượt tải quảng cáo
Sự kiện OnNativeAdLoaded
thuộc loại EventHandler<NativeAdEventArgs>
. Chiến lược phát hành đĩa đơn
quảng cáo được đóng gói trong đối tượng NativeAd
, có thể được truy xuất từ
NativeAdEventArgs
như minh hoạ:
private NativeAd nativeAd;
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
}
Truy xuất thành phần quảng cáo gốc
Sau khi quảng cáo tải xong, bạn có thể truy cập vào các thành phần của quảng cáo như minh hoạ bên dưới. Hình ảnh đồ hoạ
thành phần được trả về dưới dạng đối tượng Texture2D
và thành phần văn bản được trả về dưới dạng
Đối tượng string
.
private bool nativeAdLoaded;
private NativeAd nativeAd;
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for the icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
// Get string for headline asset of native ad.
string headline = this.nativeAd.GetHeadlineText();
}
}
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}
Xin lưu ý rằng bạn chỉ nên truy cập vào nội dung quảng cáo trên chuỗi chính, ví dụ:
từ phương thức Update()
của tập lệnh Unity. Ngoài ra, xin lưu ý rằng các thành phần sau:
không phải lúc nào cũng có mặt và cần được kiểm tra trước khi
được hiển thị:
GetStarRating()
GetStore()
GetPrice()
GetAdvertiser()
GetIconTexture()
Thành phần Lựa chọn quảng cáo
Thành phần quảng cáo Lựa chọn quảng cáo là một yêu cầu bắt buộc để hiển thị dưới dạng một phần của quảng cáo gốc. Ngoài ra, thành phần quảng cáo Lựa chọn quảng cáo phải dễ nhìn thấy, vì vậy, hãy chọn màu nền và hình ảnh phù hợp.
Đăng ký IntelliJ cho thành phần quảng cáo
Bạn phải đăng ký GameObject
để thành phần quảng cáo này sẽ hiển thị trong
Ứng dụng Unity. Nếu đăng ký thành công, phương thức được sử dụng để đăng ký
GameObject
trả về bool
. Đối với List<GameObject>
, phương thức này sẽ trả về một
int
cho biết số lượng GameObject
đã được đăng ký thành công.
Nếu đăng ký thành phần quảng cáo không thành công, thì lượt hiển thị và lượt nhấp trên quảng cáo gốc tương ứng sẽ không được công nhận.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register the icon ad asset.
}
GameObject
được đăng ký cho một thành phần quảng cáo phải có Collider lồi
thành phần đại diện cho kích thước và hình dạng của GameObject
. Nếu
GameObject
đối tượng đã đăng ký cho thành phần quảng cáo bị thiếu thành phần Collider
hoặc có cấu hình không đúng thì quảng cáo gốc sẽ không hoạt động chính xác.
Trong đoạn mã dưới đây, BoxCollider
được thêm vào GameObject
sử dụng một
TextMesh
để hiển thị thành phần quảng cáo dòng tiêu đề của một quảng cáo gốc. Khi
BoxCollider
được gắn vào GameObject
, nó sẽ tự động điều chỉnh tỷ lệ thành
phù hợp với văn bản của thành phần TextMesh
.
// Create GameObject that will display the headline ad asset.
GameObject headline = new GameObject();
headline.AddComponent<TextMesh>();
headline.GetComponent<TextMesh>().characterSize = 0.5 f;
headline.GetComponent<TextMesh>().anchor = TextAnchor.MiddleCenter;
headline.GetComponent<TextMesh>().color = Color.black;
// Get string of the headline asset.
string headlineText = this.nativeAd.GetHeadlineText();
headline.GetComponent<TextMesh>().text = headlineText;
// Add box collider to the GameObject which will automatically scale.
headline.AddComponent<BoxCollider>();
Bản minh hoạ
Mã sau đây minh hoạ cách truy xuất thành phần biểu tượng của một
quảng cáo gốc đã tải, hãy hiển thị thành phần quảng cáo biểu tượng bằng cách đặt hoạ tiết là Quad
,
và đăng ký GameObject
để hiển thị nội dung. Quá trình này
khi truy xuất thành phần quảng cáo và đăng ký thành phần đó với lớp quảng cáo gốc
lặp lại cho mỗi nội dung mà ứng dụng hiển thị.
private GameObject icon;
private bool nativeAdLoaded;
private NativeAd nativeAd;
...
void Update() {
...
if (this.nativeAdLoaded) {
this.nativeAdLoaded = false;
// Get Texture2D for icon asset of native ad.
Texture2D iconTexture = this.nativeAd.GetIconTexture();
icon = GameObject.CreatePrimitive(PrimitiveType.Quad);
icon.transform.position = new Vector3(1, 1, 1);
icon.transform.localScale = new Vector3(1, 1, 1);
icon.GetComponent<Renderer>().material.mainTexture = iconTexture;
// Register GameObject that will display icon asset of native ad.
if (!this.nativeAd.RegisterIconImageGameObject(icon))
{
// Handle failure to register ad asset.
}
}
}
...
private void HandleNativeAdLoaded(object sender, NativeAdEventArgs args) {
Debug.Log("Native ad loaded.");
this.nativeAd = args.nativeAd;
this.nativeAdLoaded = true;
}