We have implemented transaction tracking using Measurement protocol. Works as a wonder 100% of transactions are tracked.
In the checkout we have option for people to login via Facebook oauth. GA attributes all the transactions to Facebook if people login via Facebook.
I was wondering if it is an option to take out GA code from checkout and create funnel using measurement protocol page views. Which should be very stable and we will solve Facebook oauth issue.
Later on we will implement product impression, product click, promo click tracking using data layers and GTM.
Do you think such approach would work?
Related
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).
I add Enhanced Ecommerce in my GA tracking, all steps tracking fine, except CheckOut to Transaction, two action not linked together (has checkout but shows 0%).
P.S. I user third Third-Party Payment and in my test enviroment, staging GA,two action links OK. So I think maybe I miss some GA setting?
I think what's happening here is that you have not added the third party payment gateway to your referral exclusion list. Therefore, every time a user returns to your site after paying, this is triggering a new session in GA (with a new source/medium). This is why you see 1 session with transactions but 0% funnel carry through. Try adding the domain of your payment gateway by following the instructions here.
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.
For one of my sites I am using a Gravity Form plugin in combination with a Dutch payment gateway to receive new subscriptions. I would like to add a goal to my Google Analytics account with the amount of subscriptions per day. After a successful subscription a hidden "Thank you" page is loaded.
I've already various things:
Using the "Gravity Forms Google Analytics Event Tracking" plug-in, however the plug-in posts to Google Analytics when connecting to the payment gateway. Because of this all payments that are canceled or not accepted are also showing up in Google Analytics.
I have tried to use the Google Analytics goal page. Using this way we monitor if the user loads the successful payment page. However, when the page is refreshed Google Analytics will count it as two payments.
Has someone have an idea how to solve this problem in a reliable way?
We provide an iframe-based embeddable widget to our clients and want to be able to send their Google Analytics account events based on what is happening inside our iframe. We used to be able to do this using the old ga.js with the following code:
_gaq.push(['NAMESPACE._setAccount', CUSTOMER_GA_ACCOUNT_ID]);
_gaq.push(['NAMESPACE._setDomainName', CUSTOMER_DOMAIN]);
_gaq.push(['NAMESPACE._trackEvent',"category", "event", "label"]);
This code would be fired inside our iframe, but would result in an event being pushed to the customer's google analytics account, letting them have some insight into customer behavior inside our embeddable widget. The NAMESPACE in front of the actions would keep these events separate from our GA stuff, and would prevent our GA stuff from going to their GA account. They would provide us with their Google Analytics account ID when they wanted to enable this feature.
Is there a way to do something similar with the new Universal Analytics API?
I don't seem to see a similar way to namespace actions and the cross-domain tracking documentation doesn't indicate how to send events/pageviews to two domains/GA accounts (ie we want to track pageviews on our GA account, and send the events to our customer's GA account).
I suggest going the roundabout way - set a pixel in your widget and make the actual endpoint for that pixel a script on your server that sends the data via the measurement protocol to your clients analytics account.