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

出自TAMedia
跳至導覽 跳至搜尋
imported>Wikiuser
(新頁面: == <b>Banner SD8 廣告支援格式</b> == :<span style="font-size:16px;">TAMedia Banner廣告支援下列數種形式:</span> {| class="wikitable" style="width:50%" |- ! 廣告格...)
 
imported>Wikiuser
 
(未顯示同一使用者於中間所作的 11 次修訂)
行 7: 行 7:
| align="center"|BANNER || align="center"|320x50 || align="center"|TWMAdSize.BANNER
| align="center"|BANNER || align="center"|320x50 || align="center"|TWMAdSize.BANNER
|-
|-
| align="center"|SMART_BANNER || align="center"|自動對應裝置寬度, 並對應適當的高度 || align="center"|TWMAdSize.SMART_BANNER
| align="center"|BANNER || align="center"|300x250 || align="center"|TWMAdSize.BANNER_300X250
|-
|-
| align="center"|IAB_MRECT || align="center"|300x250 || align="center"|TWMAdSize.IAB_MRECT
| align="center"|BANNER || align="center"|1200x627 || align="center"|TWMAdSize.BANNER_1200X627
|-
|-
| align="center"|IAB_BANNER || align="center"|468x60 || align="center"|TWMAdSize.IAB_BANNER
| align="center"|SMART_BANNER || align="center"|自動對應裝置寬度, 並對應適當的高度 || align="center"|TWMAdSize.SMART_BANNER
|-
| align="center"|IAB_LEADERBOARD || align="center"|728x90 || align="center"|TWMAdSize.IAB_LEADERBOARD
|}
|}
<br><br>
<br><br>
行 21: 行 19:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Layout (XML範例) !! Activity(Java)
! Layout (XML範例) !! Activity(Kotlin)
|-
|-
| style="width:40%; padding:1%;"|
| style="width:40%; padding:1%;"|
行 32: 行 30:
   </RelativeLayout>  
   </RelativeLayout>  
| style="width:60%; padding: 1%;"|
| style="width:60%; padding: 1%;"|
   private TWMAdView adView = null;
   var adView: TWMAdView? = null
   private static final String AD_UNIT_ID = "INSERT_YOUR_AD_UNIT_ID";
   var mRelativeLayout: RelativeLayout? = null
    
    
  companion object { 
      const val TAMEDIA_BANNER_AD_UNIT_ID: String = "INSERT_YOUR_AD_UNIT_ID"
  }
   // Other Implement ...  
   // Other Implement ...  
    
    
   <b>// 依序傳入Activity, TWMAdSize, 以及Ad Unit Id,TWMAdSize請參考頁首的TWMAdSize常數值</b>
   <b>// 依序傳入Activity, TWMAdSize, 以及Ad Unit Id,TWMAdSize請參考頁首的TWMAdSize常數值</b>
   adView = new TWMAdView(YourActivity.this, TWMAdSize.BANNER, AD_UNIT_ID);
   adView = TWMAdView(this,TWMAdSize.BANNER,TAMEDIA_BANNER_AD_UNIT_ID)
   RelativeLayout root = (RelativeLayout) findViewById(R.id.ad_container);
   val layoutParams = RelativeLayout.LayoutParams(
   root.addView(adView);
      RelativeLayout.LayoutParams.WRAP_CONTENT,
      RelativeLayout.LayoutParams.WRAP_CONTENT
  )
  layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)
  layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL)
   adView!!.layoutParams = layoutParams
  mRelativeLayout?.addView(adView)
|}
|}
:您也可以將TWMAdView宣告於佈局XML中,在Java程式內透過findViewById取得TWMAdView
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=<nowiki>"http://schemas.android.com/apk/res/android"</nowiki>
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <com.taiwanmobile.pt.adp.view.TWMAdView
        xmlns:ad=<nowiki>"http://schemas.android.com/apk/lib/com.taiwanmobile.pt.adp.view"</nowiki>
        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>


:<b><span style="color:#ff0000">重要, 針對SDK 2.0後,請在Activity的生命週期中加入下述的呼叫,以便取得更好的服務經驗</span></b>
:<b><span style="color:#ff0000">重要, 針對SDK 2.0後,請在Activity的生命週期中加入下述的呼叫,以便取得更好的服務經驗</span></b>
   @Override
   override fun onDestroy() {
  protected void onDestroy() {
        if (view is TWMAdView) {
    if(adView != null) {
          view.destroy()
      // 呼叫TWMAdView.destroy()
        }
      adView.destroy();
        mRelativeLayout?.removeAllViews()
        super.onDestroy()
     }
     }
    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();
  }


