「Android Banner Ads 3.0」修訂間的差異

出自TAMedia
跳至導覽 跳至搜尋
imported>Wikiuser
(新頁面: == <b>Banner 廣告支援格式</b> == :TAMedia Banner廣告支援下列數種形式: {| class="wikitable" style="width:50%" |- ! 廣告格式 !! 大小(寬度x高度) !! TWMAdSize ...)
 
imported>Wikiuser
 
(未顯示同一使用者於中間所作的 4 次修訂)
行 1: 行 1:
== <b>Banner 廣告支援格式</b> ==
== <b>Banner 廣告支援格式</b> ==
:TAMedia Banner廣告支援下列數種形式:
:<span style="font-size:16px;">TAMedia Banner廣告支援下列數種形式:</span>
{| class="wikitable" style="width:50%"  
{| class="wikitable" style="width:50%"  
|-
|-
行 15: 行 15:
| align="center"|IAB_LEADERBOARD || align="center"|728x90 || align="center"|TWMAdSize.IAB_LEADERBOARD
| align="center"|IAB_LEADERBOARD || align="center"|728x90 || align="center"|TWMAdSize.IAB_LEADERBOARD
|}
|}
<br><br>


== <b>實作方式</b> ==
== <b>實作方式</b> ==
<ul><li>廣告初始設置</li></ul>  
*<span style="font-size:16px;">廣告初始設置</span>
:<b>Activity XML(範例):</b>
 
{| class="wikitable"
|-
! Layout (XML範例) !! Activity(Java)
|-
| style="width:40%; padding:1%;"|
   <?xml version="1.0" encoding="utf-8"?>
   <?xml version="1.0" encoding="utf-8"?>
   <RelativeLayout
   <RelativeLayout
行 25: 行 31:
   android:layout_height="wrap_content"
   android:layout_height="wrap_content"
   android:gravity="center_horizontal">
   android:gravity="center_horizontal">
   </RelativeLayout>
   </RelativeLayout>  
:<b>Java:</b>
| style="width:60%; padding: 1%;"|
   private TWMAdView adView = null;
   private TWMAdView adView = null;
   private static final String AD_UNIT_ID = "INSERT_YOUR_AD_UNIT_ID";
   private static final String AD_UNIT_ID = "INSERT_YOUR_AD_UNIT_ID";
行 33: 行 39:
    
    
   <b>// 依序傳入Activity, TWMAdSize, 以及Ad Unit Id,TWMAdSize請參考頁首的TWMAdSize常數值</b>
   <b>// 依序傳入Activity, TWMAdSize, 以及Ad Unit Id,TWMAdSize請參考頁首的TWMAdSize常數值</b>
   adView = new TWMAdView(MainActivity.this,TWMAdSize.BANNER,AD_UNIT_ID );  
   adView = new TWMAdView(YourActivity.this, TWMAdSize.BANNER, AD_UNIT_ID);  
   RelativeLayout root = (RelativeLayout) findViewById(R.id.ad_container);
   RelativeLayout root = (RelativeLayout) findViewById(R.id.ad_container);
   root.addView(adView);  
   root.addView(adView);  
<br>
|}


:您也可以將TWMAdView宣告於佈局XML中,可省去上述兩個步驟
:您也可以將TWMAdView宣告於佈局XML中,在Java程式內透過findViewById取得TWMAdView
  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android=<nowiki>"http://schemas.android.com/apk/res/android"</nowiki>
  <LinearLayout xmlns:android=<nowiki>"http://schemas.android.com/apk/res/android"</nowiki>
行 54: 行 60:
  </LinearLayout>
  </LinearLayout>


 
:<b><span style="color:#ff0000">重要, 針對SDK 2.0後,請在Activity的生命週期中加入下述的呼叫,以便取得更好的服務經驗</span></b>
 
<b><span style="color:#ff0000">重要, 針對SDK 2.0後,請在Activity的生命週期中加入下述的呼叫,以便取得更好的服務經驗</span></b>
 
   @Override
   @Override
   protected void onDestroy() {
   protected void onDestroy() {
     if(twmAdView != null) {
     if(adView != null) {
       // 呼叫TWMAdView.destroy()
       // 呼叫TWMAdView.destroy()
       twmAdView.destroy();
       adView.destroy();
     }
     }
     super.onDestroy();
     super.onDestroy();
行 68: 行 71:
   @Override
   @Override
   protected void onResume() {
   protected void onResume() {
     if(twmAdView != null) {
     if(adView != null) {
       // 呼叫TWMAdView.resume()
       // 呼叫TWMAdView.resume()
       twmAdView.resume();
       adView.resume();
     }
     }
     super.onResume();
     super.onResume();
行 76: 行 79:
   @Override
   @Override
   protected void onPause() {
   protected void onPause() {
     if(twmAdView != null) {
     if(adView != null) {
       // 呼叫TWMAdView.pause()
       // 呼叫TWMAdView.pause()
       twmAdView.pause();
       adView.pause();
     }
     }
     super.onPause();
     super.onPause();
   }
   }


 
<br><br>
:*加入TWMAdViewListener監聽廣告投放情況
*<span style="font-size:16px;">加入TWMAdViewListener監聽廣告投放情況</span>
 
   adView.setAdListener(new 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 onReceiveAd(TWMAd ad){
       // 成功收到廣告時通知
       // 成功收到廣告時通知
行 113: 行 105:
     }   
     }   
   });
   });
<br><br>
*畫面展示
 
*<span style="font-size:16px;">建立 TWMAdRequest</span>
:請求廣告前,你需要創建一個TWMAdRequest物件
  TWMAdRequest request = new TWMAdRequest();
 
:若額外設置使用者生日,可讓您的APP獲得更多元的廣告內容<br>
{| class="wikitable"
|-
! 使用Date !! 使用Calendar
|-
| style="width:60%; padding:1%;"|
  TWMAdRequest request = new TWMAdRequest();
  try {
  <b>//定義好時間字串的格式</b>
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.getDefault());
  <b>//將字串轉成Date型</b>
  Date birthDate = sdf.parse("1992/01/01");
  <b>// 將生日加入request</b>
  request.setBirthday(birthDate);
  }catch (Exception e) {}
| style="width:40%; padding: 1%;"|
  <b>// 創建Calerdar並設定生日 (注意! 月份的編號是由0至11)</b>
  Calendar birthDate = Calendar.getInstance();
  <b>// 設定生日為1992/01/01</b>
  birthDate.set(1992, 0, 1);
 
  <b>// 將生日加入request</b>
  TWMAdRequest request = new TWMAdRequest();
  request.setBirthday(birthDate);
|}
<br><br>
 
 
*<span style="font-size:16px;">請求廣告</span>
:請將TWMAdReqeust物件傳入loadAd
  adView.loadAd(request);
