Android Banner Ads I 2.0

出自TAMedia
於 2014年6月13日 (五) 07:54 由 imported>Wikiuser 所做的修訂 (新頁面: :*宣告Banner廣告版位 TAMedia Banner廣告支援下列數種形式 {| width="80%" border="1" |- | align="center" | 廣告格式 | align="center" | BANNER | align="center" | IAB_MR...)
(差異) ←上個修訂 | 最新修訂 (差異) | 下個修訂→ (差異)
跳至導覽 跳至搜尋
  • 宣告Banner廣告版位

TAMedia Banner廣告支援下列數種形式

廣告格式 BANNER IAB_MRECT IAB_BANNER IAB_LEADERBOARD
大小(寬度x高度) 320x50 300x250 468x60 728x90
TWMAdSize 常數值 TWMAdSize.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.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後撥打電話
2.png 3.png 4.png
接下來可以參考進階的 Interstitial/Video Ads