根据https://developers.google.com/custom-search-ads/docs/implementation-guide上的文档,我创建了一些代码来检索搜索结果页上的广告。
此代码假定您在功能
的网页上放置一个容器new google.ads.search.Ads(pageOptions, adblock1, adblock2);
将iFrame附加到可能包含广告。我说MAY包含,因为有时iFrame会保持空白。
问题: 现在我需要知道天气是否有任何广告显示在容器中。我该怎么做?
欢迎任何建议! :)
此致 乔恩
答案 0 :(得分:2)
回调函数,可能会帮助你:
'noAdLoadedCallback':
function(containerName, adsLoaded) {
if (!adsLoaded) {
try {
---- do something here ---
}
catch (e) {}
}
}
您可以将其放在每个广告栏上。
干杯 NIK
答案 1 :(得分:1)
今天我遇到了同样的问题,根据@Niko Nik的回复,对我有用的解决方案如下:
def elements_are_unique(new_list):
for element in new_list:
icount = new_list.count(element)
if icount > 1:
return False
return True
我发现AppComponent.prototype.prepareAds = function (containerId, nOfAds, query) {
var csa = window._googCsa || function () {};
var self_1 = this;
var pageOptions = {
'pubId': this.gootleAdClient,
'adtest': this.googleAdTest,
'adLoadedCallback': function adLoadedCallback(containerName, adsLoaded) {
self_1.adsLoaded[containerName] = adsLoaded;
}
};
var adBlock = {
'container': containerId,
'width': '100%',
'number': nOfAds
};
if (query) {
pageOptions['query'] = query;
}
this.adsLoaded[containerId] = true;
csa('ads', pageOptions, adBlock);
}
具有广告时有效的优势,而当没有广告时{(1}}参数为真,如果没有则为adLoadedCallback
参数为真)。
答案 2 :(得分:0)
您可以随时添加MutationObserver并等待插入iframe,然后检查其高度。如果它的高度小于30像素,那么它可能是空的。
我在CSA代码中没有看到任何回调,但我看到了两个未记录的广告块选项,clicktrackUrl
和linkTarget
。一个是点击广告时加载的跟踪像素的网址,另一个是标记上的目标属性。