I'm set google analytics in tag manager to upload events from my website, but because the IOS 14 issue I can't upload events from IOS 14 devices, so how can I solve this problem, note: I have the events in my database?
To bypass iOS 14+ blocking, you need to use a GTM server container along with your web container.
Currently, all data that is sent from your site to third parties is blocked through iOS or Adblocks.
The solution is to download GTM scripts from your subdomain (not from googletagmanager.com) and send data not directly to google analytics, but to the GTM container server, from where it is already sent to analytics. That way the data will not be blocked.
Here is a more detailed description and links to step-by-step instructions on how to make the GTM container server setup: https://stape.io/how-to-prevent-your-google-analytics-data-from-being-blocked-by-adblockers/
Related
We need to track some server-side events given that some of the activity done by our users is offline over the phone and send these events over to multiple tracking tools and ad networks to stop or intensify remarketing budget.
We have been reading about Google Analytics Measurement Protocol But this only fixes the issue for GA and other Google products (Google Ads), but it won't fix the issue for other networks (Facebook Ads, AdRoll, Outbrain, etc)
What I think would solve the issue is having these events pushed into Google Tag Manager, and collected by triggers and variables that would shoot out the right tags. This setup would allow our marketing team to stay in control of notifying the desired ad network to take action.
While it might be technically feasible I think making GTM work on server side would be a huge hack. Google Tag Manager is used to manage JavaScript and HTML tags and does not provide any server side API (apart from REST Api used to mange your accounts and containers).
The reason why I think it is technically feasible is this: GTM injects scripts to your website and relies on window component and events that do not exist on the server side. Therefore you would have to spin up some client on your server (like Electron) to make it work and then feed events to the client. You can try doing this for fun but I would not advise doing this for any commercial server.
Apps removed from Google play store due cause of Violation of Usage of Android Advertising ID.
After submitting privacy policy apps is now available in play store but no ads is shown . I have used google firebase adMob network. I have tested with with TEST_BANNER_ID, it's works good but live banner ad Unit ID does not work. If someone would help or give me suggestion how to solve the problem.
Apps removed and real ads is not serving into apps
Causes and procedure to apply:
When your apps has been removed from android play store for policy violation and you got a mail or notification . After while you have made changes to your apps in order to comply android apps policy and resubmitted the apps into play store , Google will check the apps changes . If it supports their privacy policy properly and you submit an application with proper justification , Then google will republished your apps and available again to the users .
I changed my apps accordingly to the google apps privacy policy and resubmitted the apps into play store. Google accepted my apps to re-publish and available to google play store. But advertising serving was not available from Admob . So I was worried and applied to re-enable ads serving . It has takes some days to re-serving ads into apps and admob informed me for the great news!
I have used Amplitude analytics in the past in my react Web app to send event data. However I just started with Google Tag Manager and noticed it does not run because being blocked by adBlockers. Amplitude was always functional because I loaded their Javascript SDK through NPM install 'github:amplitude/Amplitude-Javascript' and initialized it at app load with client API key. I like the approach of Google Tag manager where I dont have redeploy app to make changes to my analytics logic. How can I take a similar approach to avoiding being blocked by adblockers.
It may very well be that Google products are popular so Adblock specifically just block google analytics products not other analytics products.
You don't. If people don't want to be tracked, that is their decision. You should not be forcing people to provide you with any data they do not want to provide. Especially by using some shady "bypassing" measures. Instead-
You could use a cookie to permanently disable your tracking of those who do not wish to be tracked, to help you preserve reliable analytics. See: http://www.multiminds.eu/2016/05/19/how-to-disable-tracking-via-google-tag-manager/
Or, better yet, simply measure the percentage of visitors who have disabled tracking so your analytical data can remain accurate. See: https://marthijnhoiting.com/detect-if-someone-is-blocking-google-analytics-or-google-tag-manager/
Yes, it's possible.
You can use reverse proxy for Google Tag Manager.
First, download the Google Analytics JavaScript library itself and host it on your server.
Then alter the code in the downloaded library to change the target host from www.google-analytics.com to your own domain name using find-replace.
Replace the link from the default Google Analytics script in your codebase to modified one.
Create a proxy endpoint to Google Analytics servers on your back end. One important step here is to additionally detect the client’s IP address and write it explicitly in requests to Google Analytics servers to preserve correct location detection.
Test the results. You’re done!
more detail info on freecodecamp.org/news/save-your-analytics-from-content-blockers and https://analytics-bypassing-adblockers.netlify.com
There's dataunlocker.com as well as some other open source alternatives (1, 2) which can help to fix reporting accuracy of Google Tag Manager, Amplitude, Google Analytics etc.
Talking about ethics and privacy, tools like DataUnlocker are just tools which allow you to bypass ad blockers as if you have implemented server-side analytics. I think by correctly implementing that "we use cookies" consent one can solve any privacy concerns.
I've managed to get around some blockers with the following in a node app:
var request = require('request');
app.get('/proxy*', function(req,res) {
const newurl = req.url.split('/proxy/')[1];
const data = request(newurl);
//data.on('response', function(response){console.log(JSON.stringify(response))});
data.pipe(res);
});
Then in your snippets for GTM prepend: "/proxy/" in the url and now the call goes via your server.
The caveat with the above is that without additional code you can't preview the container, but the container does load correctly. Lack of preview is a different issue to deal with.
I have a question to the following case. We want to track a content platform using google tag manager. However, not every time the platform is online but GTM would send data to our internal server. Therefore our concern is if data collected during this offline period will be kept or if we loose them.
Do you know if there is some period during which data collected offline through Google Tag Manager is kept and once it gets online then it is sent to Google Analytics?
Thank you,
Lukas
No, that is not how Google Tag Manager works. GTM for web is basically a javascript injection engine. It bundles your configured tags,triggers and variables with a selector engine and injects that into your page. There is no serverside component that stores data.
I'm sure one could come up with a solution to your problem - e.g. store your data with localstorage in the browser, poll you server to see if it is available, and when it's online send the data with a queue time parameter to Google Analytics. However that has nothing to do with GTM.
Having said this, it is hard to understand your use case - if your server is offline, then where does the data come from ?
If you have an offline PWA app (with a Service Worker), you can use the Workbox Google Analytics module to handle the collection of data, and to report it upstream when your site comes back online.
This module has a service worker fetch handler that intercepts the calls that you would make with analytics.js or gtag.js, and stores your data locally in IndexDB in the event that the call fails because it is offline.
I am a developer of Codiva - java ide and online compiler. I am working on improving offline support, reducing network usage, reducing the latency by pre-caching as much as possible.
I want to know how to handle requests to google analytics.
First is the ga script. I use google tag manager to setup GA. Is it okay to cache that request, that is, can I use networkFirst strategy for this request? Or should it always be networkOnly?
How to make sure the actions that happened offline gets tracked correctly?
I am planning to start using Firebase for some featuers, firebase also has some kind of analytics. Would it automatically handle analytics when the device goes offline?
Use the Service Worker helper for Google Analytics:
https://developers.google.com/web/updates/2016/07/offline-google-analytics?hl=en
Try PWA Template https://github.com/StartPolymer/progressive-web-app-template
First is the ga script. I use google tag manager to setup GA. Is it okay to cache that request, that is, can I use networkFirst strategy for this request? Or should it always be networkOnly?
I'm not sure it's wise to cache the GTM script. The analytics.js script is relatively static, but the GTM script can be updated by anyone who has access to your GTM account. Changes made in there obviously wouldn't get propagated to users of the cached version of the script.
How to make sure the actions that happened offline gets tracked correctly?
The key is to use the qt parameter, which allows you to send a hit after the fact, and specify its time offset.
There's an unofficial service worker script that does this today that you should take a look at. It will probably become officially supported sometime soon:
https://gist.github.com/jeffposnick/466ef7578c4c880a78c7270e6ac69620
I am planning to start using Firebase for some featuers, firebase also has some kind of analytics. Would it automatically handle analytics when the device goes offline?
At this point Firebase analytics is mobile-only. If you're using their web SDK, I don't think you get any analytics at this point.