<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.tamedia.com.tw/wiki/index.php?action=history&amp;feed=atom&amp;title=Android_Integeration_with_AdMob_Mediation%CB%8DSDK7</id>
	<title>Android Integeration with AdMob MediationˍSDK7 - 修訂歷史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tamedia.com.tw/wiki/index.php?action=history&amp;feed=atom&amp;title=Android_Integeration_with_AdMob_Mediation%CB%8DSDK7"/>
	<link rel="alternate" type="text/html" href="https://wiki.tamedia.com.tw/wiki/index.php?title=Android_Integeration_with_AdMob_Mediation%CB%8DSDK7&amp;action=history"/>
	<updated>2026-05-01T19:38:57Z</updated>
	<subtitle>本 Wiki 上此頁面的修訂歷史</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.tamedia.com.tw/wiki/index.php?title=Android_Integeration_with_AdMob_Mediation%CB%8DSDK7&amp;diff=1673&amp;oldid=prev</id>
		<title>imported&gt;Wikiuser：新頁面: &lt;p style=&quot;font-size: 18px;&quot;&gt;AdMob網站: https://apps.admob.com/ &lt;br&gt;&lt;br&gt;&lt;/p&gt;  = '''新增應用程式''' = &lt;ul&gt; &lt;li&gt;&lt;p style=&quot;font-size: 18px;&quot;&gt;進入 AdMob 網頁選擇 '''應用程...</title>
		<link rel="alternate" type="text/html" href="https://wiki.tamedia.com.tw/wiki/index.php?title=Android_Integeration_with_AdMob_Mediation%CB%8DSDK7&amp;diff=1673&amp;oldid=prev"/>
		<updated>2021-08-31T10:14:33Z</updated>

		<summary type="html">&lt;p&gt;新頁面: &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;AdMob網站: https://apps.admob.com/ &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;  = &amp;#039;&amp;#039;&amp;#039;新增應用程式&amp;#039;&amp;#039;&amp;#039; = &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;進入 AdMob 網頁選擇 &amp;#039;&amp;#039;&amp;#039;應用程...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;AdMob網站: https://apps.admob.com/ &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= '''新增應用程式''' =&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;進入 AdMob 網頁選擇 '''應用程式''' &amp;gt; '''新增應用程式'''&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_application_00.PNG | 600px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;輸入應用程式名稱並選擇平台&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_application_01.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;建立完成，請記下'''應用程式 ID'''&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_application_02.PNG | 800px ]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= '''新增廣告單元''' =&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;點選先前建立的應用程式並選擇 '''廣告單元''' &amp;gt; '''開始匯入'''&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_adunit_00.PNG | 1000px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;選擇欲建立的廣告單元 (以'''橫幅廣告'''為例)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_adunit_01.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;輸入廣告單元名稱&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_adunit_02.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;建立完成，請記下 AdMob 的'''廣告單元ID'''&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_adunit_03.PNG | 800px ]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= '''新增中介服務群組''' =&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;進入 AdMob 網頁選擇 '''中介服務''' &amp;gt; '''新增中介服務群組'''&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_00.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;設定廣告格式、平台&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_01.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;設定中介群組名稱並點選'''加入廣告單元'''&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_02.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;選擇先前建立的廣告單元 (以'''橫幅廣告'''為例)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_03.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
   &amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;點選'''新增自訂事件'''，並設定下列相關資訊：&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;'''有效千次曝光出價''': 越高代表該家聯播網廣告曝光的機會越高&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;'''Class Name''': 根據您的專案輸入 mediation code 的 package name，如: com.taiwanmobile.pt.adp.mediation.TAMediaBanner (下方'''[[#實作 Mediation Code|實作 Mediation Code]]'''章節會說明Mediation Code的實作方式)&amp;lt;/p&amp;gt;&lt;br /&gt;
   &amp;lt;p style=&amp;quot;font-size: 16px&amp;quot;&amp;gt;'''Parameter''': 輸入您的 TAMedia 廣告版位ID &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_04.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_05.PNG | 800px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_06.PNG | 1200px ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;點選完成後，中介服務群組的設置便結束&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
