google.ads.search.Ads()的回调函数

时间:2012-10-17 13:17:30

标签: javascript callback adsense google-custom-search

根据https://developers.google.com/custom-search-ads/docs/implementation-guide上的文档,我创建了一些代码来检索搜索结果页上的广告。

此代码假定您在功能

的网页上放置一个容器
new google.ads.search.Ads(pageOptions, adblock1, adblock2);

将iFrame附加到可能包含广告。我说MAY包含,因为有时iFrame会保持空白。

问题: 现在我需要知道天气是否有任何广告显示在容器中。我该怎么做?

  • 呼叫是同步的,所以我何时初始化支票? (谷歌参考不记录回调函数)
  • 如何查看是否有广告显示。因为使用Javascript我无法查看iFrame ..

欢迎任何建议! :)

此致 乔恩

3 个答案:

答案 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代码中没有看到任何回调,但我看到了两个未记录的广告块选项,clicktrackUrllinkTarget。一个是点击广告时加载的跟踪像素的网址,另一个是标记上的目标属性。