Thứ Hai, 13 tháng 7, 2015

Mới finish việc gắn quảng cáo Google Admob vào Unity, tranh thủ note lại vài dòng cho những ai đang gặp khó khăn trong việc này.

Đầu tiên ta đăng ký cái tài khoản quảng cáo trong Google Admob ở link này:  https://apps.admob.com
Hổi trước mình dùng quảng cáo Startapp, giờ sang bên này thử thôi :)
Sau khi tải Unity SDK plugin thì import vào project, mở code lên và code như mình đã làm sau đây, đảm bảo chạy 100%:


using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;
using UnityEngine.UI;

public class GoogleAdmob : MonoBehaviour {
//ID for Banner:
string adUnitIdBanner;
string adUnitIdInterstitial;
// Create a 320x50 banner at the top of the screen.
BannerView bannerView;
// Create an empty ad request.
// Initialize an InterstitialAd.
public InterstitialAd interstitial;
// Create an empty ad request.
//public Text admobText;
//public float bannerWidth;
// Use this for initialization
void Start () {
//ID for Banner:
#if UNITY_ANDROID
adUnitIdBanner = "thay cái này bằng ID của bạn dành cho quảng cáo banner trên android";
#elif UNITY_IPHONE
adUnitIdBanner = "thay cái này bằng ID của bạn dành cho quảng cáo banner trên IPHONE";
#else
adUnitIdBanner = "unexpected_platform";
#endif
//ID for Interstitial:
#if UNITY_ANDROID
adUnitIdInterstitial = "thay cái này bằng ID của bạn dành cho quảng cáo Interstitial trên android";
#elif UNITY_IPHONE
adUnitIdInterstitial = "thay cái này bằng ID của bạn dành cho quảng cáo Interstitial trên IPHONE";
#else
adUnitIdInterstitial = "unexpected_platform";
#endif
//banner:
//bannerView = new BannerView(adUnitIdBanner, AdSize.Banner, AdPosition.Bottom);
bannerView = new BannerView(adUnitIdBanner, adSize, AdPosition.Bottom);
bannerView.LoadAd(new AdRequest.Builder().Build());
//interstitial:
CreateAndLoadInterstitial ();
}

// Update is called once per frame
void Update () {

}

public void showInterstitial()
{
if (interstitial.IsLoaded())
{
interstitial.Show();
}
}

public InterstitialAd CreateAndLoadInterstitial()
{
// Initialize an InterstitialAd.
interstitial = new InterstitialAd(adUnitIdInterstitial);
interstitial.LoadAd(new AdRequest.Builder().Build());

// Register for ad events.
interstitial.AdLoaded += delegate(object sender, System.EventArgs args) {
//admobText.text = "da tai qc";
};
interstitial.AdFailedToLoad += delegate(object sender, AdFailedToLoadEventArgs args) {
//admobText.text = "ko tai dc qc: " + args.Message;
};
//interstitial.AdOpened += delegate(object sender, System.EventArgs args) {};
//interstitial.AdClosing += delegate(object sender, System.EventArgs args) {};
interstitial.AdClosed += delegate(object sender, System.EventArgs args) {
interstitial.Destroy();
interstitial = CreateAndLoadInterstitial();
};
//interstitial.AdLeftApplication += delegate(object sender, System.EventArgs args) {};
return interstitial;
}
}

////////

Chỉ cần gọi hàm showInterstitial() tại bất kỳ đâu thì nó sẽ hiện quảng cáo interstitial, còn việc bắt sự kiện thì xem hàm public InterstitialAd CreateAndLoadInterstitial() là hiểu.

Tham khảo thêm ở đây:
1.Hỗ trọ gắn quảng cáo Admob trong Unity: https://developers.google.com/admob/games#unity&subid=apac-semexp3-r3

2. Hỗ trợ về quảng cáo Interstitial: http://googleadsdeveloper.blogspot.com/2014/05/google-mobile-ads-unity-plugin-21-adds.html

