Search code examples
httphttpshttp-headersgoogle-analyticssearch-engine

How does Google Analytics know the source of HTTPS inbound organic search traffic?


After google started using https for signed-in users, Google Analytics started showing "(not proviced)" as the keyword when a user enters a site via https organic search. For example:"(not provided)"

Given that the referrer is not available when a user is using HTTPS, how would Gooogle Analytics be able to tell that an HTTPS user came from a search engine?


Solution

  • The targets of Google results are intermediates page that redirect to the desired URL like :

    http://www.google.com/url?sa=t&rct=j&q=yahoo&esrc=s&source=web&cd=1&sqi=2&ved=0CDEQFjAA&url=http%3A%2F%2Fwww.yahoo.com%2F&ei=sOuaT6qMEaW80QWw8JjuDg&usg=AFQjCNG7Ba-stir4109vlLygPQX7QGf8bg
    

    When you use Google with https, results targets the same URL but an empty q parameter :

    http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&sqi=2&ved=0CDEQFjAA&url=http%3A%2F%2Fwww.yahoo.com%2F&ei=sOuaT6qMEaW80QWw8JjuDg&usg=AFQjCNG7Ba-stir4109vlLygPQX7QGf8bg
    

    So there is a http refferer but without any keyword information.