带有 Angular 5 的 Google Adwords

Posted

技术标签:

【中文标题】带有 Angular 5 的 Google Adwords【英文标题】:Google Adwords with Angular 5 【发布时间】:2018-05-15 18:09:17 【问题描述】:

我正在尝试在使用 Angular 5 构建的结帐 SPA 中使用 AdWords。我需要设置诸如“google_conversion_value”之类的变量,然后运行位于 //www.googleadservices.com/pagead/conversion.js 的脚本

但是有3个问题:

    我无法使用文档中所说的内容,因为这是一个 SPA。 设置变量然后注入脚本会导致在注入脚本时值为空 或者,先注入脚本,然后使用 Promise 设置值,就是在设置之前触发它。

2:

let googleAdWords = this.marketingService.googleAdWords();
if (googleAdWords != undefined) 
 window.google_conversion_language = googleAdWords.google_conversion_language;
 window.google_conversion_format = googleAdWords.google_conversion_format;
 window.google_conversion_label = googleAdWords.google_conversion_label;
 window.google_conversion_value = googleAdWords.google_conversion_value;
 window.google_conversion_currency = googleAdWords.google_conversion_currency;

this.marketingService.loadScript('//www.googleadservices.com/pagead   /conversion.js')

3:

this.marketingService.loadScript('//www.googleadservices.com/pagead/conversion.js').then(() => 
 this.zone.run(() => 
  let googleAdWords = this.marketingService.googleAdWords();
  if (googleAdWords != undefined) 
   window.google_conversion_language = googleAdWords.google_conversion_language;
   window.google_conversion_format = googleAdWords.google_conversion_format;
   window.google_conversion_label = googleAdWords.google_conversion_label;
   window.google_conversion_value = googleAdWords.google_conversion_value;
   window.google_conversion_currency = googleAdWords.google_conversion_currency;
  
 );
);

--加载服务中的脚本--

loadScript(scriptUrl: string) 
 return new Promise((resolve, reject) => 
  const scriptElement = document.createElement('script');
  scriptElement.src = scriptUrl;
  scriptElement.onload = resolve;
  document.body.appendChild(scriptElement);
 );

【问题讨论】:

【参考方案1】:

我确定你已经解决了这个问题,但如果有人需要它,这对我有用。

第 1 步

将其放入您的 index.html 中,将 XXXXXXXXXXX 替换为您自己的实际转化 ID。

<!-- Global site tag (gtag.js) - Google Ads: XXXXXXXXXXX -->
script async src="https://www.googletagmanager.com/gtag/js?id=AW-XXXXXXXXXX"> 
</script>
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag()  dataLayer.push(arguments); 
    gtag('js', new Date());
    gtag('config', 'AW-XXXXXXXXXXX');
</script>

第 2 步

然后在结帐流程中,您要在其中注册交易:

const gtag = window['gtag'];
gtag('event', 'conversion', 
  'send_to': 'AW-XXXXXXXXXX/CONVERSION_CODE',
  'value': GRAND_TOTAL,
  'currency': CURRENCY,
  'transaction_id': TRANSACTION_ID
);

记得用适当的值填写AW-XXXXXXXXXX/CONVERSION_CODEGRAND_TOTALCURRENCYTRANSACTION_ID。上面的代码是typescript

【讨论】:

问题是关于使用conversion.js,而不是使用gtag。在某些情况下(比如我的),使用谷歌标签管理器不是一种选择。

以上是关于带有 Angular 5 的 Google Adwords的主要内容,如果未能解决你的问题,请参考以下文章

带有 Google 的 OAuth2 - CORS 错误(Angular + Spring boot)[重复]

Angular Google Maps - 在 AGM-MAP 标签和使用 map = new google.maps.Map() 之间创建地图差异

Angular 5下载带有发布请求的excel文件

Angular 5下载带有发布请求的excel文件

如何在 Angular 5 (s-s-r with Universal) 中使用 Google Analytics 功能?

带有打字稿的 Angular 5 websocket 示例