「Android FloatAds」修訂間的差異
跳至導覽
跳至搜尋
imported>Wikiuser |
imported>Wikiuser |
||
(未顯示同一使用者於中間所作的 1 次修訂) | |||
行 5: | 行 5: | ||
// 依序傳入Activity, Ad Unit Id, 第三個參數為boolean值, 若您希望您的廣告呈現在畫面的左邊, 請傳入true, 右邊請傳入false | // 依序傳入Activity, Ad Unit Id, 第三個參數為boolean值, 若您希望您的廣告呈現在畫面的左邊, 請傳入true, 右邊請傳入false | ||
TWMFloatAdView | 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( | if(floatAdView != null) { | ||
// 呼叫TWMFloatAdView.destroy() | // 呼叫TWMFloatAdView.destroy() | ||
floatAdView.destroy(); | |||
} | } | ||
super.onDestroy(); | super.onDestroy(); | ||
行 20: | 行 52: | ||
@Override | @Override | ||
protected void onResume() { | protected void onResume() { | ||
if( | if(floatAdView != null) { | ||
// 呼叫TWMFloatAdView.resume() | // 呼叫TWMFloatAdView.resume() | ||
floatAdView.resume(); | |||
} | } | ||
super.onResume(); | super.onResume(); | ||
行 28: | 行 60: | ||
@Override | @Override | ||
protected void onPause() { | protected void onPause() { | ||
if( | if(floatAdView != null) { | ||
// 呼叫TWMFloatAdView.pause() | // 呼叫TWMFloatAdView.pause() | ||
floatAdView.pause(); | |||
} | } | ||
super.onPause(); | super.onPause(); | ||
行 37: | 行 69: | ||
*加入TWMAdViewListener監聽廣告投放情況 | *加入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)); | |||
private String getDeviceId(final Context context) { | 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) { | 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; | |||
} | |||
} | } | ||
<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畫面展示
未展開 | 展開 |