Tracking offline conversions with Google Analytics - google-analytics

On a website with affiliate links, where there is no programmatic access to the conversion logs, I treat it as offline conversions.
My Setup
Online
A user visit my website, see the affiliated ad and a promotion view hit is being sent.
When the user clicks the ad, a promotion click hit is being sent and the user is redirected to another page on my site.
On the "redirection page", an product view hit is being sent, and the user is being redirected to the affiliation link, passing his Google Analytics clientId.
Offline
Once a week I download the stats from the affiliate program, which looks something like:
clientId visits conversions revenue
4444444444.3333333333 1 0 $0
1234567890.1234567890 1 1 $16.40
Then I use the Measurement Protocol to send offline events:
For each line of visit, I send a product click hit.
For each line of conversion, I send a product purchase hit.
My Problem
The conversion shows up on the eCommerce report:
Because the offline hits are being sent after the original session is already closed, a new session is opened which doesn't contain the info about the user.
So I can't see the conversion on the demographic report, for example:
Optional Solution?
I'm thinking of using the user-id feature of Google Analytics.
Even though the users are not identified, I can identify them by their clientId.
Sure, this is not what Google intended when they introduced that feature, but I believe it will solve my issue. I'm just not sure about the negatives.
My Questions
Any feedback on my setup?
Why is it even necessary to pass the clientId after the session is closed? what kind of information is being shared between the real session and the offline hit?
Is it a bad idea to pass the clientId as a userId to Google Analytics? Why?
Relevant Articles
A Comprehensive Guide to Tracking Offline Interactions in Google Analytics using the Measurement Protocol
Google Universal Analytics isn’t Linking Offline and Online User Properly

We were able to link offline action through as you did with measurement protocol but the problem is that those sessions are not included in demographic and age report.
Rather looking those report I used them to do segmented analysis E.g. pages they have look at, sources they used to come also I used it with attribution model to understand best channels to drive more conversions.
Yes you can use CID as a user ID but I haven't tried it with offline tracking. Share the result with us.

Related

How to set up conversion tracking to optimize campaigns for approved user?

I'm trying to finish my analytics setup and I've got a bit confused what is the best way forward. The end goal is to have tracking setup that enables me to optimize my Google and Facebook campaigns towards approved users instead of just signed up users. Our product has the following funnel:
User visits our website
He signs up for our product using website lead form (at this moment I have user's email, name, phone number etc.)
Based on our evaluation (that can take hours or days) the user is approved or disapproved in our CRM
I want to provide the advertising systems (mainly Google Ads and Facebook Ads) with an information when the user was approved with all the required ids so the system can trace the event back to the ad the user clicked.
I have the following analytical stack that I am working with:
Website GTM container
Server GTM container (GA4+ UA clients, GA4 + UA + FCAPI tags)
Facebook Conversion API implemented in sGTM
What would be the best way in your opinion to implement the tracking of the event that is fired from our CRM when user is approved? I was thinking about using Measurement Protocol to send the event to sGTM/GA4 or Enhanced conversions for leads for Google Ads but neither solutions seems to fit 100 % to my scenario. What would you recommend? Thank you for any inputs.
GA4 Measurement Protocol or Google Ads API and Facebook Ads APIs are the right way to go.
You'll have to store click & user identifiers ad platforms use (fbclid, fbp, gclid/_ga etc) and then pass them to Google Ads (either through GA4 measurement protocol and GA4-GAds connection or directly to Google Ads API) and Facebook CAPI together with the conversion. There are services like Able CDP that do the entire process - recording ids, getting conversions from CRM, sending them to APIs.
Doing it with sGTM or something like Zapier alone would be significantly limited. They don't remember what click ids, IP address, browser etc the user had when signing up and only around half of the conversions without click/user ids recorded at a lead form submission and sent together with the conversion will be attributed typically (the ones for which ad platforms recognise the users' emails).

Google Ads / Analytics / Tag Manager: E-Commerce transaction not set in relation to Ad Click

