「Android FloatAds」修訂間的差異

出自TAMedia
跳至導覽 跳至搜尋
imported>Wikiuser
imported>Wikiuser
 
(未顯示同一使用者於中間所作的 2 次修訂)
行 1: 行 1:
*宣告懸浮廣告(FloatAd)廣告版位
*宣告懸浮廣告(FloatAd)廣告版位
FloatAd將以懸浮方式顯示在您的頁面之上,您不需要在您的layout XML預先設定或是在程式內動態addView。<br>  
FloatAd將以懸浮方式顯示在您的頁面之上,您不需要在您的layout XML預先設定或是在程式內動態addView。<br>  
請求廣告方法跟TWMAdView相同,透過loadAd方法產生廣告請求,請求成功後會自動將廣告呈現在畫面上,並依據您的版位呈現動畫效果。
請求廣告方法跟TWMAdView相同,透過loadAd方法產生廣告請求,請求成功後會自動將廣告呈現在畫面上,並依據您的版位呈現動畫效果。<br>
懸浮廣告的動畫效果有自動呈現和手動點擊後呈現兩種,請洽服務窗口了解更多詳情。
懸浮廣告的動畫效果有自動呈現和手動點擊後呈現兩種,請洽服務窗口了解更多詳情。


   // 依序傳入Activity, Ad Unit Id, 第三個參數為boolean值, 若您希望您的廣告呈現在畫面的左邊, 請傳入true, 右邊請傳入false
   // 依序傳入Activity, Ad Unit Id, 第三個參數為boolean值, 若您希望您的廣告呈現在畫面的左邊, 請傳入true, 右邊請傳入false
   TWMFloatAdView twmFloatAdView = new TWMFloatAdView(this, AD_UNIT_ID, isLeftSide);
   TWMFloatAdView floatAdView = new TWMFloatAdView(this, AD_UNIT_ID, isLeftSide);
   floatAdView.loadAd(new TWMAdRequest());
   floatAdView.loadAd(new TWMAdRequest());
 
<br>
(Optional) 在載入廣告前,可以透過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) {}
 
  <b>// 透過TWMAdRequest載入廣告</b>
  floatAdView.loadAd(request);
| 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);
 
  <b>// 透過TWMAdRequest載入廣告</b>
  floatAdView.loadAd(request);
