Android Banner Ads I 2.0
於 2015年9月18日 (五) 03:21 由 imported>Wikiuser 所做的修訂
- 宣告Banner廣告版位
TAMedia Banner廣告支援下列數種形式
廣告格式 | BANNER | SMART_BANNER | IAB_MRECT | IAB_BANNER | IAB_LEADERBOARD |
大小(寬度x高度) | 320x50 | 自動對應裝置寬度, 並對應適當的高度 | 300x250 | 468x60 | 728x90 |
TWMAdSize 常數值 | TWMAdSize.BANNER | TWMAdSize.SMART_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後撥打電話 |
- 接下來可以參考進階的 Interstitial Ads/Video Ads