3. Và nhớ copy thư mục "google-play-services_lib" nằm trong "sdk\extras\google\google_play_services\libproject" vào thư mục "Assets/Plugins/Android" trong Project Unity đang làm nhé.

Còn cái Facebook login + share + invite friend mới làm xong hôm qua để hôm nào rảnh rảnh post nốt.

Dân điện, chuyên ngành Tự động hóa! Nhưng giờ bỏ nghề. Có bằng Thạc sĩ Tự Động Hóa hẳn hoi luôn cơ đấy, tiếng Anh thì tự nhận mình cũng thuộc loại Khá :) Nhưng có điều chắc do thiếu may mắn, hay đã chọn sai con đường. Niềm đam mê của mình từ sau khi tốt nghiệp đại học là Code, có thể ngồi hàng giờ, thức thâu đêm với niềm đam mê Code. Và giờ, 30 tuổi rồi, 5 năm sau khi tốt nghiệp kỹ sư Tự Động Hóa, 2 năm sau khi có bằng Thạc sĩ TĐH, mình quyết định nghỉ việc, bỏ nghề TĐH, để theo đuổi niềm đam mê lập trình. Bạn bè nói chửi mình điên. Thôi kệ điên điên mà thoải mái, được làm những gì mình đam mê là được (tạm thời cứ như thế, khi nào trụ không nổi nữa thì lại đi cày cuốc, hehe :) ) Mà theo mình suy nghĩ, nếu vào thời điểm ứng dụng và game trên điện thoại chưa được đại trà như bây giờ, thì nghề lập trình cũng khó mà có đất dụng võ, khó mà theo đuổi niềm đam mê. Đam mê mà nó đem lại tiền để nuôi cuộc sống thì mới tiếp tục đam mê được. Nhưng giờ thì khác, sự "đại trà" của chiếc điện thoại thông minh đã mở ra cho dân lập trình những cơ hội mới, theo đuổi niềm đam mê dễ như chưa bao giờ có: Thị trường đầu ra của sản phẩm thì đã có các ông lớn bảo kê (Google, Ios, Window ..) Đầu vào thì chỉ cần cái máy tính cộng với lòng đam mê và nhiệt huyết, sự sáng tạo ...vv nói chung là vốn đầu tư ít :) 
 Lan man nãy giờ mà quên chủ đề chính. Mình lập cái blog này ra để note lại những gì mình đã gặp mà nghĩ là có thể cần thiết cho ai đó :)
Con đường học lập trình của mình nó cũng có duyên số lắm: năm thứ 1 học C trên trường, ngày đó không có máy tính, làm bài tập toàn trên giấy, chương trình nó chạy thử là ở ... trong đầu :) Được đi thực hành 2-3 buổi gì đó mà nói chung thực hành trên tường thì mấy bạn biết cái chất lượng nó ra sao rồi. Vài năm sau biết đến VB6, rồi mày mò lên VBNET, rồi lại sang C#, rồi máu lên nhảy qua lập trình Android (theo phong trào :D) , cũng viết được 1 app đưa lên GooglePlay, mặc dù 1 chữ Java bẻ nát cũng không biết (ặc ặc). Rồi sau đó tranh thủ thời gian rảnh tự đọc tài liệu JAVA, rồi đọc sang C++. Sau bắt đầu làm game, đầu tiên là vọc libgdx được 2 hôm thấy khó quá hichic, nản. Rồi nhảy qua Cocos2dx, được 1 thời gian, đang thuận lợi bỗng nhiên cái máy tính nó trục trặc không chạy được Cocos2dx nữa. Nản. Sang nghiên cứu Unity3D. Và giờ đang ngồi đây, Ủ-nity1 bên và em 1 bên (em blog :D) 
Khởi đầu blog nói chuyện nhảm nhảm cho vui vậy.... :))