<br><br>
<br><br>
*<span style="font-size:16px;">加入TWMAdViewListener監聽廣告投放情況</span>
*<span style="font-size:16px;">加入TWMAdViewListener監聽廣告投放情況</span>
   adView.setAdListener(new TWMAdViewListener(){
   adView.setAdListener(object : TWMAdViewListener {
    public void onReceiveAd(TWMAd ad){
    override fun onReceiveAd(ad: TWMAd) {
      // 成功收到廣告時通知
          <b>// 表示本次請求收到廣告</b>
    }
    }
    public void onFailedToReceiveAd(TWMAd ad, TWMAdRequest.ErrorCode errorCode){
    override fun onFailedToReceiveAd(ad: TWMAd, errorCode: TWMAdRequest.ErrorCode) {
      // 當請求廣告失敗時通知
          <b>// 表示本次請求發生錯誤, 並沒有廣告內容可供使用</b>
    }
    }
    public void onPresentScreen(TWMAd ad){
    override fun onPresentScreen(ad: TWMAd) {
      // 當用戶點擊廣告時通知
          <b>// 表示廣告內容已呈現</b>
    }
    }
    public void onDismissScreen(TWMAd ad){
    override fun onDismissScreen(ad: TWMAd) {
      // 用戶關閉因點擊廣告所產生的新Activity將要把控制權交給應用程式時通知
          <b>// 表示廣告內容已被關閉</b>
    }
    }
    public void onLeaveApplication(TWMAd ad){
    override fun onLeaveApplication(ad: TWMAd) {
      // 用戶點擊廣告後,將要啟動新的應用程式時通知
          <b>// 表示因點擊廣告或其他因素離開app</b>
    }  
    }
   });
   })
<br><br>
<br><br>


*<span style="font-size:16px;">建立 TWMAdRequest</span>
*<span style="font-size:16px;">請求廣告</span>
:請求廣告前,你需要創建一個TWMAdRequest物件
:請求廣告前,你需要創建一個預設的TWMAdRequest物件
   TWMAdRequest request = new TWMAdRequest();
:並將TWMAdReqeust物件傳入loadAd
 
   adView?.loadAd(TWMAdRequest())
:若額外設置使用者生日,可讓您的APP獲得更多元的廣告內容<br>
<br>
:或是,透過TWMAdRequest額外設置使用者生日,可讓您的APP獲得更多元的廣告內容<br>
{| class="wikitable"
{| class="wikitable"
|-
|-
行 116: 行 92:
|-
|-
| style="width:60%; padding:1%;"|
| style="width:60%; padding:1%;"|
   TWMAdRequest request = new TWMAdRequest();
   val request = TWMAdRequest()
   try {
   try {
   <b>//定義好時間字串的格式</b>
   <b>// 定義好時間字串的格式</b>
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.getDefault());
   val sdf = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault())
   <b>//將字串轉成Date型</b>
   <b>// 將字串轉成Date型</b>
   Date birthDate = sdf.parse("1992/01/01");
   val birthDate: Date = sdf.parse("1992/01/01")
   <b>// 將生日加入request</b>
   <b>// 將生日加入request</b>
   request.setBirthday(birthDate);
   request.setBirthday(birthDate)
   }catch (Exception e) {}
   } catch (Exception e) {}
 
  <b>// 透過TWMAdRequest載入廣告</b>
  adView?.loadAd(adRequest)
| style="width:40%; padding: 1%;"|
| style="width:40%; padding: 1%;"|
   <b>// 創建Calerdar並設定生日 (注意! 月份的編號是由0至11)</b>
   <b>// 創建Calendar並設定生日 (注意! 月份的編號是由0至11)</b>
   Calendar birthDate = Calendar.getInstance();
   val birthDate = Calendar.getInstance()
   <b>// 設定生日為1992/01/01</b>
   <b>// 設定生日為1992/01/01</b>
   birthDate.set(1992, 0, 1);
   birthDate[1992, 1] = 1
    
    
   <b>// 將生日加入request</b>
   <b>// 將生日加入request</b>
   TWMAdRequest request = new TWMAdRequest();
   val adRequest = TWMAdRequest()
   request.setBirthday(birthDate);
   request.setBirthday(birthDate)
 
  <b>// 透過TWMAdRequest載入廣告</b>
  adView?.loadAd(adRequest)
