在https://developers.google.com/custom-search-ads/docs/implementation-guide上的文档之后,我创建了一些代码来检索搜索结果页面上的广告。
此代码假设将容器放置在函数所在的网页上。
new google.ads.search.Ads(pageOptions, adblock1, adblock2);附加一个可能包含广告的iFrame。我说可能包含,因为有时iFrames是空的。
问:现在我需要知道是否有任何广告显示在集装箱内。我该怎么做?
欢迎任何建议:)
你好,乔恩
发布于 2013-10-22 07:40:34
回调函数,可能对您有以下帮助:
'noAdLoadedCallback':
function(containerName, adsLoaded) {
if (!adsLoaded) {
try {
---- do something here ---
}
catch (e) {}
}
}你可以把这个放在每个adblock上。
干杯尼克
发布于 2015-12-14 22:28:31
今天,我面临着同样的问题,基于@Niko Nik的答复,对我有用的解决方案如下:
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);
}我发现,adLoadedCallback的优势在于,当有ads时调用它,当没有ads时调用它(当没有ads时,adsLoaded参数是真的)。
发布于 2013-01-15 22:12:54
您可以始终添加一个MutationObserver并等待iframe被插入,然后检查它的高度。如果它的高度小于30像素,它可能是空的。
我还没有在CSA代码中看到任何回调,但我看到了两个无文档化的广告块选项,clicktrackUrl和linkTarget。一个是当点击广告时加载的跟踪像素的url,另一个类似于标签上的目标属性。
https://stackoverflow.com/questions/12935215
复制相似问题