[[ image:admob_medgroup_07.PNG | 1200px ]]&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= '''程式整合''' =&lt;br /&gt;
&lt;br /&gt;
== '''Getting Started''' ==&lt;br /&gt;
:&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;1. 請參考'''[https://developers.google.com/admob/android/quick-start?hl=zh-TW AdMob for Android]'''網站提供的方式整合Google Ads SDK，此步驟會使用到'''[[#新增應用程式|新增應用程式]]'''所取得的'''應用程式ID'''&amp;lt;/p&amp;gt;&lt;br /&gt;
:&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;2. 下載'''[[Download MADP Android SDK | TAMedia Android SDK]]'''，並參考'''[[Android Getting Started 3.0 | 開始使用Getting Started]]'''整合TAMedia Android SDK&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''實作 Mediation Code'''==&lt;br /&gt;
=== Banner ===&lt;br /&gt;
:&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;依照下列方式實作AdMob所提供的CustomEventBanner&amp;lt;/p&amp;gt;&lt;br /&gt;
  package com.taiwanmobile.pt.adp.mediation;&lt;br /&gt;
  &lt;br /&gt;
  import android.app.Activity;&lt;br /&gt;
  import android.content.Context;&lt;br /&gt;
  import android.os.Bundle;&lt;br /&gt;
  import android.util.Log;&lt;br /&gt;
  &lt;br /&gt;
  import com.google.android.gms.ads.AdRequest;&lt;br /&gt;
  import com.google.android.gms.ads.AdSize;&lt;br /&gt;
  import com.google.android.gms.ads.mediation.MediationAdRequest;&lt;br /&gt;
  import com.google.android.gms.ads.mediation.customevent.CustomEventBanner;&lt;br /&gt;
  import com.google.android.gms.ads.mediation.customevent.CustomEventBannerListener;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAd;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdRequest;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdRequest.ErrorCode;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdSize;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdView;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdViewListener;&lt;br /&gt;
  &lt;br /&gt;
  import java.util.Calendar;&lt;br /&gt;
  import java.util.Date;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;b&amp;gt;// 需將本class的完整類別名稱 com.taiwanmobile.pt.adp.mediation.TAMediaBanner註冊於中介服務群組, 如[[ #新增中介服務群組 | 新增中介服務群組 ]]所述&amp;lt;/b&amp;gt;&lt;br /&gt;
  public class TAMediaBanner implements CustomEventBanner {&lt;br /&gt;
      &lt;br /&gt;
      private static final String TAG = &amp;quot;TAMediaBanner&amp;quot;;&lt;br /&gt;
      &lt;br /&gt;
      private TWMAdView adView = null;&lt;br /&gt;
  &lt;br /&gt;
      @Override&lt;br /&gt;
      public void requestBannerAd(final Context context,&lt;br /&gt;
                                  final CustomEventBannerListener customEventBannerListener,&lt;br /&gt;
                                  String serverParameter,&lt;br /&gt;
                                  AdSize adSize,&lt;br /&gt;
                                  MediationAdRequest mediationAdRequest,&lt;br /&gt;
                                  Bundle bundle) {&lt;br /&gt;
          &amp;lt;b&amp;gt;// serverParameter: AdMob 後台設定的 TAMedia Slot ID, 會藉由此參數獲得&amp;lt;/b&amp;gt;&lt;br /&gt;
          Log.d(TAG, &amp;quot;requestBannerAd(&amp;quot;+serverParameter+&amp;quot;) invoked!!&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
          adView = new TWMAdView( (Activity) context, convertAdSize(adSize), serverParameter);&lt;br /&gt;
          adView.setAdListener(new TWMAdViewListener(){&lt;br /&gt;
              @Override&lt;br /&gt;
              public void onReceiveAd(TWMAd ad) {&lt;br /&gt;
                  ((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
                      @Override&lt;br /&gt;
                      public void run() {&lt;br /&gt;
                          customEventBannerListener.onAdLoaded(adView);&lt;br /&gt;
                      }&lt;br /&gt;
                  });&lt;br /&gt;
              }&lt;br /&gt;
  &lt;br /&gt;
              @Override&lt;br /&gt;
              public void onFailedToReceiveAd(TWMAd ad, final ErrorCode errorCode) {&lt;br /&gt;
                  ((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
                      @Override&lt;br /&gt;
                      public void run() {&lt;br /&gt;
                          customEventBannerListener.onAdFailedToLoad(convertErrorCode(errorCode));&lt;br /&gt;
                      }&lt;br /&gt;
                  });&lt;br /&gt;
              }&lt;br /&gt;
  &lt;br /&gt;
              @Override&lt;br /&gt;
              public void onPresentScreen(TWMAd ad) {&lt;br /&gt;
                  ((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
                      @Override&lt;br /&gt;
                      public void run() {&lt;br /&gt;
                          customEventBannerListener.onAdOpened();&lt;br /&gt;
                          &amp;lt;b&amp;gt;//若您需要在AdMob報表上觀察點擊率, 請加入CustomEventBannerListener.onClick()&amp;lt;/b&amp;gt;&lt;br /&gt;
                          customEventBannerListener.onAdClicked();&lt;br /&gt;
                      }&lt;br /&gt;
                  });&lt;br /&gt;
  &lt;br /&gt;
              }&lt;br /&gt;
  &lt;br /&gt;
              @Override&lt;br /&gt;
              public void onDismissScreen(TWMAd ad) {&lt;br /&gt;
                  ((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
                      @Override&lt;br /&gt;
                      public void run() {&lt;br /&gt;
                          customEventBannerListener.onAdClosed();&lt;br /&gt;
                      }&lt;br /&gt;
                  });&lt;br /&gt;
              }&lt;br /&gt;
  &lt;br /&gt;
              @Override&lt;br /&gt;
              public void onLeaveApplication(TWMAd ad) {&lt;br /&gt;
                  ((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
                      @Override&lt;br /&gt;
                      public void run() {&lt;br /&gt;
                          customEventBannerListener.onAdLeftApplication();&lt;br /&gt;
                      }&lt;br /&gt;
                  });&lt;br /&gt;
              }&lt;br /&gt;
          });&lt;br /&gt;
  &lt;br /&gt;
          adView.loadAd(convertAdRequest(mediationAdRequest));&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
      @Override&lt;br /&gt;
      public void onDestroy() {&lt;br /&gt;
          if(adView != null){&lt;br /&gt;
              adView.destroy();&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
      @Override&lt;br /&gt;
      public void onPause() {}&lt;br /&gt;
  &lt;br /&gt;
      @Override&lt;br /&gt;
      public void onResume() {}&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
      &amp;lt;b&amp;gt;//將AdMob所提供的MediationAdRequest轉換為TWMAdRequest&amp;lt;/b&amp;gt;&lt;br /&gt;
      private TWMAdRequest convertAdRequest(MediationAdRequest request) {&lt;br /&gt;
          TWMAdRequest adRequest = new TWMAdRequest();&lt;br /&gt;
          if (request.getBirthday() != null) {&lt;br /&gt;
  &lt;br /&gt;
              Date bDay = request.getBirthday();&lt;br /&gt;
              adRequest.setBirthday(bDay);&lt;br /&gt;
  &lt;br /&gt;
              Calendar cal = Calendar.getInstance();&lt;br /&gt;
              cal.setTime(bDay);&lt;br /&gt;
              adRequest.setAge(getAgeByBirthday(&lt;br /&gt;
                      cal.get(Calendar.YEAR),&lt;br /&gt;
                      cal.get(Calendar.MONTH),&lt;br /&gt;
                      cal.get(Calendar.DATE)));&lt;br /&gt;
          }&lt;br /&gt;
  &lt;br /&gt;
          if (request.getGender() == AdRequest.GENDER_FEMALE) {&lt;br /&gt;
              adRequest.setGender(TWMAdRequest.Gender.FEMALE);&lt;br /&gt;
          } else if (request.getGender() == AdRequest.GENDER_MALE) {&lt;br /&gt;
              adRequest.setGender(TWMAdRequest.Gender.MALE);&lt;br /&gt;
          } else {&lt;br /&gt;
              adRequest.setGender(TWMAdRequest.Gender.UNKNOWN);&lt;br /&gt;
          }&lt;br /&gt;
  &lt;br /&gt;
          return adRequest;&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
      &amp;lt;b&amp;gt;//將AdMob的AdSize轉換為TWMAdSize&amp;lt;/b&amp;gt;&lt;br /&gt;
      private TWMAdSize convertAdSize(AdSize adSize) {&lt;br /&gt;
          if (isAdSizeEqual(adSize, TWMAdSize.BANNER)) {&lt;br /&gt;
              return TWMAdSize.BANNER;&lt;br /&gt;
          } else if (isAdSizeEqual(adSize, TWMAdSize.IAB_MRECT)) {&lt;br /&gt;
              return TWMAdSize.IAB_MRECT;&lt;br /&gt;
          } else if (isAdSizeEqual(adSize, TWMAdSize.IAB_BANNER)) {&lt;br /&gt;
              return TWMAdSize.IAB_BANNER;&lt;br /&gt;
          } else if (isAdSizeEqual(adSize, TWMAdSize.IAB_LEADERBOARD)) {&lt;br /&gt;
              return TWMAdSize.IAB_LEADERBOARD;&lt;br /&gt;
          } else if (isAdSizeEqual(adSize, TWMAdSize.IAB_WIDE_SKYSCRAPER)) {&lt;br /&gt;
              return TWMAdSize.IAB_WIDE_SKYSCRAPER;&lt;br /&gt;
          } else if (isAdSizeEqual(adSize, TWMAdSize.SMART_BANNER)) {&lt;br /&gt;
              return TWMAdSize.SMART_BANNER;&lt;br /&gt;
          } else {&lt;br /&gt;
              return TWMAdSize.BANNER;&lt;br /&gt;
          }&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
      private boolean isAdSizeEqual(AdSize adSize, TWMAdSize twmAdSize) {&lt;br /&gt;
          return (adSize.getWidth() == twmAdSize.getWidth()&lt;br /&gt;
                  &amp;amp;&amp;amp; adSize.getHeight() == twmAdSize.getHeight());&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
      &amp;lt;b&amp;gt;//將TAMedia ErrorCode轉換為AdMob的ErrorCode&amp;lt;/b&amp;gt;&lt;br /&gt;
      private int convertErrorCode(ErrorCode errorCode){&lt;br /&gt;
          if(errorCode.equals(ErrorCode.INTERNAL_ERROR)){&lt;br /&gt;
              return AdRequest.ERROR_CODE_INTERNAL_ERROR;&lt;br /&gt;
          }else if(errorCode.equals(ErrorCode.INVALID_REQUEST)){&lt;br /&gt;
              return AdRequest.ERROR_CODE_INVALID_REQUEST;&lt;br /&gt;
          }else if(errorCode.equals(ErrorCode.NETWORK_ERROR)){&lt;br /&gt;
              return AdRequest.ERROR_CODE_NETWORK_ERROR;&lt;br /&gt;
          }else if(errorCode.equals(ErrorCode.NO_FILL)){&lt;br /&gt;
              return AdRequest.ERROR_CODE_NO_FILL;&lt;br /&gt;
          }else&lt;br /&gt;
              return AdRequest.ERROR_CODE_NETWORK_ERROR;&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
      private int getAgeByBirthday(int year, int month, int day){&lt;br /&gt;
          Calendar dob = Calendar.getInstance();&lt;br /&gt;
          Calendar today = Calendar.getInstance();&lt;br /&gt;
  &lt;br /&gt;
          dob.set(year, month, day);&lt;br /&gt;
  &lt;br /&gt;
          int age = today.get(Calendar.YEAR) - dob.get(Calendar.YEAR);&lt;br /&gt;
          if (today.get(Calendar.DAY_OF_YEAR) &amp;lt; dob.get(Calendar.DAY_OF_YEAR)){&lt;br /&gt;
              age--;&lt;br /&gt;
          }&lt;br /&gt;
  &lt;br /&gt;
          Integer ageInt = new Integer(age);&lt;br /&gt;
          return ageInt.intValue();&lt;br /&gt;
      }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Interstitial ===&lt;br /&gt;
:&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;依照下列方式實作AdMob所提供的CustomEventInterstitial&amp;lt;/p&amp;gt;&lt;br /&gt;
  package com.taiwanmobile.pt.adp.mediation;&lt;br /&gt;
  &lt;br /&gt;
  import android.app.Activity;&lt;br /&gt;
  import android.content.Context;&lt;br /&gt;
  import android.os.Bundle;&lt;br /&gt;
  import android.util.Log;&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  import com.google.android.gms.ads.AdRequest;&lt;br /&gt;
  import com.google.android.gms.ads.mediation.MediationAdRequest;&lt;br /&gt;
  import com.google.android.gms.ads.mediation.customevent.CustomEventInterstitial;&lt;br /&gt;
  import com.google.android.gms.ads.mediation.customevent.CustomEventInterstitialListener;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAd;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdRequest;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdRequest.ErrorCode;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMAdViewListener;&lt;br /&gt;
  import com.taiwanmobile.pt.adp.view.TWMInterstitialAd;&lt;br /&gt;
  &lt;br /&gt;
  import java.util.Calendar;&lt;br /&gt;
  import java.util.Date;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;b&amp;gt;// 需將本class的完整類別名稱 com.taiwanmobile.pt.adp.mediation.TAMediaInterstitial註冊於中介服務群組, 如[[ #新增中介服務群組 | 新增中介服務群組 ]]所述&amp;lt;/b&amp;gt;&lt;br /&gt;
  public class TAMediaInterstitial implements CustomEventInterstitial {&lt;br /&gt;
  &lt;br /&gt;
  	private TWMInterstitialAd interstitialAd = null;&lt;br /&gt;
  &lt;br /&gt;
  	private static final String TAG =&amp;quot;TAMediaInterstitial&amp;quot;;&lt;br /&gt;
  &lt;br /&gt;
  	@Override&lt;br /&gt;
  	public void requestInterstitialAd(final Context context,&lt;br /&gt;
  					final CustomEventInterstitialListener customEventInterstitialListener,&lt;br /&gt;
  					String serverParameter,&lt;br /&gt;
  					MediationAdRequest mediationAdRequest,&lt;br /&gt;
  					Bundle bundle) {&lt;br /&gt;
  		&amp;lt;b&amp;gt;// serverParameter: AdMob 後台設定的 TAMedia Slot ID, 會藉由此參數獲得&amp;lt;/b&amp;gt;&lt;br /&gt;
  		Log.d(TAG, &amp;quot;requestInterstitialAd(&amp;quot;+serverParameter+&amp;quot;) &amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  		interstitialAd = new TWMInterstitialAd((Activity)context, serverParameter);&lt;br /&gt;
  &lt;br /&gt;
  		interstitialAd.setAdListener(new TWMAdViewListener() {&lt;br /&gt;
  &lt;br /&gt;
  			@Override&lt;br /&gt;
  			public void onReceiveAd(TWMAd ad) {&lt;br /&gt;
  				((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
  						@Override&lt;br /&gt;
  						public void run() {&lt;br /&gt;
  						customEventInterstitialListener.onAdLoaded();&lt;br /&gt;
  					}&lt;br /&gt;
  				});&lt;br /&gt;
  			}&lt;br /&gt;
  &lt;br /&gt;
  			@Override&lt;br /&gt;
  			public void onFailedToReceiveAd(TWMAd ad, final ErrorCode errorCode) {&lt;br /&gt;
  				((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
  					@Override&lt;br /&gt;
  					public void run() {&lt;br /&gt;
  						customEventInterstitialListener.onAdFailedToLoad(convertErrorCode(errorCode));&lt;br /&gt;
  					}&lt;br /&gt;
  				});&lt;br /&gt;
  			}&lt;br /&gt;
  &lt;br /&gt;
  			@Override&lt;br /&gt;
  			public void onPresentScreen(TWMAd ad) {&lt;br /&gt;
  				((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
  					@Override&lt;br /&gt;
  					public void run() {&lt;br /&gt;
  						customEventInterstitialListener.onAdOpened();&lt;br /&gt;
  					}&lt;br /&gt;
  				});&lt;br /&gt;
  			}&lt;br /&gt;
  &lt;br /&gt;
  			@Override&lt;br /&gt;
  			public void onDismissScreen(TWMAd ad) {&lt;br /&gt;
  				((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
  					@Override&lt;br /&gt;
  					public void run() {&lt;br /&gt;
  						customEventInterstitialListener.onAdClosed();&lt;br /&gt;
  					}&lt;br /&gt;
  				});&lt;br /&gt;
  			}&lt;br /&gt;
  &lt;br /&gt;
  			@Override&lt;br /&gt;
  			public void onLeaveApplication(TWMAd ad) {&lt;br /&gt;
  				((Activity) context).runOnUiThread(new Runnable() {&lt;br /&gt;
  					@Override&lt;br /&gt;
  					public void run() {&lt;br /&gt;
  						customEventInterstitialListener.onAdLeftApplication();&lt;br /&gt;
  					}&lt;br /&gt;
  				});&lt;br /&gt;
  			}&lt;br /&gt;
  &lt;br /&gt;
  		});&lt;br /&gt;
  &lt;br /&gt;
  		interstitialAd.loadAd(convertAdRequest(mediationAdRequest));&lt;br /&gt;
  	}&lt;br /&gt;
  &lt;br /&gt;
  	@Override&lt;br /&gt;
  	public void showInterstitial() {&lt;br /&gt;
  		if (interstitialAd != null) {&lt;br /&gt;
  			interstitialAd.show();&lt;br /&gt;
  		}&lt;br /&gt;
  	}&lt;br /&gt;
  &lt;br /&gt;
  	@Override&lt;br /&gt;
  	public void onDestroy() {}&lt;br /&gt;
  &lt;br /&gt;
  	@Override&lt;br /&gt;
  	public void onPause() {}&lt;br /&gt;
  &lt;br /&gt;
  	@Override&lt;br /&gt;
  	public void onResume() {}&lt;br /&gt;
  &lt;br /&gt;
  	&amp;lt;b&amp;gt;//將AdMob所提供的MediationAdRequest轉換為TWMAdRequest&amp;lt;/b&amp;gt;&lt;br /&gt;
  	private TWMAdRequest convertAdRequest(MediationAdRequest request) {&lt;br /&gt;
  		TWMAdRequest adRequest = new TWMAdRequest();&lt;br /&gt;
  		if (request.getBirthday() != null) {&lt;br /&gt;
  &lt;br /&gt;
  			Date bDay = request.getBirthday();&lt;br /&gt;
  			adRequest.setBirthday(bDay);&lt;br /&gt;
  &lt;br /&gt;
  			Calendar cal = Calendar.getInstance();&lt;br /&gt;
  			cal.setTime(bDay);&lt;br /&gt;
  			adRequest.setAge(getAgeByBirthday(&lt;br /&gt;
  					cal.get(Calendar.YEAR),&lt;br /&gt;
  					cal.get(Calendar.MONTH),&lt;br /&gt;
  					cal.get(Calendar.DATE)));&lt;br /&gt;
  		}&lt;br /&gt;
  &lt;br /&gt;
  		if (request.getGender() == AdRequest.GENDER_FEMALE) {&lt;br /&gt;
  			adRequest.setGender(TWMAdRequest.Gender.FEMALE);&lt;br /&gt;
  		} else if (request.getGender() == AdRequest.GENDER_MALE) {&lt;br /&gt;
  			adRequest.setGender(TWMAdRequest.Gender.MALE);&lt;br /&gt;
  		} else {&lt;br /&gt;
  			adRequest.setGender(TWMAdRequest.Gender.UNKNOWN);&lt;br /&gt;
  		}&lt;br /&gt;
  &lt;br /&gt;
  		return adRequest;&lt;br /&gt;
  	}&lt;br /&gt;
  &lt;br /&gt;
  	&amp;lt;b&amp;gt;//將TAMedia ErrorCode轉換為AdMob的ErrorCode&amp;lt;/b&amp;gt;&lt;br /&gt;
  	private int convertErrorCode(ErrorCode errorCode){&lt;br /&gt;
  		if(errorCode.equals(ErrorCode.INTERNAL_ERROR)){&lt;br /&gt;
  			return AdRequest.ERROR_CODE_INTERNAL_ERROR;&lt;br /&gt;
  		}else if(errorCode.equals(ErrorCode.INVALID_REQUEST)){&lt;br /&gt;
  			return AdRequest.ERROR_CODE_INVALID_REQUEST;&lt;br /&gt;
  		}else if(errorCode.equals(ErrorCode.NETWORK_ERROR)){&lt;br /&gt;
  			return AdRequest.ERROR_CODE_NETWORK_ERROR;&lt;br /&gt;
  		}else if(errorCode.equals(ErrorCode.NO_FILL)){&lt;br /&gt;
  			return AdRequest.ERROR_CODE_NO_FILL;&lt;br /&gt;
  		}else&lt;br /&gt;
  			return AdRequest.ERROR_CODE_NETWORK_ERROR;&lt;br /&gt;
  	}&lt;br /&gt;
  &lt;br /&gt;
  	private int getAgeByBirthday(int year, int month, int day){&lt;br /&gt;
  		Calendar dob = Calendar.getInstance();&lt;br /&gt;
  		Calendar today = Calendar.getInstance();&lt;br /&gt;
  &lt;br /&gt;
  		dob.set(year, month, day);&lt;br /&gt;
  &lt;br /&gt;
  		int age = today.get(Calendar.YEAR) - dob.get(Calendar.YEAR);&lt;br /&gt;
  		if (today.get(Calendar.DAY_OF_YEAR) &amp;lt; dob.get(Calendar.DAY_OF_YEAR)){&lt;br /&gt;
  			age--;&lt;br /&gt;
  		}&lt;br /&gt;
  &lt;br /&gt;
  		Integer ageInt = new Integer(age);&lt;br /&gt;
  		return ageInt.intValue();&lt;br /&gt;
  	}&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''範例程式碼''' ==&lt;br /&gt;
