Article:
Thêm quảng cáo AdMob vào chương trình Unity
349
ngocdaothanh.myopenid.com 175Updated 5 months ago |
Unity là game engine phổ biến hiện nay, giúp viết game 2D và 3D dễ dàng, và chỉ cần viết một lần mà chạy được trên nhiều platform như Android, iOS, Mac, Windows v.v. Tuy nhiên vì đặc điểm của Unity nên hơi khó thêm quảng cáo AdMob vào. Bài này hướng dẫn cách thực hiện cho Android và iOS. Để hiểu bạn cần biết căn bản lập trình Unity, Android, iOS, và AdMob.
![]()
Tham khảo ví dụ mẫu.
Android
Cần viết thêm plugin Android cho Unity.
Tạo thư mục có tên Android (bắt buộc phải là tên này) trong thư mục Assets/Plugins của project Unity. Sau đó dùng Eclipse để tạo project Android ngay dưới thư mục này.
Tiếp đó ta sửa AndroidManifest.xml theo hướng dẫn của AdMob. BannerExample.java thì ta phải sửa như sau:
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import com.google.ads.AdView;
import com.google.ads.AdSize;
import com.google.ads.AdRequest;
import com.unity3d.player.UnityPlayerActivity;
public class BannerExample extends UnityPlayerActivity {
private static String ADMOB_PUBLISHER_ID = "a14eddc6193cea1";
private AdView adView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
addContentView(layout, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
adView = new AdView(this, AdSize.BANNER, ADMOB_PUBLISHER_ID);
layout.addView(adView, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
// Initiate a generic request to load it with an ad
adView.loadAd(new AdRequest());
}
@Override
public void onDestroy() {
adView.destroy();
super.onDestroy();
}
}
Chú ý phải thừa kế UnityPlayerActivity. Class này nằm trong thư viện Unity cung cấp. Cần sửa tập tin .classpath của Eclipse để thêm vào dòng:
<classpathentry kind="lib" path="/Applications/Unity/Unity.app/Contents/PlaybackEngines/AndroidPlayer/bin/classes.jar"/>
Đường dẫn trên là khi chạy Unity trên Mac. Nếu trên Windows thì cần sửa cho phù hợp.
Ngoài ra cũng cần copy thư viện .jar do AdMob cung cấp, ví dụ GoogleAdMobAdsSdk-4.3.1.jar, vào thư mục libs của project.
AdMob phiên bản 4.3.1 đòi phải biên dịch với Android SDK r-13 trở lên => Cần sửa project.properties:
target=android-13
r-13 ứng với Android OS 3.2. Để có thể cài chương trình vào máy Android OS 2.x, cần sửa AndroidManifest.xml:
<uses-sdk android:minSdkVersion="6" />
6 nghĩa là r-6, ứng với Android OS 2.0.1.
Cuối cùng, cần biên dịch project theo kiểu library để thu được tập tin .jar trong thư mục bin.
Ở trên là cách làm với Eclipse. Nếu đã quen lập trình Android, bạn có thể dùng ant thay cho Eclipse.
Đến đây chỉ cần biên dịch project Unity cho Android là Unity tự biết phải tìm đến project Android ta vừa tạo rồi kèm 2 tập tin .jar ở trên vào tập tin .apk cuối cùng.
iOS
Xem ví dụ mẫu (link ở trên).
- Từ Unity, xuất project ra dạng dành cho iOS
- Mở project bằng Xcode
- Kéo thư mục GoogleAdMobAdsSDKiOS-5.0.5 và AdMob vào project trong Xcode
- Sửa AdViewController.m, đặt MY_BANNER_UNIT_ID thành Publisher ID ta đã đăng kí trên AdMob
- Sửa AppController.mm
Thêm vào đầu tập tin:
#import "AdViewController.h"
Thêm vào phương thức startUnity, ngay trước dòng [self Repaint]:
[AdViewController install];
Đến đây chỉ cần chạy là xong.
175