I've updated refund information with transaction ids which i get from our e-commerce site API. it seems our api sent transaction ids that was not sent to Google Analytics 360 in the first place. So I see refunds in Google Analytics 360 that is not added as Sale before.
I have API Call response ids logged.
Can I make a call to Google Analytics to rollback that actions for that ids ?
Any idea ?
Google analytics data is write only. Once the hits have been sent they are set in stone there is no way to rollback anything you sent to Google analytics.
If this is an ecommers transaction then what is normally done is that you send another hit negating the original hit. So if you sent 1 and you want to remove it you send a -1 and it works out in the end. see reverse eCommerce transaction
Related
In Firebase, It consists of several events which are sent along with additional key parameters, some of those events contain around 30 key parameters and even more.
For Google Analytics this is not an issue since an event can be set up to be sent with 200 custom dimensions, nevertheless we are now required and forced by Google to use Firebase for apps, Firebase has a limitation of 25 parameters per event.
How do we proceed in case we only care about Google Analytics data.
Based on the solution of the above, what would happen in Firebase events?
Is there a way to have the events sent to Google analytics as well as Firebase without
causing any changes in Google Analytics? If so, how!?
Some of the events are reaching Firebase but not Google Analytics,
what could possibly be the reason, how should someone start an investigation?
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?
I have implemented Google analytics reporting API v4 to get the data stored in Google analytics with one of the e-commerce applications and it sends two report requests to GA side in order to get data with pagination for the first request. one request is sent to get a page of userIds and second request will sent with those userIds to fetch another set of data. This works perfect until in some cases, at the last page it sends some userIds which is not showing in the Google Analytics web UI either. We have a record against each userId in our own database and there is no such record for those incorrect userIds either.
I would be grateful if someone has any idea/clue on this.
I am trying to use the Google Analytics Measurement Protocol to record some events happening on my server-side code. I am using the REST API as suggested here but I don't see any events on the Google Analytics dashboard.
When I try to add the event via the Google Analytics Hit Builder, then I am able to see that event in the dashboard.
I don't think any authentication is required while using the REST API and only a correct tracking ID is required which is present. I have confirmed that the POST request is not failing.
I am looking at the Realtime > Events to check whether the events are pushed or not. Is there a place where I can check the historical data to see if the events are present there.
Thanks!
I'm trying to implement the Enhanced Ecommerce tracking with Google Analytics and ran into a few questions.
Can you only send impressions with the pageview event? So how would I send impressions of items loaded after the initial pageview event?
I wanted to send product impressions on search result pages, which are in blocks of 10. When I try to send along with the pageview, it never sends, I'm guessing because it's too long for Google, so how would I send multiple at 1 time? I can get upto 6 products and have it still work.
Should I just use an event to track impressions? Would this solve the sending and size issue if I made a call for each product?
Any guidance would be appreciated. I feel the documentation is lacking a bit with some specifics.
You don't need to necessarily send ecomm data with the pageview. As stated here https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce, in the "Sending Enhanced Ecommerce Data" section:
Note: Ecommerce data can only be sent with an existing hit, for example a pageview or event. If you use ecommerce commands but do not send any hits, or the hit is sent before the ecommerce command then the ecommerce data will not be sent.
There's also more information in this SO post: Tracking catalog product impressions - Enhanced Ecommerce Google Analytics.
I'm not sure if there is a hit limit for EE transactions as there are for other types of hits (limit of 500 hits per session), but if you are worried that you'll reach some limit, whether it's EE or not, or if you think you'll send more than 20 hits per second, then you can throttle the hits being sent to Google.