We have a problem with E-Commerce transactions sometimes not beeing set in relation to an ad click ("cpc"). They appear instead with the Channel/Medium "direct". This is a problem as we cannot correctly link our revenue to the costs spend on Google Ads.
We got a payment system that allows buyers to safely pay to sellers, and we get a fee percentage of the payment volume (similar like PayPal). We get our fees as soon as a pay-in is successful. Because our users can pay via bank wire as well it may take one or two days until we actually get our fee. This is why ecommerce transactions are not sent from the frontend to GA (on a thank-you page like in online shops), but from our server directly to GA as soon as a payment succeeds.
This is the GET call our server does when a payment succeeds:
GET https://www.google-analytics.com/collect?v=1&tid=UA-XXXXXX-1&cid=1746XXXXX.1593XXXXXXX&t=transaction&ti=mytransactionID&tr=1&cu=USD
Here is a small diagram that explains the process:
We use cross-domain tracking, and the GA Client ID of the users stay the same when they get redirected from mydomain.com to app.mydomain.com, so this should not be the problem. What I assume is, that when a user clicks on an ad, the gclid of the ad is lost. Is there a way to manually send the gclid ID to Google Analytics? I would store the gclid then as well in our payment. Or is there another (maybe better way) to send transactions to GA?
Your transaction hit will only be attributed to ad-click session if payment occurs in a 30-minutes interval since the last hit with the same ID. Otherwise, the transaction hit would start a new session. Due to 'last-non-direct' rule the new session would only be associated with "cpc" channel if there were no other intermediate sessions after ad click. Please check the Google Analytics extensive overview for deeper insight.
Storing and passing gclid might help, however, this might result in some discrepancies in cost reporting since there would be several sessions for the same click. In the case of passing gclid it's recommended to pass at least two hits:
a simple pageview hit with a dummy location parameter containing gclid
and then later a transaction hit with the same location paraeter. In that case you'll be able to see your transactions as a separate sessions with a distinct landing pages
You should make sure you're using the GA client id in the Measurement protocol hit to ensure the hit gets stitched to the other hits of that user.
Now regarding reporting: Google Analytics uses the attribution model "Last non-direct Click", despite the hit being sent later, GA will ignore direct and use the previous touch point which should be the PPC campaign.
There shouldn't be an issue there. Which report are you using to see the transaction appear as direct, rather than Paid Search?

Can I use a GCLID to generate a page view as if it came from the original owner of that GCLID

I've been looking into offline tracking of google analytics goals. I want to implement this in a similar way to how call tracking companies do and I'm guessing the GCLID is the answer.
If I store the GCLID of every visitor that comes to our website in the database alongside some info about their session and then identify their session at a later date as one that produced an offline goal, can I then generate a goal from that?
My thinking is that if I had a button in our CRM system that when I click it opens up an invisible iframe that links to mysite.com/goalurl.html?gclid=xxx then analytics on that page would track a goal on that page but attribute it to the original click that the other user made on our PPC advert. Theoretically I could do this 10 times in a row for 10 different sessions and they would all be tracked as if the 10 original owners of those GCLIDs has visited the goal page, right?
Am i missing something here? Would this not work because Google would spot that they all came from the same IP address, or because I would have the same GA cookie on my machine? Or does Gogole not care about any of that?
Any help would really be appreciated.
I am not sure if it works with the gclid but would also be interested in the answer.
Besides that, a possible solution is to store the Analytics client ID in your own database and, whenever there is a conversion, sending that conversion data (referencing the recorded client ID) directly from your server to Analytics by using the Measurement Protocol.
Exactly this topic is a case study in the book "Google Analytics Breakthrough: From Zero to Business Impact".

Tracking Conversions on External Website with Google Analytics

I have a booking site that refers customers to other companies websites to confirm and pay for bookings. I only make money off of conversions, not clickthroughs. These sites are owned by other corporations and I do not have access to their website code, just to clarify.
I know that I can use GA to track clickthroughs from my site, but how do I track the actual conversions?
You cannot track conversions on another site unless they agree to send some data back to you. That's actually the answer, but I included a bit more info below.
Your business model is that of an affiliate. Affiliate tracking usually works by appending an parameter to the link that goes from your website to the partner website. The partner website has to take care that your parameter is persisted throughout the booking process. Finally on the confirmation page, if your id is present, they send a beacon that informs you a booking has actually happened.
That beacon is usually an image pixel on your server; if the pixel is called it writes a line to a logfile that contains information passed via the image source (e.g. the total price if your renumeration depends on revenue). If you want you can also use Google Analytics; it is unlikely that any partner site agrees to implement fully fledged GA implementation with cross domain tracking, but you could use the measurement protocol to construct a web beacon that is implemented as an image pixel that sends data back to your GA account. If you submit not only your affiliate id, but also the client id for the visit you referred to the partner site you could even attribute the conversion to the original traffic source.
But for conversion tracking you have to rely on the cooperation (and honesty) of your parters. There is no way to record transactions on their sites without some sort of tracking code.

Google Analytics Campaign Tracking Issues

A client of mine is having some issues with regards to tracking campaigns in Google Analytics that I was hoping one of you can advise me on.
They have recently sent out an email with the Google Analytics campaign information in the links back to the site from a button in the email (link created with the URL builder).
As well as the Google Analytics information they also send their own parameter for tracking using a bespoke system of theirs. In the end the url that visitors would go to after clicking the button in the email was something along these lines:
http://www.domain.com/pagename/?bespokecampaign=lead_gen/email/email_btn/boxcampaign&utm_source=email_pure&utm_medium=email&utm_term=email_btn&utm_campaign=boxcampaign
Looking at Acquisitions in the Google Analytics report I can see in the past this page has been viewed and has the correct Source/Medium set as email_pure/email.
However, there was a lead gen form that was filled out on the site after landing on this particular page that sends an event action that the form was filled out. When trying to view the campaign information for these events I do not see any information regarding the Source / Medium for that event being the correct information from the URL.
The Salesforce model in place to receive these leads took the referrer URL correctly, containing the Google Analytics parameters, but there was no record in Analytics to suggest one of the form events had the Source/Medium of email_pure/email.
Does anyone have any ideas on what could be causing this and potential fixes?

Resources