2016-08-09 54 views
5

Rozejrzałem się i nie widziałem żadnych najnowszych postów na ten temat. Większość z nich była znacznie starsza (3-6 lat).Jak wywołać konwersję Google Adwords wewnątrz funkcji z etykietą konwersji przekazaną do funkcji

Dla kontekstu, jestem deweloperem i firmą SEO, która dzieliła fragmenty konwersji dla wielu formularzy, które są wszystkie ajaxami. Muszę więc przekonwertować konwersję po kliknięciu i przejściu w etykiecie konwersji na funkcję, zamiast mieć różne fragmenty na różnych stronach.

Teraz wzywam moje funkcję tak:

triggerConversion([MYCONVERSIONID], [UNIQUECONVERSIONLABEL]); 

następnie Mam funkcję:

function triggerConversion(conversionID, conversionLabel){ 
    console.log(conversionLabel); 
    goog_snippet_vars = function() { 
     var w = window; 
     w.google_conversion_id = conversionID; 
     w.google_conversion_label = conversionLabel; 
     w.google_remarketing_only = false; 
    } 
    // DO NOT CHANGE THE CODE BELOW. 
    goog_report_conversion = function(url) { 
     goog_snippet_vars();  
     window.google_conversion_format = "3"; 
     var opt = new Object(); 
     opt.onload_callback = function() { 
      if (typeof(url) != 'undefined') { 
       window.location = url; 
      } 
     } 
     var conv_handler = window['google_trackConversion']; 
     if (typeof(conv_handler) == 'function') { 
      conv_handler(opt); 
     } 
    } 
} 

To nie działa zgodnie z planem. Parametry do działają poprawnie, ale konwersja nie jest wyzwalana.

Nie wydają się być dwa problemy:

  1. Korzystanie z Google Tag Assistant (Google chrome warunkiem rozszerzenia), wydaje się, że ta funkcja jest wyzwalany od obciążenia (co nie powinno być). Asystent tagów wyświetla błąd podczas ładowania strony, gdy identyfikator jest zniekształcony i brakuje etykiety. Oba są tylko parametrami funkcji, więc oczywiście są wadliwe pod obciążeniem.

  2. To powinno być wywoływane tylko przez wywołanie funkcji. Powinno to nastąpić tylko programowo, w tym przypadku po pomyślnym wywołaniu ajax.

Nie wiem, jak postępować. Ale na koniec dnia chcę tylko przesłać tę konwersję, gdy ajax powraca z powodzeniem nie przy obciążeniu. Muszę również przekazać identyfikator i etykietę do funkcji pomyślnie.

Wielkie dzięki z góry.

Odpowiedz

0

Wygląda na to, że próbujesz użyć asynchronicznej wersji skryptu konwersji Google Adwords. Przede wszystkim upewnij się, że jesteś ładowania właściwego skryptu (najlepiej w head dokumentu):

<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script> 

Po drugie, nie trzeba ustawić zmienne konwersji na obiekt okna. Używając skryptu async, możesz po prostu zadzwonić pod numer google_trackConversion z odpowiednimi parametrami bezpośrednio. Twoja funkcja może wyglądać mniej więcej tak:

function triggerConversion(conversionID, conversionLabel){ 
    console.log(conversionLabel); 
    var conv_handler = window['google_trackConversion']; 
    if (typeof(conv_handler) == 'function') { 
     conv_handler({ 
      google_conversion_id: conversionID, 
      google_conversion_label: conversionLabel, 
      google_remarketing_only: false 
     }); 
    } 
} 
+0

Dam ci spróbować. jeśli zadziała, dam ci 50. –

+0

dzięki za pomoc. –