Google Analytics lost guide for solving returns and changes in ecommerce

Dealing with ecommerce in Google Analytics is always a challenge – taking into account all details you need to fulfill in order for data to be stored properly. Once things start behaving strange (wrong calculation during submission of ecommerce data) you have to make things right. And the question beckons: “How to reverse transactions in Google Analytics?

Disclaimer: following post is summary of various posts across internet, Google help and real life experience dealing with storage of data. Presumption of how data is stored is based on deduction and knowledge about database architecture. 

Google help on that matter is pretty straightforward – explaining how to cancel transaction or initiate return, but you have to read every single word in order to understand what happens deep down inside Analytics engine.

Some of the colleagues in Analytics community went through explaining how to handle returns (using tools available within Analytics), older tracking code setup explains inner working and some new (regarding analytics.js setup).

Purpose of this “lost guide” is to explain how this really works and how to deal with adjustments of values, using Measurement protocol.

How ecommerce data is stored within Google Analytics?

Pretty simple, if you think of it, but never explained in details. Two tables, one for transaction information (invoice header), and second with items data (invoice items). Connecting tissue is transactionID.

How google analytics store data?

How Google Analytics store data?

Important this to mention, if you are familiar with databases – when sending data to Google Analytics servers you are not updating anything! You are merely sending additional row of data which is summarized within GA interface.

Due to the nature of Bigtable it is not really possible to update things and work in SQL matter (sorry for tech talk here). This means that data is stored as it comes. Outcome is that, if you have transaction on Monday and some change happening of Friday, on your graph within GA interface you will see changes on both days. This can mislead people looking at graphs and not selecting right time period.

Looking at interface and data (presuming you selected period between Monday and Friday) information about transaction (revenue, tax, item info) will be summarized correctly.

There is no reference integrity between two tables

You think it would be easy?

If you change data on item level (somebody returned one item out of 2) and you inform GA servers about this change, transaction data will not reflect this change. This means that transactionId used to connect data between two tables is just for reference, not for automated update of transaction data.

Once you update item information, update transaction information as well. GA will not do this for you.

How to change things quickly?

The best way is to have the change of item and transaction data on the same day when purchase occurs, but it is not always the case. Returns (partial) or errors get noticed when some time passes. The easiest way is to use Universal Analytics and its measurement protocol to send information.

This is plain URL you place in browser’s address bar and hit Enter.

http://www.google-analytics.com/collect?v=1&tid=UA-xxxxxxx-x&cid=clientId_of_person(555 if_unknown)&t=transaction&ti=transactionId&tr=value_of_transaction_with_dot&ts=shipping_value_with_dot&tt=tax_value_with_dot&cu=currency_code

http://www.google-analytics.com/collect?v=1&tid=UA-xxxxxxx-x&cid=clientId_of_person(555 if_unknown)&t=item&ti=transactionId&in=item_name&ip=value_of_item_with_dot&iq=quantity_with_dot&ic=item_SKU&cu=currency_code

With two hits to Google Analytics server you will solve your (or your client) problem.

Things to take into consideration…

  • Values (numeric) are always delimited with dot “.”
  • When sending data, both for transaction and items, if they contain the same values, storing will not occur
  • If you want to decrease quantity of certain item, use negative quantity
  • Date and time of storing data is when it occur
  • Data stored on Google Analytics servers can not be “erased”, you can only sum it up
  • Negative quantity will decrease quantity but have in mind that value must be positive (-1*1000 will decrease quantity of item by 1 and decrease value) / in other way if you put positive quantity and negative value you will increase quantity but decrease value

Update

Every hit to collection with Measurement protocol will collect some “extra information” like location, source/medium… which will change your other reports. This is important to have in mind.

Ivan Rečević treći na takmičenju – Superweek 2015

Zlatna bušena kartica - Superweek.hu

Zlatna bušena kartica – Superweek.hu

Superweek nagradu “Zlatna bušena kartica” ove godine, kao i prošle, osvojio je Simo Ahava sa novom verzijom svojih GTM alata (Google Tag manager) koji olakšavaju implementaciju ovog fantastičnog rešenja za implementaciju analitike i drugih alata ne koristeći programerske resurse. Drugi po redu (prema glasovima publike na konferenciji) bio je Jošua Koren (Analytics Ninja) iz Izraela, sa rešenjem za avio kompanije koji registruje i obaveštava kompaniju u slučajevima kada kupci karata ne uspevaju da završe kupovinu u određenom vremenskom razdoblju (signali o problemima na web sajtu) koristeći Google Analitiku.

