Google Adwords с Angular 5 - PullRequest
       6

Google Adwords с Angular 5

0 голосов
/ 15 мая 2018

Я пытаюсь использовать AdWords в SPA Checkout, созданном с Angular 5. Мне нужно установить переменные, такие как "google_conversion_value", а затем запустить скрипт, расположенный по адресу //www.googleadservices.com/pagead/conversion.js

Однако есть 3 проблемы:

  1. Я не могу использовать то, что написано в документации, так как это SPA.
  2. Установка переменных, затем внедрение сценария вызываетзначения, которые должны быть нулевыми при вводе скрипта
  3. В качестве альтернативы, инъекция сценария FIRST и установка значений с обещанием приводит к его срабатыванию до того, как они будут установлены.

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 Ответ

0 голосов
/ 14 августа 2018

Я уверен, что вы уже решили это, но в случае, если кому-то это нужно, вот что сработало для меня.

ШАГ 1

Поместите это в ваш index.html, заменив XXXXXXXXXXX на ваш собственный фактический идентификатор конверсии.

<!-- 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_CODE, GRAND_TOTAL, CURRENCY & TRANSACTION_ID соответствующими значениями. Код выше машинопись .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...