Even if you block them 100% online, as soon as you use a credit card or loyalty card, you are letting them track you again.
In my country, and with my ISP we have dynamic IP's, so I don't have a 'home IP' as such. Browser user agent's are pretty easy to spoof/mock/etc. Browser fingerprinting is super hard to work around though - especially stuff like the canvas fingerprinting, because blocking it outright can also be used as a unique identifier when combined with other data.
Would it be possible to build some kind of public repository of canvas fingerprints, then whenever a site tries to build one, rather than outright blocking it, you return one of the public fingerprints from the repository. Get the repo big enough and used by enough people (especially if you could extend it out to other identifiers like fonts) and I imagine you would have a good chance of driving down one's uniqueness in a privacy conscious manner.
I'm not familiar with JS or the mechanics of how these fingerprints are generated, so I don't know if this is possible, but I imagine that if you can block them (Firefox 'Canvas Blocker' extension, you could intercept them?
https://github.com/gorhill/uBlock/wiki/Dynamic-filtering:-to...
Why, you may ask? Because mining data about the pages you visit after Facebook allows for targeted advertisement, at the very least.