:&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;[[媒體:TAMedia_-_AdMob_Medation_20190926.zip  | Download Sample Code]]&amp;lt;/p&amp;gt;&lt;br /&gt;
::&amp;lt;p style=&amp;quot;font-size: 16px;&amp;quot;&amp;gt;※註: 範例專案需要在 '''AndroidManifest.xml''' 和 '''MainActivity.java''' 內分別輸入AdMob的 '''應用程式ID''' 與 '''廣告單元ID''' &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;以下以Banner為例:&amp;lt;/p&amp;gt;&lt;br /&gt;
::&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;1. 在layout檔案中加入可放置廣告的LinearLayout(※僅供參考,開發者可依照自訂的layout進行配置使用)&amp;lt;/p&amp;gt;&lt;br /&gt;
 &amp;lt;LinearLayout&lt;br /&gt;
    android:id=&amp;quot;@+id/Layout_AdView&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;wrap_content&amp;quot; /&amp;gt;&lt;br /&gt;
::&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;2. 程式加入Banner的宣告, 設定AdUnitId與AdSize&amp;lt;/p&amp;gt;&lt;br /&gt;
 public class MainActivity extends Activity {&lt;br /&gt;
    LinearLayout layout = null;&lt;br /&gt;
    @Override&lt;br /&gt;
    public void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
        super.onCreate(savedInstanceState);&lt;br /&gt;
        setContentView(R.layout.main);&lt;br /&gt;
        layout = (LinearLayout) this.findViewById(R.id.Layout_AdView);&lt;br /&gt;
        adView = new AdView(this);&lt;br /&gt;
        adView.setAdUnitId(&amp;quot;&amp;lt;b&amp;gt;&amp;lt;AdMob Banner Ad Unit ID&amp;gt;&amp;lt;/b&amp;gt;&amp;quot;);&lt;br /&gt;
        adView.setAdSize(AdSize.BANNER);    &lt;br /&gt;
        layout.addView(adView);&lt;br /&gt;
        AdRequest request = new AdRequest.Builder().build();&lt;br /&gt;
        adView.loadAd(request);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
::&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;程式內的&amp;lt;b&amp;gt;&amp;lt;AdMob Banner Ad Unit ID&amp;gt;&amp;lt;/b&amp;gt;為 '''[[#新增廣告單元|新增廣告單元]]''' 最後取得的AdMob廣告單元ID&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p style=&amp;quot;font-size: 18px;&amp;quot;&amp;gt;[[Android SDK Developer Guide 2| 回首頁]]&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>imported&gt;Wikiuser</name></author>
	</entry>
</feed>