16 ms·
Ad block shouldn't break your checkout
- sparker72678 5y agoI’ve been running into this sort of thing more and more and more. It’s crazy how many page rely on some kind of google tag manager event before they’ll load the real content or perform the main function of the page. Don’t all developers have ad blockers (clearly not)? I understand managers not testing for this, but for my own work it’d never load for me as a Dev, even.
- Moru 5y agoI have this problem too. Every time I want to order something from a new place I have to work out what out of 50 domains actually needs to load in uMatrix. The funniest one is the garage. When I book a time for service I get a confirmation but when I show up at the garage on the date/time booked, they can't find a thing in the system. Or sometimes they just find an empty booking that doesn't even have my cars registration number. I bet it's connected to uMatrix blocking some part of the transaction.
- Kwpolska 5y agoI don’t have an ad blocker on my work machine. The light web browsing I do on that machine mainly involves docs, internal resources, and sites like SO — which don’t have any ads or have very inobtrusive banners.
- Grimm665 5y agoI really think we're approaching the point where this argument is the same as "I don't wear a seat belt when I drive to the corner store. It's right around the block and I never go above 10mph anyway."
- moviuro 5y agoLOL, article is hidden when uBlock is active. Way to go!
- infomiho 5y agoHey, not sure what you mean :) I use uBlock Origin in Chrome and the article renders okay for me? The site doesn't really use any JS other then some privacy friendly analytics.
- moviuro 5y agoAh well, I blocked all JS for your domain, that worked. The article was collapsing when I had uBlock on FFx, I only saw your bottom (C)opyright.
- pndy 5y agoDisplays fine for me - gotta be your filter lists subscriptions
- lmz 5y agoSo it's basically proving the site owner's point that they can't account for whatever randomness the user decides to put in their browser.
- IncRnd 5y agoI use NoScript and uBlock Origin in Chrome, and the article appears with all the images.
- al2o3cr 5y agoTBH I don't see this as a TeeSpring problem - the code on their page guards against a realistic scenario (the GA script fails to load), but the "break" is caused by uBlock's changes. The article's title is correct: ad block shouldn't break checkout. Injecting a bogus value into a global breaks checkout, so ad block shouldn't do that.
- tyingq 5y agoI agree with that, though if I'm TeeSpring, I'd fix it anyway. It's silly to throw out incoming business. I assume the same thing would happen if there were a brief GA outage.
- suprfsat 5y agoIf GA is unreachable then window.ga wouldn't be defined. The author is running an extension that specifically injects code to make window.ga into something unexpected, and then complaining about it.
- tyingq 5y agoYes, though again, throwing out a checkout session for anyone running that extension isn't wise. "If GA is unreachable then window.ga wouldn't be defined." The legacy code you insert for GA does: var ga = document.createElement('script'); first, then loads GA. Wouldn't that have the same issue if GA is unreachable?
- FalconSensei 5y agoDoesn't matter. Anything that is not the main goal (in that case, the checkout process) should be isolated and not break it.
- IncRnd 5y agoThat may be true from a technical perspective, but it ultimately is TeeSprings problem. The problem they face is lost revenue from people who already clicked the purchase button.
- 5y ago
- LinuxBender 5y agoIs the issue that the store built a checkout dependency on google analytics to force people to disable uBlock or attempt to force uBlock to allow google analytics for this domain?
- infomiho 5y agoI believe that it was an unintentional mistake on TeeSpring's end. Searching for the dummy function uBlock Origin uses for window.ga https://github.com/gorhill/uBlock/blob/master/src/web_accessible_resources/googletagmanager_gtm.js https://github.com/gorhill/uBlock/blob/master/src/web_access... This reveals that this has been in uBlock Origin since 2019.
- GuB-42 5y agoIt makes no sense. All these ads and tracking and all that is to make people buy stuff. If people are ready to give you money, don't try to stop them!
- bellyfullofbac 5y agoI remember trying to order from a pizza place that talked to a third party delivery site, I hit "Order" and the browser didn't do anything. DevTools told me it tried to talk to the 3rd party using HTTP although the page was in HTTPS, and the browser blocked it (this was years ago when browsers started blocking HTTP content on HTTPS sites). Modifying the submit URL to https solved the problem. I found it pretty funny that I had to understand web development and troubleshoot the problem just to order pizza...
- lainga 5y agoSame thing happened to me with Domino's Canada. The call to place the order was returning a well-structured JSON error message (it didn't recognize the city I had entered, which was my suburb rather than my "post town") but the front-end wasn't telling me anything!
- throwawayboise 5y agoThis is why I always call to order for takeout or delivery. I'd say that 75% of the time I experience some kind of technical issues with online ordering. Just talk to the human at the store.
- sunshineforever 5y agoI can't help but think of the article on posted on here about a week ago with the old woman who refused to order milk online after her service canceled phone ordering.
- thih9 5y agoMore and more businesses are adding prerecorded responses and menus to their regular line. It’s a matter of time until we completely automate delivery calls too, I guess.
- mjevans 5y agoThen I'll either go there less and just order in person, or not at all. The whole reason I call is E.G. Round Table Pizza had a perfectly good "Web 1.0" website. Instead of updating some CSS rules to make it render better on mobile they seem to have outsourced to a third party and now everything performs worse and has it's own clunky hell. So instead of using a shit re-design on a website I just call on the phone.
- danpalmer 5y agoI never ceased to be amazed at how much core site functionality is implemented with Google Tag Manager. I block it with uBlock Origin and many standard ecommerce sites just don't function in a most basic way.
- johnchristopher 5y agoMediamarkt.be doesn't work at all on firefox mobile.
- IvanK_net 5y agoI am an author of a photo editor https://www.Photopea.com https://www.Photopea.com . Whenever someone reports a bug to me, I ask them if they use any site-modifying extensions. If they do, I ignore them completely, even if they wrote a long, detailed report. Web authors make websites for standard web browsers. I do not consider a browser with site-modifying extensions to be a standard web browser, and it is not my job to test my website with all 1,000,000 extensions that exist on earth. It all started six years ago, when my website contained <div id="ad" ... and somebody reported, that their adblock removes that element, but it is not the ad. What kind of a mental process should a brain perform to conclude, that it is a bug in a website, and not in their extension, which is supposed to remove ads.
- tux3 5y ago>I do not consider a browser with site-modifying extensions to be a standard web browser What do you consider a standard web browser? If someone ships a browser with Tracking Protection (like Firefox), or with NoScript preinstalled (like Tor Browser), or with another adblocker preinstalled, is that a standard browser because the user didn't modify it? Or is it based on the number of user. Is your standard browser really just Google Chrome, because Google has a lot of marketshare? I ask, because I looked up the statistics, and they say between 25-45% of users have an ad blocker, depending on the country. It seems pretty unfair to ignore your users completely, even if they wrote a long, detailed report. No?
- StavrosK 5y agoMaybe he chooses to ignore non-paying users, which is fair. Hell, ignoring any kind of user is fair. Might not be a great business strategy, but it's his site.
- penultimatename 5y agoI think most of Photopea's users would be using the free services. I don't see why a developer would want to bend over backwards to support users who aren't paying them, aren't viewing ads to support their usage/bandwidth costs, and are having an issue due to another piece of software they have installed. It's like emailing an email provider asking why your desktop email client is displaying emails weird.
- lxe 5y agoLow quality JavaScript shouldn't break your checkout. This is the type of issue that could have been caught by aggressive type checking.
- tantalor 5y agoThat would not help, as the externs for that type don't match the faked runtime object.
- rallemoose 5y agoI’ve reported this to Teespring and all they reply with is to try another browser and clear my cookies. They won’t listen. They’re basically making Teespring unusable for the technical crowd.
- recursive 5y agoThe *adblocker crowd. I think I'm in the "technical crowd" but I've never used an adblocker. Running non-compliant extensions is your right, but the results don't need to be supported. I've run into this situation a number of times, although not with adblock. My advice has been to disable the extensions, or use a different browser without them.
- rallemoose 5y agoI agree. Ideally an extension never breaks a site. But if I were to make a store. The most robust thing in the store would be the checkout system. They’re leaving money on the table considering how little work it is to test the site with the few popular extensions. It’s basically like supporting a special payment method or exotic browser.
- throwawayboise 5y ago> My advice has been to disable the extensions, or use a different browser without them You're leaving out the option of "not using the website." Let's face it, nothing for sale on TeeSpring is essential. Just thank them for putting a roadblock on your silly impulse buy.
- recursive 5y agoWhen I'm providing support, it's for my company's application, and it really is essential in those cases.
- rakoo 5y ago> non-compliant extensions Compliant to who/what exactly ? Extensions are executed in a user agent, ie a software acting on behalf of a user based on the settings they prefer. If anything it's the website that's non-compliant with the user's choice.
- vzaliva 5y agoAlso ad block should not break log-in process. I recently discovered that I could not log in to a web site unless I disable ad block. All core web site functionality should be tested to work with ad blocking. Unless you really hate your users.
- rchaud 5y agoAdblockers block Google Analytics, which is a different script from the ones that are served as part of displaying banner ads. GA has an enormous set of capabilities for measuring user activity and e-commerce, especially because Tag Manager lets you assign trackable events anywhere you need to on the site. It may be interesting to see if that site works if 'analytics.js' and 'gtm.js' are greenlit. Those are the main GA scripts. Everything else would likely be ad-related.
- wai1234 5y agoYour checkout shouldn't trigger ad block. Stop slavishly bowing to GA everywhere. I'm about to give you money. That's the only 'analytic' you should care about. I'm tired of being treated as little more than a data cow, always ready for milking. Just. Stop. To the person who ignores people who complain because their 'non-standard' browsers fail on their site, why do you have a site if you don't care about your users accessing it? Ego much?
- sofixa 5y ago> I'm about to give you money. That's the only 'analytic' you should care about Yeah, but who are you? Are you an impulse buyer? Returning? Did you spend an hour on the product page? Did you jump between 20 different product pages? You can't deny that this kind of analytics can be very useful for user conversion and website design. And the site in question tries to do the proper thing, checking if GA works before trying to do stuff with it, so it wouldn't just fail if GA was blocked by the user.
- ookware 5y agoThat's great, but all of that tracking is pointless if I can't actually complete the sale
- rchaud 5y agoThat's not on TeeSpring, that's on Ublock Origin, which replaces the GA object with a dummy. The user is running code on their local machine that breaks his/her own ability to complete the sale.
- shadowgovt 5y agoAnd practically speaking, the back-stop is that if uBlock Origin causes too many high-profile websites to break, it'll get a reputation for degrading user experience and fewer users will install it. When two independently-owned systems on the web break each other, "who needs to fix their stuff" is a question more of social networks and business politics than technology. TeeSpring's "fix" could be to pop a banner that says "WARNING: uBlock Origin breaks this site and we can't test for that."
- jerf 5y agoMy local energy company has a website where you can register an account to pay remotely with them. I have uMatrix on and it was blocking some third party scripts. It managed to get my account into some sort of "half-created" state. It is impossible to log in, impossible to reset the password, and impossible to create a new account with my (physical!) address because "an account already exists for that address". I ultimately found another solution, but that's the worst breakage I've ever seen... not just that my payment didn't go through, but my browser config permanently scrambled the entire possibility of ever getting an account set up! (I did not bother trying to explain this to a human on the phone, because of the aforementioned alternate solution. That just sounds a supersized order of pain.)
- shadowgovt 5y agoThat's a bad bug on their end. It implies that if a user's user-agent crashes (or they kick the power plug out of the wall at the wrong time), they can get into this state. As a general principle, it should be impossible for a client to "half-configure" an account; the Internet isn't designed to be reliable enough to support guarantees that all the relevant messages get sent and received.
- pixelbreaker 5y ago123-reg, can't use any of their support without disabling ad blockers, and built in blocking in vivaldi. Totally useless.
- complainic 5y agoWhat OKR does a purchase move if there is no analytics tracker there to see it?
- FalconSensei 5y agototal sales?
- mikelward 5y agoBritish Airways does this. It's been broken for years.
- SideburnsOfDoom 5y agoYes. And British Airways is renowned for fractally bad IT. e.g. outage, 2017 https://www.theguardian.com/business/2017/may/31/ba-it-shutdown-caused-by-uncontrolled-return-of-power-after-outage https://www.theguardian.com/business/2017/may/31/ba-it-shutd... https://www.cloudpro.co.uk/it-infrastructure/7800/british-airways-sues-data-centre-supplier-for-2017-outage https://www.cloudpro.co.uk/it-infrastructure/7800/british-ai... outage, 2019 https://www.itpro.co.uk/disaster-recovery-dr/34162/british-airways-flights-disrupted-by-major-it-outage https://www.itpro.co.uk/disaster-recovery-dr/34162/british-a... Supply chain hack, 2018: https://www.bbc.co.uk/news/technology-45446529 https://www.bbc.co.uk/news/technology-45446529
- helsinkiandrew 5y agoHang on: The Tee Spring code checks if GA is there and works without it, the website breaks because Ad block replaces GA with a fake object that doesn't have the same API. Perhaps some companies have the resources to check if their websites run with different ad blockers, but expecting websites to work when plugins are replacing and breaking running code is a big ask.
- JulianMorrison 5y agoDon't put GA there, then.
- josephcsible 5y agoI think the point is that Google Analytics shouldn't be an essential part of your site, so it totally breaking for any reason should be unnoticeable to the end user.
- bastawhiz 5y agoIf it had broken, the code in the post would have worked. How exactly is code supposed to handle a dependency existing, but not being the API shape that it should be because a browser extension added an incomplete stub? Should every line of code get wrapped in try/catch? There's a big difference between "resilient against a missing dependency" and "being resilient in the face of getting literally any object instead of the dependency you expected to get."
- josephcsible 5y ago> Should every line of code get wrapped in try/catch? Everything Google Analytics does is expendable, so the block of code that deals with it should be wrapped in try/catch. > There's a big difference between "resilient against a missing dependency" and "being resilient in the face of getting literally any object instead of the dependency you expected to get." If Google pushes a breaking change to the Google Analytics API tomorrow, that shouldn't break checkout either.
- ratww 5y ago
- Marsymars 5y agoOne of the largest pharmacy chains in my area has a covid-vaccine-booking page that's impossible to complete if ad-blockers are enabled. (Even Safari content blockers on iOS break it.) Developers failing to test sites with adblockers could literally result in people dying.
- mindslight 5y agoWhile we're at it, potential customers shouldn't need to identify pictures of traffic lights and buses to shop your store. If you're a web store, then you're in the business of selling things and advertising that you're selling them far and wide. The only place you might need a CAPTCHA is the account login page, and only then after there are multiple failed attempts from the same IP address. Other than that, get the fuck out of your customers' way.
- Karunamon 5y agoDepends on if you have a bot/scraping problem or not. Though admittedly sitting behind something like Cloudflare and leveraging their reputation system rather than blithely embedding recaptcha into your page might be the way to go, but then you're married to Cloudflare. Pick your poison.
- mindslight 5y agoApart from the caveat I gave regarding logins, there is simply no such thing as a bot or scraping "problem" for a web store. Your goal is to advertise what you are selling far and wide - bots are your friends. If you have problems with site load, the first thing to do is make your site more efficient. If you're a small operation and that still isn't enough, add generic server side throttling.
- blacksmith_tb 5y agoMy fave example of this - I am using NextDNS for ad-blocking on my stock Pixel 4a, the Wells Fargo app won't allow me to sign in with fingerprint or username/pass while using DNS over TLS.
- donclark 5y agoDid you ever get this working? I had a similar problem with nextdns and the amazon app but I was able to resolve via whitelisting a couple domains. https://torguard.net/blog/only-one-out-of-five-top-us-banks-support-ip-whitelisting/ https://torguard.net/blog/only-one-out-of-five-top-us-banks-... https://community.spiceworks.com/topic/2238885-wells-fargo-wtf https://community.spiceworks.com/topic/2238885-wells-fargo-w...
- avmich 5y agoPractically the whole Web doesn't function if client blocks add, disables JavaScript (which became quite annoying lately) or uses Tor. I'd like to find a solution which would restore the ability to use sites. I'm thinking about website cleanup offering (startup anyone?), I wonder if something similar already exists.
- dooglius 5y agoI use Tor by default, and while many sites don't work (TFA is behind a Cloudflare captcha, ironically enough), I wouldn't say it's a majority.
- wai1234 5y agoWhy is it checking for GA at all? A critical function like accepting payment should be bullet proof. It's critical code and should be treated that way.
- AdmiralAsshat 5y agoSome critical sites I need to pay through are so fundamentally broken by uBlock Origin and uMatrix that I've been forced to use the embedded browser in the LastPass app. Since they're utility bills, credit cards, insurance portals, etc, I don't really have a choice not to use their services.
- priyanmuthu 5y agoYou can just disable your ad blocker for the website.
- AdmiralAsshat 5y agoThere are some sites where I've tried fully whitelisting them on uMatrix, and that's enough--so I give them a dedicated Container Tab and use it that way. But there are others where even with uB0 and uM completely disabled, the site still refuses to let me sign in. I'm not sure if it's some combination of Firefox's built-in tracking protection, or the fact that I'm coming in through a VPN, or what: but at some point, rather than spending a half hour fighting with it, just signing in on my phone was easier.
- rchaud 5y agoWhy not just use the default browser? FF is my main browser, so for anything behaving in a finicky way, I use Chrome, which doesn't have any extensions or Google IDs attached to it.
- acomjean 5y agoI run ad block (unlock origin) on Firefox. I noticed I couldn’t order on restaurants that used “Toast” for they’re ordering. Try chrome, works. But the reason wasn’t the browser but just I wasn’t ad blocking on chrome..
- sabujp 5y agoit shouldn't break lots of stuff but it does, e.g. access to bank & other financial sites.
- breakfastduck 5y agoThis is the most infuriating thing ever. Plus checkouts that rely on constant popups for authentication and confirmation which usually get blocked too. I basically have to switch to another browser to actually checkout on anything because there's so many things I'd need to disable to get them to work.
- Doctor_Fegg 5y agoFairly regular support conversation on the community website I run: "I can't see the images on the 'Adverts' page." "Do you have an ad-blocker installed?" "Yes." "What do you think an ad-blocker does..."
- shadowgovt 5y agoAs a web developer, ad blockers are maddening. The problem is that they're part of an arms race that even if you don't use ads, you have to be aware of. Early in my career, I worked on a site that displayed images, each of which was given a GUID and loaded from a server in thumbnail form. Fortunately, one of our developers used an ad blocker, because she realized two (of a couple hundered) thumbnails didn't show up. Turns out her ad blocker was running a heuristic based on both dimensions of the thumbnail and the URL the thumbnail was served from, and if it saw the sequence 'ad' in the URL (plus some additional pieces of the URL we never identified; attempts to reproduce it with a simpler URL didn't pan out), the browser extension would block the image from loading and our users got a broken image. The best solution we could come up with was tweak the server logic to substitude 'a' with 'g' when vending the URLs, and then reverse the substitution when fetching them. Huge pain in the ass on our end, but necessary to ensure our customers' user experience didn't break from their own ad blockers. "Ad block shouldn't break your checkout..." but it's third-party code you don't own or control splicing behavior atop the code you do own and control, so of course it breaks things occasionally. It's like the old era of the MacOS Desk Accessory API. It is provably mathematically impossible for the developer to guarantee successful execution of a Turing-complete program if the program can be arbitrarily modified by third-party injection, so the odds that browser extension in general (and ad blockers in particular, as they are designed to modify the intended site behavior) don't break any website are vanishingly close to zero.
- randompwd 5y ago> atop the code you do own and control It's a web browser. Look at it as if you're giving people the option to run your code in their browser. Your code is not entitled to be there - it's just a suggestion. Your server side endpoints are what you own and control. That's (thankfully) a fundamental part of the web. The days of proprietary blobs running opaque code are done(java applets and flash etc.)
- NoGravitas 5y agoIMO, this points out the inherent and unresolveable contradiction between browsers being a user-agent, and browsers being a precisely-specified execution environment for arbitrary applications. A browser that is built to operate in the interests of its user will not run code that is harmful to them, whether that's code to track them, code to mine bitcoin, or code to display advertisements. On the other hand, a browser that is compliant with the (largely advertising-company-defined) web platform standard will do all these things, and can't permit any user-agent features or extension mechanisms that would interfere with them. The web platform standard as we know it essentially specifies that the browser belongs to the website operator (within some sandboxing guarantees), not to the browser user. On the whole, I prefer that software I run on my computer belong to me; this makes using the web a necessary evil at best.
- JulianMorrison 5y agoThe answer to the contradiction is to test with uBlock. The existence of Firefox as a counterweight to Chrome means that the web standards are not going to win. Ads will be blocked. Cope and deal.
- npsimons 5y ago> The web platform standard as we know it essentially specifies that the browser belongs to the website operator (within some sandboxing guarantees), not to the browser user. And that is precisely the problem. Once website operators get it through their thick heads that the browser is user property, not theirs, things might start to improve.
- beshrkayali 5y agoI think you need to consider changing the title of your article. If I understood correctly, you're saying: TeeSpring needs to fix their stupid checkout. I think your title should be: Your checkout should not break because of ad-block. You have it the other way around. It's important because most people understood it like how I initially did and I was prepared to write a lengthy comment on how wrong this argument is. It's your job to fix your site so it doesn't break because of ad-block. If you're determined on refusing service for people who don't want to be tracked by breaking checkout, that's fine as well. But then you don't get to complain. Side note: my pet peeve these days is emojis. People need to stop it with shoving emojis everywhere, just like TeeSpring needs to stop shoving evil analytics everywhere. Not everything needs to have 4x emotional emphasis ffs.
- randompwd 5y agoI also hate when sites use ever-changing 3rd party urls (e.g. $randomchars.cloudfront.net) Use uMatrix on a site for more than a week and annoyances will show themselves. Twitch is the biggest site I've found that loves ever changing 3rd party urls.
- devney 5y agoAdblock doesn't break sites. If your site doesn't work with adblock, that means your site is broken. 27% of American internet users use adblock in some form. Better go check right now that you're not losing 27% of sales to it.
- npsimons 5y agoLet me add that blocking outgoing requests to non-standard ports should also not break payment systems, yet I've encountered exactly that. If your checkout system connects over anything but port 443, you done fucked up.
- DigitallyFidget 5y agoI've used adblock for so long that I completely forget it's even there. Consequently, I also forget how shitty most the internet is without it. I never even thought about or realized that adblock may be why I have had issues with many different online retailers. I just assume "something is fukt with the site, or my browser, Vivaldi, is at fault" and then just buy the product elsewhere or buy a different/similar product instead.
- Jap2-0 5y agouBlock Origin commit mentioning this: https://github.com/gorhill/uBlock/commit/8cd2a1d263a96421487b39040c1d23eb01169484 https://github.com/gorhill/uBlock/commit/8cd2a1d263a96421487...