如何在 Angular 中使用 Google DFP?

How to use Google DFP in Angular?

我想使用 Google DFP(Google 发布商代码),但它不起作用。

我定义了包含 googletag:

的全局变量
googletag: any =  window.googletag || {};

正在将脚本添加到页面:

addGPTScript() {

  // Ad gtp.js script in the page
  const gads = document.createElement('script');
  gads.async = true;
  gads.type = 'text/javascript';
  const useSSL = 'https:' === document.location.protocol;
  gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
  const node = document.getElementsByTagName('script')[0];
  node.parentNode.insertBefore(gads, node);

  if (this.googletag.apiReady) {
    console.log(this.googletag)
  }

  console.log(this.googletag)
}

ngOnInit(): void {
  this.addGPTScript();
}

但是条件中的第一个 console.log 从未加载,第二个打印 undefined。我检查了 HTML HEAD 标签,发现添加了脚本。

我注意到以下代码不起作用:

  // Ad gtp.js script in the page
  const gads = document.createElement('script');
  gads.async = true;
  gads.type = 'text/javascript';
  const useSSL = 'https:' === document.location.protocol;
  gads.src = (useSSL ? 'https:' : 'http:') + '//www.googletagservices.com/tag/js/gpt.js';
  const node = document.getElementsByTagName('script')[0];
  node.parentNode.insertBefore(gads, node);

我删除了上面的内容并在 HTML 头标签中添加:

<script type="text/javascript" async src="https://www.googletagservices.com/tag/js/gpt.js"></script>