「Android InRead Ads SDK8」修訂間的差異
跳至導覽
跳至搜尋
imported>Wikiuser (新頁面: == <b>簡介</b> == :InRead廣告是SDK8新增的內嵌式廣告 :InRead廣告是SDK6新增的內嵌式廣告, 您可將廣告放置在文章、列表中, 當App使用者滑動到您...) |
imported>Wikiuser |
||
行 1: | 行 1: | ||
== <b>簡介</b> == | == <b>簡介</b> == | ||
:InRead廣告是SDK8新增的內嵌式廣告 | :InRead廣告是SDK8新增的內嵌式廣告, 您可將廣告放置在文章、列表中, 當App使用者滑動到您指定的位置時便可看見InRead廣告, 若該廣告為影音廣告, 會等待廣告出現在畫面中才會進行撥放。<br> | ||
:InRead廣告為: | |||
: | |||
<ul> | <ul> | ||
:<li><b>Anchor:</b> 固定在螢幕下方的廣告, 廣告高度不會超過螢幕的30%</li> | :<li><b>Anchor:</b> 固定在螢幕下方的廣告, 廣告高度不會超過螢幕的30%</li> | ||
</ul> | </ul> | ||
行 18: | 行 14: | ||
<br> | <br> | ||
:而在介接方式上, | :而在介接方式上, Anchor與懸浮廣告相似, 下列章節將說明如何串接InRead廣告 | ||
<br> | <br> | ||
== <b>廣告串接方式</b> == | == <b>廣告串接方式</b> == | ||
===<b>Anchor</b> === | ===<b>Anchor</b> === | ||
: | :Anchor廣告, 不需事先設置XML或透過程式動態加入廣告View(addView), 只要直接初始InRead物件並請求廣告即可。 | ||
<big><u>Step 1: 廣告初始設置</u></big><br> | <big><u>Step 1: 廣告初始設置</u></big><br> | ||
:您必須依序輸入<b>Activity</b>、<b>InRead Anchor版位ID</b>以初始化InRead物件, 並且設置Listener偵聽廣告的Callback | :您必須依序輸入<b>Activity</b>、<b>InRead Anchor版位ID</b>以初始化InRead物件, 並且設置Listener偵聽廣告的Callback | ||
:<b><span style="color:red;">重要! 請務必在onResume、onPause和onDestroy分別加上resume、pause和destroy函式, 避免廣告發生無法預期的問題</span></b> | :<b><span style="color:red;">重要! 請務必在onResume、onPause和onDestroy分別加上resume、pause和destroy函式, 避免廣告發生無法預期的問題</span></b> | ||
class InReadActivityKt:AppCompatActivity() { | |||
private var mTestResult: TextView? =null | |||
private var anchorView: TWMInReadAdAnchor? = null | |||
override fun onCreate(savedInstanceState: Bundle?) { | |||
super.onCreate(savedInstanceState) | |||
super.onCreate(savedInstanceState) | setContentView(R.layout.activity_inread) | ||
setContentView(R.layout. | mTestResult = findViewById(R.id.inread_result) | ||
initAd() | |||
} | |||
anchorView = | private fun initAd() { | ||
anchorView = TWMInReadAdAnchor(this,TAMEDIA_INREAD_ANCHOR_ADUNITID) | |||
anchorView.apply { anchorView?.setAdListener(this@InReadActivityKt) } | |||
anchorView.setAdListener( | anchorView?.loadAd(TWMAdRequest()) | ||
} | |||
override fun onResume() { | |||
super.onResume() | |||
anchorView?.resume() | |||
} | |||
override fun onPause() { | |||
super.onPause() | |||
anchorView?.pause() | |||
} | |||
override fun onDestroy() { | |||
anchorView?.destroy() | |||
super.onDestroy() | |||
} | |||
anchorView.setAdListener(object : TWMAdViewListener { | |||
override fun onReceiveAd(paramTWMAd: TWMAd) { | |||
// 表示本次請求收到廣告, | |||
interstitialAd?.show() | |||
} | |||
override fun onFailedToReceiveAd(paramTWMAd: TWMAd?, paramErrorCode: ErrorCode?) { | |||
// 表示本次請求發生錯誤, 並沒有廣告內容可供使用 | |||
} | } | ||
override fun onPresentScreen(paramTWMAd: TWMAd) { | |||
// native ad 並不使用本介面功能 | |||
} | } | ||
override fun onDismissScreen(paramTWMAd: TWMAd) { | |||
// native ad 並不使用本介面功能 | |||
} | } | ||
override fun onLeaveApplication(paramTWMAd: TWMAd) { | |||
// native ad 並不使用本介面功能 | |||
} | } | ||
}) | |||
companion object{ | |||
const val TAMEDIA_INREAD_ANCHOR_ADUNITID: String = "{TAMEDIA_INREAD_ANCHOR_ADUNITID}" | |||
} | |||
} | } | ||
行 381: | 行 76: | ||
:在您需要的地方呼叫loadAd以進行廣告請求 | :在您需要的地方呼叫loadAd以進行廣告請求 | ||
// Request inread from TAMedia. | // Request inread from TAMedia. | ||
anchorView?.loadAd(TWMAdRequest()) | |||
<br> | <br> | ||
:(Optional) 在請求廣告前,可以透過TWMAdRequest設置使用者生日,讓您的APP獲得更多元的廣告內容<br> | :(Optional) 在請求廣告前,可以透過TWMAdRequest設置使用者生日,讓您的APP獲得更多元的廣告內容<br> | ||
行 391: | 行 84: | ||
|- | |- | ||
| style="width:60%; padding:1%;"| | | style="width:60%; padding:1%;"| | ||
val adRequest = TWMAdRequest() | |||
try { | |||
//定義好時間字串的格式 | |||
val sdf = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault()) | |||
//將字串轉成Date型 | |||
val birthDate: Date = sdf.parse("1992/01/01") | |||
// 將生日加入request | |||
request.setBirthday(birthDate) | |||
}catch (e: Exception) {} | |||
<b>// 透過TWMAdRequest載入廣告</b> | <b>// 透過TWMAdRequest載入廣告</b> | ||
anchorView.loadAd( | anchorView.loadAd(adRequest); | ||
| style="width:40%; padding: 1%;"| | | style="width:40%; padding: 1%;"| | ||
<b>// 創建Calerdar並設定生日 (注意! 月份的編號是由0至11)</b> | <b>// 創建Calerdar並設定生日 (注意! 月份的編號是由0至11)</b> | ||
Calendar birthDate = Calendar.getInstance(); | Calendar birthDate = Calendar.getInstance(); | ||
<b>// 設定生日為1992/01/01</b> | <b>// 設定生日為1992/01/01</b> | ||
birthDate | birthDate[1992, 0] = 1 | ||
<b>// 將生日加入request</b> | <b>// 將生日加入request</b> | ||
val request = TWMAdRequest() | |||
request.setBirthday(birthDate) | request.setBirthday(birthDate) | ||
<b>// 透過TWMAdRequest載入廣告</b> | <b>// 透過TWMAdRequest載入廣告</b> |
於 2021年8月26日 (四) 13:09 的修訂
簡介
- InRead廣告是SDK8新增的內嵌式廣告, 您可將廣告放置在文章、列表中, 當App使用者滑動到您指定的位置時便可看見InRead廣告, 若該廣告為影音廣告, 會等待廣告出現在畫面中才會進行撥放。
- InRead廣告為:
- Anchor: 固定在螢幕下方的廣告, 廣告高度不會超過螢幕的30%
- 在投放限制方面,由於不同版本的手機支援程度不同,InRead廣告僅會投放在符合下列條件的手機:
- Android 5.0 (API 21) 以上
- Android System WebView 版本43 以上
- 而在介接方式上, Anchor與懸浮廣告相似, 下列章節將說明如何串接InRead廣告
廣告串接方式
Anchor
- Anchor廣告, 不需事先設置XML或透過程式動態加入廣告View(addView), 只要直接初始InRead物件並請求廣告即可。
Step 1: 廣告初始設置
- 您必須依序輸入Activity、InRead Anchor版位ID以初始化InRead物件, 並且設置Listener偵聽廣告的Callback
- 重要! 請務必在onResume、onPause和onDestroy分別加上resume、pause和destroy函式, 避免廣告發生無法預期的問題
class InReadActivityKt:AppCompatActivity() { private var mTestResult: TextView? =null private var anchorView: TWMInReadAdAnchor? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_inread) mTestResult = findViewById(R.id.inread_result) initAd() } private fun initAd() { anchorView = TWMInReadAdAnchor(this,TAMEDIA_INREAD_ANCHOR_ADUNITID) anchorView.apply { anchorView?.setAdListener(this@InReadActivityKt) } anchorView?.loadAd(TWMAdRequest()) } override fun onResume() { super.onResume() anchorView?.resume() } override fun onPause() { super.onPause() anchorView?.pause() } override fun onDestroy() { anchorView?.destroy() super.onDestroy() } anchorView.setAdListener(object : TWMAdViewListener { override fun onReceiveAd(paramTWMAd: TWMAd) { // 表示本次請求收到廣告, interstitialAd?.show() } override fun onFailedToReceiveAd(paramTWMAd: TWMAd?, paramErrorCode: ErrorCode?) { // 表示本次請求發生錯誤, 並沒有廣告內容可供使用 } override fun onPresentScreen(paramTWMAd: TWMAd) { // native ad 並不使用本介面功能 } override fun onDismissScreen(paramTWMAd: TWMAd) { // native ad 並不使用本介面功能 } override fun onLeaveApplication(paramTWMAd: TWMAd) { // native ad 並不使用本介面功能 } }) companion object{ const val TAMEDIA_INREAD_ANCHOR_ADUNITID: String = "{TAMEDIA_INREAD_ANCHOR_ADUNITID}" } }
Step 2: 請求廣告
- 在您需要的地方呼叫loadAd以進行廣告請求
// Request inread from TAMedia. anchorView?.loadAd(TWMAdRequest())
- (Optional) 在請求廣告前,可以透過TWMAdRequest設置使用者生日,讓您的APP獲得更多元的廣告內容
使用Date | 使用Calendar |
---|---|
val adRequest = TWMAdRequest() try { //定義好時間字串的格式 val sdf = SimpleDateFormat("yyyy/MM/dd", Locale.getDefault()) //將字串轉成Date型 val birthDate: Date = sdf.parse("1992/01/01") // 將生日加入request request.setBirthday(birthDate) }catch (e: Exception) {} // 透過TWMAdRequest載入廣告 anchorView.loadAd(adRequest); |
// 創建Calerdar並設定生日 (注意! 月份的編號是由0至11) Calendar birthDate = Calendar.getInstance(); // 設定生日為1992/01/01 birthDate[1992, 0] = 1 // 將生日加入request val request = TWMAdRequest() request.setBirthday(birthDate) // 透過TWMAdRequest載入廣告 anchorView.loadAd(request); |
硬體加速
- HardWare Acceleration是Android 3.0 (API 11) 加入的feature,該選項在Android 4.0 (API 14)時預設是enable。由於部分InRead廣告會投放影音廣告,請不要將此選項關閉避免影音廣告無法呈現。
- 如有需要在Application Level關閉此選項,請針對要投放InRead廣告的Activity開啟即可,範例如下:
<application android:hardwareAccelerated="false" ...> <!-- 假使您需要在Application Level關閉hardwareAccelerated --> <activity ... /> <activity android:name=".InReadActivity" android:hardwareAccelerated="true" ... > <!-- 在欲投放InRead廣告的Activity打開此選項即可 --> </activity> </application>
測試模式
- 若需要進行廣告投放的測試,可以透過測試模式來請求廣告, ※測試模式將不會紀錄任何的曝光以及點擊數據
- 以下以Anchor為範例, 假設您已完成 Anchor Step 1
- 請求廣告
TWMAdRequest request = new TWMAdRequest(); String deviceId = getDeviceId(getBaseContext()); request.addTestDevice(deviceId); // 加入測試的手機Id anchorView.loadAd(request);
- 實作函式以取得Device Id
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; } }
廣告畫面展示
大圖式 | 300x250 | Anchor |