Obecnie 20 forumowiczów jest online
Obecnie 20 forumowiczów jest online
Tutaj możesz rozmawiać na następujące tematy: zarządzanie kontem Analytics, przywracanie konta, ustawianie hierarchii kont, rozbieżności danych między AdWords a Analytics, łączenie AdWords z Analytics, importowanie celów e-commerce do AdWords, ustawienia remarketingu.
Poprowadź mnie
star_border
Odpowiedz

Miejsce docelowe z hashem (#) w URLu - jak to poprawnie śledzić?

Nowicjusz ✭

Witam wszystkich,
Mam taki problem ze śledzeniem konwersji, mianowicie thank you page zawiera hash (#), a dokładnie po wysłaniu formularza do adresu dopisuje się #f. 


Trochę czytałem, próbowałem znaleźć jakieś rozwiązanie dla Universal Analytics.
Dodam, że nie mam za bardzo możliwości wykorzystania Tag Managera.

Jaki jest sprawdzony sposób, żeby to śledzić?

 

Niżej kilka moich wątpliwości:

  1. Czy można wykorzystać w tym celu wirtualną odsłonę? Czy taki kod będzie działał?
    ga('send', 'pageview', {
    'page': '/kontakt#f',
    'title': "Wyslany formularz"
    }); 
  2. Czy muszę włączyć wcześniej linkera?
    ga('create', 'UA-XXXX-Y', {'allowLinker': true});
  3. Czy włączenie linkera nie ma wpływu na kampanie otagowane w tradycyjny sposób (ze znakiem ?) ?
    Kampanie będą widoczne w panelu GA?

Będę wdzięczny za wyjaśnienia lub linki.
Pozdrawiam

SEO / SEM. Top Contributor (Najlepszy Współtwórca).
Odpowiedź eksperta 1verified_user
1 ZAAKCEPTOWANE ROZWIĄZANIE

Zaakceptowane rozwiązania
Zaakceptowane rozwiązanie.
Rozwiązanie
Zaakceptowane przez autora tematu: Michał G
września 2015

Dot.: Miejsce docelowe z hashem (#) w URLu - jak to poprawnie śledzić?

Wschodząca Gwiazda
Jeśli strona się przeładowuje, to tak jak napisałem - musisz zmodyfikować kod śledzący na stronie potwierdzenia lub przesłać zdarzenie.

Przy standardowej implementacji do GA nie jest przesyłana wartość atrybuty page - jest ona pobierana z adresu. Jeśli masz przykładowo stronę http://www.example.com/example.html#xyz wówczas to #xyz jest obcinane i do GA trafia coś takiego:
location (&dl) http://www.example.com/example.html
W związku z tym jako stronę widzisz w raportach tylko example.html
Żeby był adres z hasem trzeba oddzielnie przesłać parametr page podczas wysyłania odsłony.
Czyli zamiast standardowego kodu:
ga('send', 'pageview');
musi być:
ga('send', 'pageview', {'page': 'tu_adres_z_hashem'});

Jeśli nie masz możliwości zmodyfikowania kodu śledzącego tylko na tej konkretnej stronie z potwierdzeniem to masz w sumie 3 opcje:
- wywoływać zdarzenie,
- wywoływać dodatkową odsłonę (oprócz tej standardowej),
- lub zmodyfikować główny kod śledzący w taki sposób:

ga('send', 'pageview',{'page':location.pathname + location.search + location.hash});

Wówczas na wszystkich stronach będzie ustawiany parametr page nadpisujący domyślną wartość pobieraną z parametru location i będzie on miał wartość:

location.pathname + location.search + location.hash

gdzie:
location.pathname - to ścieżka, np. /folder/testpage.html
location.search - to fragment adresu zawierający parametry - czyli np. ?q=xyz&c=cat1
location.hash - to fragment adresu zawierający hash

To powinno załatwić Twój problem i dać Ci możliwość skonfigurowania calu na adres zawierający hash.
Tomasz Ciepłucha

Wyświetl rozwiązanie w oryginalnym poście

Dot.: Miejsce docelowe z hashem (#) w URLu - jak to poprawnie śledzić?

Wschodząca Gwiazda
Cześć,

jeśli wysłanie formularza powoduje przeładowanie strony wówczas zmodyfikuj standardowy kod śledzący nadpisując wartość parametru page, ale nie wstawiaj do adresu hash'a bo on i tak jest pomijany w raportach:
ga('send', 'pageview', {'page': '/thankyou','title': "Wysłany formularz"});

Nie wysyłaj dwa razy hit'a pageview tylko nadpisz standardowy pageview swoimi atrybutami.

Jeżeli natomiast wysłanie formularza nie przeładowuje strony wówczas wywołujesz dokładnie ten sam kod, ale wówczas będzie już to wirtualna odsłona.

Może również alternatywnie wywołać zdarzenia - zależy jak to potem chcesz wykorzystać.

Linker służy do śledzenia ruchu w wielu domenach, więc nie musisz go wykorzystywać.
Tomasz Ciepłucha

Dot.: Miejsce docelowe z hashem (#) w URLu - jak to poprawnie śledzić?

Nowicjusz ✭

Tomasz C, dzięki za szybką odpowiedź, ale nie do końca rozwiała ona moje wątpliwości ;-)


Doprecyzuję moje pytanie i opiszę sytuację:

  1. Wchodzę na stronę z formularzem /kontakt
  2. Wypełniam go i wysyłam. Zamiast thank you page, strona się przeładowuje i dostaję komunikat, że wysłano. Po przeładowaniu dopisuje się hash i adres wygląda tak: /kontakt#f
  3. Chce to śledzić jako cel.

OK. allow linker odpada, ale jak poradzić sobie z tym, żeby Analytics widział ten hash.

Czy zdarzenia - onclick (kliknięcie) i onsubmit (wysłanie) będą dobrym rozwiązaniem?

SEO / SEM. Top Contributor (Najlepszy Współtwórca).
Zaakceptowane rozwiązanie.
Rozwiązanie
Zaakceptowane przez autora tematu: Michał G
września 2015

Dot.: Miejsce docelowe z hashem (#) w URLu - jak to poprawnie śledzić?

Wschodząca Gwiazda
Jeśli strona się przeładowuje, to tak jak napisałem - musisz zmodyfikować kod śledzący na stronie potwierdzenia lub przesłać zdarzenie.

Przy standardowej implementacji do GA nie jest przesyłana wartość atrybuty page - jest ona pobierana z adresu. Jeśli masz przykładowo stronę http://www.example.com/example.html#xyz wówczas to #xyz jest obcinane i do GA trafia coś takiego:
location (&dl) http://www.example.com/example.html
W związku z tym jako stronę widzisz w raportach tylko example.html
Żeby był adres z hasem trzeba oddzielnie przesłać parametr page podczas wysyłania odsłony.
Czyli zamiast standardowego kodu:
ga('send', 'pageview');
musi być:
ga('send', 'pageview', {'page': 'tu_adres_z_hashem'});

Jeśli nie masz możliwości zmodyfikowania kodu śledzącego tylko na tej konkretnej stronie z potwierdzeniem to masz w sumie 3 opcje:
- wywoływać zdarzenie,
- wywoływać dodatkową odsłonę (oprócz tej standardowej),
- lub zmodyfikować główny kod śledzący w taki sposób:

ga('send', 'pageview',{'page':location.pathname + location.search + location.hash});

Wówczas na wszystkich stronach będzie ustawiany parametr page nadpisujący domyślną wartość pobieraną z parametru location i będzie on miał wartość:

location.pathname + location.search + location.hash

gdzie:
location.pathname - to ścieżka, np. /folder/testpage.html
location.search - to fragment adresu zawierający parametry - czyli np. ?q=xyz&c=cat1
location.hash - to fragment adresu zawierający hash

To powinno załatwić Twój problem i dać Ci możliwość skonfigurowania calu na adres zawierający hash.
Tomasz Ciepłucha