Android Banner Ads I 2.0
於 2015年9月18日 (五) 03:43 由 imported>Wikiuser 所做的修訂
- 宣告Banner廣告版位
TAMedia Banner廣告支援下列數種形式
| 廣告格式 | BANNER | SMART_BANNER | IAB_MRECT | IAB_BANNER | IAB_LEADERBOARD |
| 大小(寬度x高度) | 320x50 | 自動對應裝置寬度, 並對應適當的高度 | 300x250 | 468x60 | 728x90 |
| TWMAdSize 常數值 | TWMAdSize.BANNER | TWMAdSize.SMART_BANNER | TWMAdSize.IAB_MRECT | TWMAdSize.IAB_BANNER | TWMAdSize.IAB_LEADERBOARD |
- 透過程式進行宣告
public class MainActivity extends Activity {
private TWMAdView adView = null;
private static final String AD_UNIT_ID = "INSERT_YOUR_AD_UNIT_ID";
private String deviceId;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 依序傳入Activity, TWMAdSize, 以及Ad Unit Id
// TWMAdSize 包括TWMAdSize.BANNER,TWMAdSize.SMART_BANNER,TWMAdSize.IAB_MRECT,TWMAdSize.IAB_BANNER,TWMAdSize.IAB_LEADERBOARD
adView = new TWMAdView(this,TWMAdSize.BANNER,AD_UNIT_ID );
LinearLayout root = (LinearLayout)findViewById(R.id.root);
root.addView(adView);
// 載入廣告
adView.loadAd(new TWMAdRequest());
// 若需要設定為測試模式, 則改以下述的方式進行廣告的請求
deviceId = getDeviceId(getBaseContext());
// adView.loadAd(new TWMAdRequest().addTestDevice(deviceId));
}
private String getDeviceId(final Context context) {
String deviceId = null;
try {
deviceId = android.provider.Settings.Secure.getString(
context.getContentResolver(), Secure.ANDROID_ID);
if (deviceId!= null) {
return convertToMD5ID(deviceId);
}
} catch (Exception e) {
Log.e("getDeviceId", e.getMessage(), e);
}
return deviceId;
}
private String convertToMD5ID(final String string) {
if (string == null) {
return null;
}
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(string.getBytes());
BigInteger number = new BigInteger(1, md.digest());
String md5 = number.toString(16);
while (md5.length() < 32)
md5 = "0" + md5;
return md5;
} catch (NoSuchAlgorithmException e) {
return null;
}
}
}
- 或將TWMAdView宣告於佈局XML中, 程式碼只需執行loadAd()載入廣告
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.taiwanmobile.pt.adp.view.TWMAdView
xmlns:ad="http://schemas.android.com/apk/lib/com.taiwanmobile.pt.adp.view"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ad:adSize="BANNER"
ad:adunitId="{AD_UNIT_ID}" >
</com.taiwanmobile.pt.adp.view.TWMAdView>
</LinearLayout>
重要, 針對SDK 2.0後,請在Activity的生命週期中加入下述的呼叫,以便取得更好的服務經驗
@Override
protected void onDestroy() {
if(twmAdView != null) {
// 呼叫TWMAdView.destroy()
twmAdView.destroy();
}
super.onDestroy();
}
@Override
protected void onResume() {
if(twmAdView != null) {
// 呼叫TWMAdView.resume()
twmAdView.resume();
}
super.onResume();
}
@Override
protected void onPause() {
if(twmAdView != null) {
// 呼叫TWMAdView.pause()
twmAdView.pause();
}
super.onPause();
}
- 加入TWMAdViewListener監聽廣告投放情況
public interface TWMAdViewListener {
public abstract void onReceiveAd(TWMAd ad);
public abstract void onFailedToReceiveAd(TWMAd ad, TWMAdRequest.ErrorCode errorCode);
public abstract void onPresentScreen(TWMAd ad);
public abstract void onDismissScreen(TWMAd ad);
public abstract void onLeaveApplication(TWMAd ad);
}
在使用TWMAdView的時候加入
twmadView.setAdListener(new TWMAdViewListener(){
public void onReceiveAd(TWMAd ad){
// 成功收到廣告時通知
}
public void onFailedToReceiveAd(TWMAd ad, TWMAdRequest.ErrorCode errorCode){
// 當請求廣告失敗時通知
}
public void onPresentScreen(TWMAd ad){
// 當用戶點擊廣告時通知
}
public void onDismissScreen(TWMAd ad){
// 用戶關閉因點擊廣告所產生的新Activity將要把控制權交給應用程式時通知
}
public void onLeaveApplication(TWMAd ad){
// 用戶點擊廣告後,將要啟動新的應用程式時通知
}
});
- 畫面展示
| 應用程式開啟 | 點擊Banner後開啟網頁 | 點擊Banner後撥打電話 |
|
|
|
- 接下來可以參考進階的 Interstitial Ads/Native Ads/Video Ads