Treći po redu je bio naš Ivan Rečević (od 10 takmičara) sa rešenjem starog problema merenja offline konverzija za male prodavnice i klijente koji nemaju programerskih kapaciteta ni resursa za kompleksne alate, zasnovanom na WordPress pluginu. Alat koji šalje informacije o offline konverzijama prema Google AdWordsu i Google Analitici i spaja online posete sa realnim (offline) događajima. Koncept je izdržao kritike publike, komentari su pozitivni od bitnih ljudi iz industrije i rešenje će sigurno biti kreirano i ponuđeno javnosti. Krajnje jednostavno, tehnički ispravno i jednostavno za korišćenje od strane korisnika koje unapređuje merenje performansi kampanja, razumevanje ko su ljudi koji dolaze u prodavnicu ili zovu telefonom.

Offline konverzije za male prodavce zasnovano na WordPress platformi

Offline konverzije za male prodavce zasnovano na WordPress platformi

Šta je bušena kartica?

Bušene kartica su nastale neke 1725.godine za kontrolu tekstilnih razboja. Unapređivane tokom decenija i vekova, jedna od poslednjih iteracija je bila na IBM mašinama do 60tih godina prošlog veka kada su počele da se uvode magnetne trake.

Kartica je mogla da sadrži 80 karaktera kodiranih na papiru bušenjem rupa. Prvi terminali (i emulacije terminala) počinju od 80 karatera širine. Prva rezolucija ekrana je bila 640 piksela… jer 80 karaktera x 8 piksela po karakteru. Veoma tehničke stvari.

Zašto Superweek?

Ove godine smo ponovo došli na Superweek u Mađarskoj, mesto okupljanja svih koji nešto znače i koji žele da nauče, u zajednici koja se bavi Web analitikom, oglašavanju i marketingu zasnovanom na performansama (performance advertising & marketing) i web biznisu. Kolege iz regiona su takođe bile prisutne i ako možemo da primetimo veoma veoma aktivne i angažovane (slobodniji smo u pitanjima i traženju znanja?).

 

Logorska vatra na kraju radnog dana uz kuvano vino i muziku

Logorska vatra na kraju radnog dana uz kuvano vino i muziku

Networking sa agencijama, sličnim kompanijama, razmena iskustava, rešavanje problema – su samo vrh ledenog brega koji možete da dobijete dolaskom na ovu konferenciju. Iz godine u godinu dolaze vrhunska imena iz sveta analitike i oglašavanja sa kojima možete stići do novih poslova, prijateljstava i iskustva.

Završićemo sa podnaslovom ovogodišnje konferencije.

PODACI.I-DALJE.POBEĐUJU.MIŠLJENJE

Misbehaviors in Google Analytics

Often professionals working with Google Analytics tend to forget the basics of implementation. Not that they are bad at this – but most of the time they don’t think at all of problems that can happen during the website development, developers gone wild… and they tackle problem at the end – when their service is called upon.

Lets try for beginning, to set things up from the start – before professionals take over and do their magic. Data of website owners/companies should be OK. First step in setting things right is proper implementation of tracking code.

Working with programmers and development teams, it came to my knowledge that most of the time – tracking code implementation is just a line in their checklist. No real thinking about what has to be there, which code to use etc… But this line item happen all the time and developer habits die hard. Team or programmers modulize implementation and their only concern is to place tracking ID. No mention of changes in tracking code or methods for collecting data.

At this moment in time (end of February 2014) we have 2 possible ways – Classic and Universal. Stated in Developers part of Google Universal Analytics Upgrade Center in Phase 3 Universal Analytics will be Out of Beta and it will  consist of all beautiful stuff we have in Classic Analytics (remarketing and support for display advertising (demographics is already implemented)).

However, nothing is stoping you or any other website owner to have this data already. Most of “old” websites use some sort of implemented GA (for Google Analytics), either as Sync or Async version, with or without Display Advertising support (so called dc.js implementation) or just plain Universal Analytics code (analytics.js).

But why this blog post?

Developers do their job and move on. Implementation of GA is no simple task and so many things can go wrong. We have sevelar point of failure and we will cover it below. In process of implementation there are several things

  1. creation of property (either Universal or Classic)
  2. adjustments to code – extras (optional)
  3. placement of final code on template pages at the right place
  4. verification of how things were implemented and do they work