|}
<br>
<b><span style="color:#ff0000">重要, 請在Activity的生命週期中加入下述的呼叫, 以正確release FloatAd</span></b>
<b><span style="color:#ff0000">重要, 請在Activity的生命週期中加入下述的呼叫, 以正確release FloatAd</span></b>


   @Override
   @Override
   protected void onDestroy() {
   protected void onDestroy() {
     if(twmFloatAdView!= null) {
     if(floatAdView != null) {
       // 呼叫TWMFloatAdView.destroy()
       // 呼叫TWMFloatAdView.destroy()
       twmFloatAdView.destroy();
       floatAdView.destroy();
     }
     }
     super.onDestroy();
     super.onDestroy();
行 20: 行 52:
   @Override
   @Override
   protected void onResume() {
   protected void onResume() {
     if(twmFloatAdView!= null) {
     if(floatAdView != null) {
       // 呼叫TWMFloatAdView.resume()
       // 呼叫TWMFloatAdView.resume()
       twmFloatAdView.resume();
       floatAdView.resume();
     }
     }
     super.onResume();
     super.onResume();
行 28: 行 60:
   @Override
   @Override
   protected void onPause() {
   protected void onPause() {
     if(twmFloatAdView!= null) {
     if(floatAdView != null) {
       // 呼叫TWMFloatAdView.pause()
       // 呼叫TWMFloatAdView.pause()
       twmFloatAdView.pause();
       floatAdView.pause();
     }
     }
     super.onPause();
     super.onPause();
行 37: 行 69:


*加入TWMAdViewListener監聽廣告投放情況
*加入TWMAdViewListener監聽廣告投放情況
   twmFloatAdView.setAdListener(new TWMAdViewListener(){
   floatAdView.setAdListener(new TWMAdViewListener(){
     public void onReceiveAd(TWMAd ad){
     public void onReceiveAd(TWMAd ad){
         // 成功收到廣告時通知
         // 成功收到廣告時通知
行 54: 行 86:
   }   
   }   
  });
  });
<br>
*若需要進行廣告投放的測試,可使用測試模式來請求廣告, ※測試模式將不會紀錄任何的曝光以及點擊數據
  String deviceId = getDeviceId(getBaseContext());
  floatAdView.loadAd(new TWMAdRequest().addTestDevice(deviceId));


*若需要進行廣告投放的測試,可以測試模式來請求廣告, ※測試模式將不會紀錄任何的曝光以及點擊數據
// 請在將要載入廣告所使用的TWMAdView / TWMInterstitialAd / TWMVideoAd / TWMFloatAdView以下列的方式進行廣告請求, 下面以TWMAdView (Banner Ad)來進行示範
  TWMAdView adView = new TWMAdView(this, {YOUR_ADUNIT_ID_BANNER});
  TWMAdRequest request = new TWMAdRequest();
  deviceId = getDeviceId(getBaseContext());
  request.addTestDevice(deviceId); // 加入測試的手機Id
  adView.loadAd(request);
   private String getDeviceId(final Context context) {
   private String getDeviceId(final Context context) {
      String deviceId = null;
    String deviceId = null;
      try {
    try {
              deviceId = android.provider.Settings.Secure.getString(
        deviceId = android.provider.Settings.Secure.getString(context.getContentResolver(), Secure.ANDROID_ID);
                              context.getContentResolver(), Secure.ANDROID_ID);
        if (deviceId!= null) {
              if (deviceId!= null) {
          return convertToMD5ID(deviceId);
                return convertToMD5ID(deviceId);
        }
              }
    } catch (Exception e) {
      } catch (Exception e) {
        Log.e("getDeviceId", e.getMessage(), e);
              Log.e("getDeviceId", e.getMessage(), e);
    }
      }
    return deviceId;
      return deviceId;
   }
   }
 
   private String convertToMD5ID(final String string) {
   private String convertToMD5ID(final String string) {
      if (string == null) {
    if (string == null) {
              return null;
        return null;
      }
    }
      try {
    try {
          MessageDigest md = MessageDigest.getInstance("MD5");
        MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(string.getBytes());
        md.update(string.getBytes());
            BigInteger number = new BigInteger(1, md.digest());
        BigInteger number = new BigInteger(1, md.digest());
            String md5 = number.toString(16);
        String md5 = number.toString(16);
            while (md5.length() < 32)
        while (md5.length() < 32)
          md5 = "0" + md5;
          md5 = "0" + md5;
          return md5;
        return md5;
      } catch (NoSuchAlgorithmException e) {
    } catch (NoSuchAlgorithmException e) {
          return null;
        return null;
      }
    }
   }
   }
<br><br>


*FloatAd畫面展示
*FloatAd畫面展示
{| width="70%" border="1"
|-
| align="center" | 未展開
| align="center" | 展開
|-
| align="center" | [[檔案:Float_ad_1.png]]
| align="center" | [[檔案:Float_ad_2.png]]
|}
<br><br>
[[Android SDK Developer Guide 2 | 回首頁]]

於 2019年9月3日 (二) 03:59 的最新修訂

  • 宣告懸浮廣告(FloatAd)廣告版位

FloatAd將以懸浮方式顯示在您的頁面之上,您不需要在您的layout XML預先設定或是在程式內動態addView。
請求廣告方法跟TWMAdView相同,透過loadAd方法產生廣告請求,請求成功後會自動將廣告呈現在畫面上,並依據您的版位呈現動畫效果。
懸浮廣告的動畫效果有自動呈現和手動點擊後呈現兩種,請洽服務窗口了解更多詳情。

 // 依序傳入Activity, Ad Unit Id, 第三個參數為boolean值, 若您希望您的廣告呈現在畫面的左邊, 請傳入true, 右邊請傳入false
 TWMFloatAdView floatAdView = new TWMFloatAdView(this, AD_UNIT_ID, isLeftSide);
 floatAdView.loadAd(new TWMAdRequest());


(Optional) 在載入廣告前,可以透過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) {}
 
 // 透過TWMAdRequest載入廣告
 floatAdView.loadAd(request);
 // 創建Calerdar並設定生日 (注意! 月份的編號是由0至11)
 Calendar birthDate = Calendar.getInstance();
 // 設定生日為1992/01/01
 birthDate.set(1992, 0, 1);
 
 // 將生日加入request
 TWMAdRequest request = new TWMAdRequest();
 request.setBirthday(birthDate);
 
 // 透過TWMAdRequest載入廣告
 floatAdView.loadAd(request);


重要, 請在Activity的生命週期中加入下述的呼叫, 以正確release FloatAd

 @Override
 protected void onDestroy() {
   if(floatAdView != null) {
     // 呼叫TWMFloatAdView.destroy()
     floatAdView.destroy();
   }
   super.onDestroy();
 }
 @Override
 protected void onResume() {
   if(floatAdView != null) {
     // 呼叫TWMFloatAdView.resume()
     floatAdView.resume();
   }
   super.onResume();
 }
 @Override
 protected void onPause() {
   if(floatAdView != null) {
     // 呼叫TWMFloatAdView.pause()
     floatAdView.pause();
   }
   super.onPause();
 }


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


  • 若需要進行廣告投放的測試,可使用測試模式來請求廣告, ※測試模式將不會紀錄任何的曝光以及點擊數據
 String deviceId = getDeviceId(getBaseContext());
 floatAdView.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;
    }
 }



  • FloatAd畫面展示
未展開 展開
Float ad 1.png Float ad 2.png



回首頁