12/08/2018, 14:51

Hướng dẫn tích hợp quảng cáo Admob vào game Unity

1. Giới Thiệu Chào các bạn , hôm nay mình sẽ hướng dẫn các bạn mới làm game unity cách sử dụng quảng cáo Admob của google vào game của các bạn . Mình thấy trên mạng cũng có một số bài viết nhưng chưa cụ thể lắm nên mình sẽ cố gắng viết thật chi tiết và dễ hiểu . Lý do tại sao nên dùng quảng cáo ...

1. Giới Thiệu

Chào các bạn , hôm nay mình sẽ hướng dẫn các bạn mới làm game unity cách sử dụng quảng cáo Admob của google vào game của các bạn . Mình thấy trên mạng cũng có một số bài viết nhưng chưa cụ thể lắm nên mình sẽ cố gắng viết thật chi tiết và dễ hiểu .

Lý do tại sao nên dùng quảng cáo Admob thì theo mình nó là quảng cáo của ông lớn Google nên rất là đảm bảo về mặt doanh thu : tỉ lệ hiển thị và chỉ số CPM cao có thể nói nó đứng đầu trong các mạng quảng cáo . Lý do nữa là nó rất nhẹ và chạy mượt mà không làm giật lác game của bạn . Có một chú ý khi dùng thằng này là các bạn phải đọc kỹ luật đừng để vi phạm vì họ làm rất nghiêm .

2. Hướng Dẫn

Ok giờ mình bắt đầu hướng dẫn . Đầu tiên các bạn cần tải về gói asset GoogleMobileAds.unitypackage ở trang chủ của nó : https://github.com/googleads/googleads-mobile-unity/releases chú ý là tải cái mới nhất mà dùng - bản hiện tại là 3.2.0. Tiếp theo bạn hãy import gói vừa tải trên vào game của bạn . Ok bây giờ bạn thấy trong thư mục Assets có thêm các mục như sau :

Tiếp theo bạn hãy tạo cho mình một tài khoản Admob và tạo các id quảng cáo cho game của bạn , nếu bạn chưa biết thì tham khảo hướng dẫn sau : https://www.youtube.com/watch?v=CUidLrFqk6Y bạn hãy tạo một id quảng cáo kiểu banner vào một id quảng cáo kiểu full màn hình để test nhé . Ok giờ ta sẽ viết code . Bạn hãy tạo ra một file script ShowAdsManager.cs và nội dung như ở dưới

using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;
using UnityEngine.Advertisements;
public class ShowAdsManager : MonoBehaviour {
	#if UNITY_IPHONE
	 string idAdMobInterstitial = "";
	 string idAdMobBanner = "";
	 string testDeviceId = "";
	#endif
	#if UNITY_ANDROID
	public string idAdMobInterstitial = "";
	public string idAdMobBanner = "";
	public string testDeviceId = "";
	#endif
	public static ShowAdsManager instance = null;
	InterstitialAd interstitial;
	BannerView bannerView;

	void Awake()
	{
		//Check if instance already exists
		if (instance == null) {
			//if not, set instance to this
			instance = this;

		}
		//If instance already exists and it's not this:
		else if (instance != this)

			//Then destroy this. This enforces our singleton pattern, meaning there can only ever be one instance of a GameManager.
			Destroy(gameObject);    

		//Sets this to not be destroyed when reloading scene
		DontDestroyOnLoad(gameObject);
	}

	// Use this for initialization
	void Start () {
		
	}

	public void LoadFullAdmob()
	{
		// Create an empty ad request.
		interstitial = new InterstitialAd(idAdMobInterstitial);
		AdRequest request = new AdRequest.Builder()
			.AddTestDevice(AdRequest.TestDeviceSimulator)       // Simulator.
			.AddTestDevice(testDeviceId)  // My test device.
			.Build();
		// Load the interstitial with the request.
		interstitial.LoadAd(request);
	}
	
	public void ShowFullAdmod()
	{
		interstitial.Show ();
		LoadFullAdmob ();
	}

	public void LoadBannerAdmod()
	{
		// Create a 320x50 banner at the top of the screen.
		bannerView = new BannerView(idAdMobBanner, AdSize.Banner, AdPosition.Bottom);
		// Create an empty ad request.
		AdRequest requestBanner = new AdRequest.Builder()
			.AddTestDevice(AdRequest.TestDeviceSimulator)       // Simulator.
			.AddTestDevice(testDeviceId)  // My test device.
			.Build();
		// Load the banner with the request.
		bannerView.LoadAd(requestBanner);
	}

	public void ShowBanner()
	{
			bannerView.Show ();
	}

	public void HideBanner()
	{
			bannerView.Hide ();
	}
}

bạn hãy điền các id tương ứng của bạn vào các biến id ở ngay trên cùng , cái testDeviceId là cái id test của thiết bị bạn dùng để test , nó khá quan trọng vì nếu không bạn sẽ hiển thị quảng cáo thật lên và nếu nhỡ tay click vào thì sẽ vi phạm chính sách , ta chỉ nên hiện quảng cáo test trong quá trình phát triển khi nào up lên store thì mới hiện quảng quáo thật . Bạn có thể tìm cái id này cho android ở đây : https://play.google.com/store/apps/details?id=pe.go_com.admobdeviceidfinder cho ios thì làm theo cái này :http://stackoverflow.com/questions/24760150/how-to-get-a-hashed-device-id-for-testing-admob-on-ios http://answers.unity3d.com/questions/834119/admob-device-id-on-ios-for-test-ads.html

Ok để mình giải thích qua code ở trên ,mà đọc là bạn đã biết nó để làm gì rồi :

  • LoadFullAdmob hàm này để load một quảng cáo full màn hình , muốn hiện quảng cáo full màn hình phải gọi hàm này trước
  • ShowFullAdmod hàm này để hiển thị quảng cáo full màn hình đồng thời sẽ load một cái mới để lần sau còn có cái mà hiển thị lên
  • LoadBannerAdmod hàm này để load một banner ở đây là banner ở phía dưới của màn hình
  • ShowBanner hàm hiển thị banner
  • HideBanner hàm ẩn banner

Ok nhìn khá ổn nhỉ chả có gì cả rất đơn giản .

Bây giờ bạn hãy tạo một giao diện để thử nghiệm nhé . Tạo ra màn hình như sau :

Tiếp theo tạo một object đặt tên là AdsManager rồi add cái script trên vào nó .

điền các id quảng cáo tương ứng của bạn vào

Tiếp theo add các sự kiện click button cho các nút

Ok gần như là thiết lập xong giờ bạn hãy lưu scene đó lại và buid lên test thôi . Để build cho android thì bạn chuyển platform sang Android và build ra file apk và test thử .

Bui cho ios thì bạn cần làm thêm một bước nữa là add framework của nó vào project xcode . Sau khi build ra project xcode bạn hãy mở nó lên . Tiếp theo tải framework trên trang chủ của nó về : https://firebase.google.com/docs/admob/ios/download bạn sẽ thấy trong file tải về có một file là GoogleMobileAds.framework hãy copy nó vào thư mục frameworkds của project xcode , sau đó vào mục Build Phases và kéo cái GoogleMobileAds.framework vào đây

ok giờ build lên và test .

Đến đây là mình hoàn thành bài hướng dẫn , nếu các bạn có thắc mắc gì thì cứ hỏi thoả mái nhé mình sẽ nhiệt tình trả lời . Nếu hỏi bạn vui lòng add skype:ngocduk54a2 cho mình vì mình không lên đây thường xuyên . Cám ơn các bạn .

0