必要條件
本實作指南假設您已熟悉下列項目:
- AdSense 搜尋廣告自訂搜尋廣告導入作業 通訊協定
- Android 應用程式開發
- 連結 Google 行動廣告 Android 版 SDK 使用 Android Studio 專案 (現屬於 Google Play 服務的一部分)。 必須使用 Google Play 服務 9.0.0 版。
類別
如要在應用程式中放送 AdSense 搜尋廣告 (又稱為動態高度搜尋廣告), 實作下列類別:
- 這個類別繼承自 Android
ViewGroup
類別 AdSense 搜尋廣告SearchAdView
會透過DynamicHeightSearchAdRequest
,並顯示傳回的廣告。SearchAdView
應新增至應用程式任何現有的檢視區塊群組。 SearchAdView
必須根據結構定義執行個體化SearchAdView
的執行,通常是Activity
。- 將
SearchAdView
執行個體化後,您必須呼叫setAdSize()
方法 以AdSize.SEARCH
請求 AdSense 搜尋廣告。 其他列舉值會請求與行動應用程式搜尋廣告不相容的廣告。 - 使用屬性代碼對這個物件呼叫
setAdUnitId()
方法。
DynamicHeightSearchAdRequest.Builder
- 此類別會封裝廣告請求參數。 這類似於在 JavaScript 廣告請求物件中設定參數 (網頁選項、單元選項)。
- 使用適當的 setter 設定參數 (也就是
呼叫
setQuery()
來設定查詢參數)。
實作範例
以下範例說明如何使用 Activity
建立 SearchAdView
顯示為 ViewGroup
的子檢視畫面。為了正確請求 AdSense 搜尋廣告,請SearchAdView
物件必須使用 AdSize.SEARCH
呼叫 setAdSize()
方法。
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
在同一個 Activity
中,建立 DynamicHeightSearchAdRequest.Builder
指定將在 SearchAdView
中顯示的廣告參數。
AFSMA 廣告的設定方式與 AdSense 搜尋廣告自訂搜尋廣告相同;
查看 AdSense 搜尋廣告的自訂搜尋廣告
參考資料
。
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
您也可以在
DynamicHeightSearchAdRequest.Builder
敬上
物件。
如要發出廣告請求,請使用下列程式碼,呼叫 loadAd()
方法:
SearchAdView
物件的 DynamicHeightSearchAdRequest.Builder
物件:
searchAdView.loadAd(builder.build());
進階選項
大多數的廣告請求參數都可以透過 setter 方法設定
在 DynamicHeightSearchAdRequest.Builder
物件上。
任何不含 setter 方法的參數
您可以使用以下組合的鍵/值組合來設定「DynamicHeightSearchAdRequest.Builder
」:
setAdvancedOptionValue()
方法。
查看 AdSense 搜尋廣告自訂搜尋廣告
參考資料
即可查看完整的設定清單
setAdvancedOptionValue()
方法。
金鑰參數的前置字串須為「csa_」 才能正確設定屬性
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
如果您使用參數的 setter 方法並將其設定為 setAdvancedOptionValue
,
第二個呼叫則會覆寫第一次呼叫的值。
調查錯誤
SearchAdView
(這裡的 searchAdView
) 包含 setAdListener()
方法
來協助您調查錯誤在同一個 Activity
內:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
onAdFailedToLoad()
回呼方法中使用的常數
在 API
參考資料。
為 Google Play 的資料揭露規定做好準備
Google Play 在 2021 年 5 月公布了新的「資料安全性」專區,該專區會顯示開發人員提供的揭露聲明,說明應用程式的資料收集、共用與安全性做法。
本頁面可協助您在使用 AdSense 搜尋廣告原生 SDK (也適用於 AdSense 購物廣告) 時,達成此資料揭露規定的規定。該頁面可讓您瞭解 Google 的 SDK 是否會處理使用者資料,以及如何處理使用者資料。
我們的目標是盡可能開誠佈公地提供支援服務;不過,應用程式開發人員必須全權負責決定如何回覆 Google Play 的「資料安全性」專區表單,說明應用程式的使用者資料收集、共用和安全性做法。
如何使用這個網頁上的資訊
本頁面僅列出最新版 SDK 蒐集的使用者資料。
為了完成資料揭露,您可以利用 Android 的資料類型指南,協助判斷哪種資料類型最符合所蒐集的資料。此外,在資料揭露聲明中,請務必提及特定應用程式如何共用及使用蒐集到的資料。
SDK 存取及收集的資料類型
套件:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
自動蒐集的資料
AFS SDK 會自動收集以下資料。所有資料會從裝置傳出給 Google,以便放送廣告,且所有資料在傳輸過程中都會經過加密。我們絕不會收集使用者的個人資訊,除非應用程式在使用者查詢中傳送這類資料。
資料 | 蒐集資料的用途如下... |
---|---|
IP 位址 |
摘要:
IP 位址的用途是監控詐欺和濫用行為,以及用來推測使用者的大概位置。 接著,系統會使用概略位置來確保放送的廣告符合當地法規,並提供與使用者概略地理位置相關的廣告。 |
應用程式活動
|
摘要:
應用程式向 Google 提供使用者查詢,以便我們傳回與關鍵字相關的搜尋廣告。我們會評估所傳回廣告的觀看次數和參與度 (輕觸)。 |
診斷資料 |
摘要:
SDK 會評估廣告的顯示延遲時間,以便導入及評估產品改善功能。此外,我們也會傳送當機報告/錯誤報告,偶爾會視需要加入其他檢測系統,以便瞭解發布商如何使用這些功能。 |
裝置或其他 ID |
摘要:
裝置 ID 可用於監控詐欺和濫用行為,以及評估廣告成效。 |