|}
|}
<br><br>
<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>==
==<b>畫面展示</b>==
行 186: 行 126:
| align="center" | 點擊Banner後撥打電話
| align="center" | 點擊Banner後撥打電話
|-
|-
| align="center" | [[檔案:2.png]]
| align="center" | [[檔案:SDK8 banner.png]]
| align="center" | [[檔案:3.png]]
| align="center" | [[檔案:SDK8 banner click.png]]
| align="center" | [[檔案:4.png]]
| align="center" | [[檔案:4.png]]
|}
|}

於 2021年9月10日 (五) 07:14 的最新修訂

TAMedia Banner廣告支援下列數種形式:
廣告格式 大小(寬度x高度) TWMAdSize 常數值
BANNER 320x50 TWMAdSize.BANNER
BANNER 300x250 TWMAdSize.BANNER_300X250
BANNER 1200x627 TWMAdSize.BANNER_1200X627
SMART_BANNER 自動對應裝置寬度, 並對應適當的高度 TWMAdSize.SMART_BANNER



實作方式

  • 廣告初始設置
Layout (XML範例) Activity(Kotlin)
 <?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> 
 var adView: TWMAdView? = null
 var mRelativeLayout: RelativeLayout? = null
 
 companion object {  
     const val TAMEDIA_BANNER_AD_UNIT_ID: String = "INSERT_YOUR_AD_UNIT_ID"
 }
 // Other Implement ... 
 
 // 依序傳入Activity, TWMAdSize, 以及Ad Unit Id,TWMAdSize請參考頁首的TWMAdSize常數值
 adView = TWMAdView(this,TWMAdSize.BANNER,TAMEDIA_BANNER_AD_UNIT_ID)
 val layoutParams = RelativeLayout.LayoutParams(
     RelativeLayout.LayoutParams.WRAP_CONTENT,
     RelativeLayout.LayoutParams.WRAP_CONTENT
 )
 layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)
 layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL)
 adView!!.layoutParams = layoutParams
 mRelativeLayout?.addView(adView)
重要, 針對SDK 2.0後,請在Activity的生命週期中加入下述的呼叫,以便取得更好的服務經驗
 override fun onDestroy() {
       if (view is TWMAdView) {
          view.destroy()
       }
       mRelativeLayout?.removeAllViews()
       super.onDestroy()
   }
 



  • 加入TWMAdViewListener監聽廣告投放情況
 adView.setAdListener(object : TWMAdViewListener {
    override fun onReceiveAd(ad: TWMAd) {
         // 表示本次請求收到廣告
    }
    override fun onFailedToReceiveAd(ad: TWMAd, errorCode: TWMAdRequest.ErrorCode) {
         // 表示本次請求發生錯誤, 並沒有廣告內容可供使用
    }
    override fun onPresentScreen(ad: TWMAd) {
         // 表示廣告內容已呈現
    }
    override fun onDismissScreen(ad: TWMAd) {
         // 表示廣告內容已被關閉
    }
    override fun onLeaveApplication(ad: TWMAd) {
         // 表示因點擊廣告或其他因素離開app
    }
 })



  • 請求廣告
請求廣告前,你需要創建一個預設的TWMAdRequest物件
並將TWMAdReqeust物件傳入loadAd
 adView?.loadAd(TWMAdRequest())	


或是,透過TWMAdRequest額外設置使用者生日,可讓您的APP獲得更多元的廣告內容
使用Date 使用Calendar
 val request = TWMAdRequest()
 try {
 	// 定義好時間字串的格式
 	val sdf = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault())
 	// 將字串轉成Date型
 	val birthDate: Date = sdf.parse("1992/01/01")
 	// 將生日加入request
 	request.setBirthday(birthDate)
 } catch (Exception e) {}
 
 // 透過TWMAdRequest載入廣告
 adView?.loadAd(adRequest)
 // 創建Calendar並設定生日 (注意! 月份的編號是由0至11)
 val birthDate = Calendar.getInstance()
 // 設定生日為1992/01/01
 birthDate[1992, 1] = 1
 
 // 將生日加入request
 val adRequest = TWMAdRequest()
 request.setBirthday(birthDate)
 
 // 透過TWMAdRequest載入廣告
 adView?.loadAd(adRequest)



畫面展示

應用程式開啟 點擊Banner後開啟網頁 點擊Banner後撥打電話
SDK8 banner.png SDK8 banner click.png 4.png



回首頁