Point 4 is solvable with Google Tag Assistant – nice little piece of extension for Chrome. It can detect various implementation ways, all problems and can suggest solution. When verification exist, Point 3 is easy to change if there is any problem. Which moves us to Point 1 (and 2) which is origin of problem.

How and what do you want to track?

Choosing Analytics property

Choosing Analytics property

Using Universal is a clear win as this is clear path of Google Analytics toward better understanding of traffic and analysis available for all. But until Phase 3 of Universal Analytics we can not expect to have remarketing (essential for great AdWords campaigns), demographics and interests (however we started noticing this data in Universal some time ago).

Anyway, all Classic properties created now or in past will be migrated with all data. Until then, one of the clear paths we like to do is to have 2 properties per website in order to have complete view on visitors and their actions and habits. Back to code that has to be implemented. Whichever type of analytics you choose, have in mind that developers must implement it properly. How does it look like?

Different codes for different properties

Different codes for different properties

Each code must be implemented in its basic form properly and at the right place. Take a look at difference between Classic and Classic with Display Advertising enabled – just one line of code, that makes great difference if you have Google AdWords campaigns and you analyze data and are in desperate need of demographics.

What is wrong than?

In our experience – 5 out of 10 clients we saw in the past month have Universal Analytics activated on property level but actual code on site is Classic. This is one problem.

We’ve seen also usage of Universal code with Classic property. It seems that someone jumped into Universal wagon without changing property type or upgrading. Anyhow, these things can be seen if you compare how you defined property and code implemented on site.

Also, we see wrong position of either Analytics code on web page. In order to verify that everything is OK there must be clear oversight of all parts from creation of property, implementation and checking if it is placed properly. We strongly encourage clients if they are at classic analytics (ga.js) implementation to move to async code (and check current status) and to add display advertising option  (dc.js) in order to understand their audience (and have great advertising).

In the future this property will migrate to Universal and there will be no harm d0ne. If clients have Universal Analytics we let them be, but advise to add additional code in order to take advantage of good remarketing (Classic code with Advertising support – dc.js implementation). And it is simple as that.

Control and understand – that we do not live in perfect world. Understand that developers with low priority tasks just put code where it should be without consulting with specialist. Accept the fact that there is so much data within Google Analytics that can explain a lot of business issues and help them solve.

But first of all – do you know was the implementation done right? We know that misbehaviors exist and that we have to deal with them at the start – not at the end.

— If you are ok with your current setup you should go further.

Marketing tehnologije (Maj 2013)

LUMA Partners - Terence Kawaja - Marketing landscape

LUMA Partners – Terence Kawaja – Marketing landscape

Sjajan pregled tehnologija koje se koriste u svrhu promocije i marketinga. U pitanju je pregled kompanije LUMA Partners i Terensa Kavaje.

Tehnologije u službi marketinga – Ovaj poslednji pregled izdvaja dve kategorije softvera: 1) softveri za marketing i prodaju i 2) web sajtove. Sekcija za prodaju i marketing prikazuje glavne kategorije tehnologija koje koriste marketing sektori kako bi planirali, izveli i analizirali marketing kampanje. Sekcija posvećena web sajtovima uključuje tehnologije potrebne za kreiranje, upravljanje i optimizaciju web sajtova…

Lista nije naivna i prikazuje koliko je zapravo potrebno tehnologija kako bi se maksimalno iskoristili potencijali digitalnog marketinga.

Šta je to GoogleAnalytics browser?

Šta se dešava kada vam se u saobraćaju web sajta pojavi direktan saobraćaj kroz GoogleAnalytics browser? Šta je sada GoogleAnalytics browser – prvo češkanje glave. Gledanjem još dva parametra kao što su source i medium imali smo dodatno češkanje glave…

  • Source (direct)
  • Medium (none)

Na kraju smo shvatili da aplikacije za mobilni (eng. native) prave “problem” tj modul koji se koristi za analitiku radi na određeni način i ostavlja specifičan trag (eng. footprint). Takođe, radi brže komunikacije koristi se JSON koji nema nikakvo aktiviranje Analitike.

Tako da je GoogleAnalytics browser trag korišćenja aplikacija sa mobilnih uređaja. Radi pravog praćenja ovih uređaja mora se uvesti praćenje događaja i prosleđivanje bogatijih informacija Analitici.