<br><br>
 
*<span style="font-size:16px;">測試模式</span>
:如有需要,您可開啟測試模式來獲取測試廣告
  String 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;
    }
  }
 
 
==<b>畫面展示</b>==
{| width="70%" border="1"
{| width="70%" border="1"
|-
|-
行 126: 行 192:
|}
|}


: 接下來可以參考進階的 [[Android_Interstitial_Ads_2.0|Interstitial Ads]]/[[Android_NativeAds|Native Ads]]/[[Android_Video_Ads_2.0|Video Ads]]
<br><br>
[[Android SDK Developer Guide 2 | 回首頁]]

於 2021年11月16日 (二) 06:25 的最新修訂

TAMedia Banner廣告支援下列數種形式:
廣告格式 大小(寬度x高度) TWMAdSize 常數值
BANNER 320x50 TWMAdSize.BANNER
SMART_BANNER 自動對應裝置寬度, 並對應適當的高度 TWMAdSize.SMART_BANNER
IAB_MRECT 300x250 TWMAdSize.IAB_MRECT
IAB_BANNER 468x60 TWMAdSize.IAB_BANNER
IAB_LEADERBOARD 728x90 TWMAdSize.IAB_LEADERBOARD



實作方式

  • 廣告初始設置
Layout (XML範例) Activity(Java)
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout
 	android:id="@+id/ad_container"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
 	android:gravity="center_horizontal">
 </RelativeLayout> 
 private TWMAdView adView = null;
 private static final String AD_UNIT_ID = "INSERT_YOUR_AD_UNIT_ID";
 
 // Other Implement ... 
 
 // 依序傳入Activity, TWMAdSize, 以及Ad Unit Id,TWMAdSize請參考頁首的TWMAdSize常數值
 adView = new TWMAdView(YourActivity.this, TWMAdSize.BANNER, AD_UNIT_ID); 
 RelativeLayout root = (RelativeLayout) findViewById(R.id.ad_container);
 root.addView(adView); 
您也可以將TWMAdView宣告於佈局XML中,在Java程式內透過findViewById取得TWMAdView
<?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(adView != null) {
     // 呼叫TWMAdView.destroy()
     adView.destroy();
   }
   super.onDestroy();
 }
 @Override
 protected void onResume() {
   if(adView != null) {
     // 呼叫TWMAdView.resume()
     adView.resume();
   }
   super.onResume();
 }
 @Override
 protected void onPause() {
   if(adView != null) {
     // 呼叫TWMAdView.pause()
     adView.pause();
   }
   super.onPause();
 }



  • 加入TWMAdViewListener監聽廣告投放情況
 adView.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){
      // 用戶點擊廣告後,將要啟動新的應用程式時通知
   }   
 });



  • 建立 TWMAdRequest
請求廣告前,你需要創建一個TWMAdRequest物件
 TWMAdRequest request = new TWMAdRequest();
若額外設置使用者生日,可讓您的APP獲得更多元的廣告內容
使用Date 使用Calendar
 TWMAdRequest request = new TWMAdRequest();
 try {
 	//定義好時間字串的格式
 	SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.getDefault());
 	//將字串轉成Date型
 	Date birthDate = sdf.parse("1992/01/01");
 	// 將生日加入request
 	request.setBirthday(birthDate);
 }catch (Exception e) {}
 // 創建Calerdar並設定生日 (注意! 月份的編號是由0至11)
 Calendar birthDate = Calendar.getInstance();
 // 設定生日為1992/01/01
 birthDate.set(1992, 0, 1);
 
 // 將生日加入request
 TWMAdRequest request = new TWMAdRequest();
 request.setBirthday(birthDate);




  • 請求廣告
請將TWMAdReqeust物件傳入loadAd
 adView.loadAd(request);	



  • 測試模式
如有需要,您可開啟測試模式來獲取測試廣告
 String 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;
    }
 }


畫面展示

應用程式開啟 點擊Banner後開啟網頁 點擊Banner後撥打電話
2.png 3.png 4.png



回首頁