[英]Android - open Chrome custom tab instead of launch web browser PublisherAdView
我一直在網上搜索以尋找一種禁用PublisherAdView的點擊方法,但無濟於事。 我們將DFP廣告管理系統用於廣告https://developers.google.com/mobile-ads-sdk/docs/dfp/android/quick-start 。 當用戶點擊應用中的廣告時,DFP SDK將打開網絡瀏覽器。 但是,我想打開Chrome自定義標簽,而不是啟動網絡瀏覽器。 這可能嗎?
我知道有點晚了,但是這是我能夠解決此問題的一種方法。
PublisherAdView沒有公開任何方法來完成此操作。 實現此目的的一種方法是使用自定義事件。
這個想法是當用戶點擊您的廣告並使用您的android應用中的AppEventListener捕獲廣告時,在DFP端觸發自定義事件。
在DFP廣告管理系統上,您可以這樣設置模板或樣式:
<script src="//media.admob.com/api/v1/google_mobile_app_ads.js"></script>
<script>
handleClick = function() {
admob.events.dispatchAppEvent("destinationUrl", "%%DEST_URL%%");
};
</script>
<div onClick="handleClick()"> ...ad template here... </div>
然后在您的Android應用上,添加一個AppEventListener來捕獲事件:
private static final String DFP_DESTINATION_URL = "destinationUrl";
...
PublisherAdView publisherAdView = new PublisherAdView(getActivity());
publisherAdView.setAppEventListener((eventName, eventValue) -> { // or use publisherAdView.setAppEventListener(new AppEventListener() {...}); if you don't use lambdas
if (DFP_DESTINATION_URL.equals(eventName)) {
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
/// setup your intent as needed
CustomTabsIntent customTabsIntent = builder.build();
/// And finally open the custom chrome tab
customTabsIntent.launchUrl(this, Uri.parse(eventValue));
}
});
publisherAdView.loadAd(mPublisherAdRequest);
希望這可以幫助您或指出正確的方向來解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.