3

https://developers.google.com/custom-search-ads/docs/implementation-guideのドキュメントに従って、検索結果ページで広告を取得するコードを作成しました。

このコードは、Web ページにコンテナーを配置して、関数が

new google.ads.search.Ads(pageOptions, adblock1, adblock2);

広告を含む可能性のある iFrame を追加します。iFrame が空のままになる場合があるため、含まれている可能性があります。

質問: コンテナに広告が表示されているかどうかを知りたいのですが。どうすればいいですか?

  • 呼び出しは非同期なので、いつチェックを初期化しますか? (Google リファレンスにはコールバック関数が記載されていません)
  • 広告が表示されているかどうかを確認する方法を教えてください。Javascriptを使用すると、iFrameの中を見ることができないため..

どんな提案でも大歓迎です!:)

よろしく、ヨルン

4

3 に答える 3

2

おそらく役立つコールバック関数は次のとおりです。

'noAdLoadedCallback':
  function(containerName, adsLoaded) {
      if (!adsLoaded) {
          try {
              ---- do something here ---
          }
          catch (e) {}
      }
  }

これを各広告ブロックに配置できます。

乾杯ニック

于 2013-10-22T07:40:34.340 に答える
1

今日、私は同じ問題に直面しました.@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広告がある場合とない場合に呼び出されるという利点があることがわかりました(広告がないadsLoaded場合は false がある場合はパラメーターが true になります)。

于 2015-12-14T22:28:31.060 に答える
0

いつでも MutationObserver を追加して、iframe が挿入されるのを待ってから、その高さを確認できます。高さが 30 ピクセル未満の場合は、おそらく空です。

CSA コードでコールバックを確認したことはありませんが、広告ブロックの文書化されていない 2 つのオプションclicktrackUrllinkTarget. 1 つは広告がクリックされたときに読み込まれるトラッキング ピクセルの URL で、もう 1 つはタグの target 属性のように機能します。

于 2013-01-15T22:12:54.390 に答える