Recently, the @CNIL issued a decision regarding the GDPR compliance of an unknown French adtech company named "Vectaury". It may seem like small fry, but the decision has potential wide-ranging impacts for Google, the IAB framework, and today's adtech. It's thread time! ๐Ÿ‘‡

It's all in French, but if you're up for it you can read:
โ€ข Their blog post (lacks the most interesting details): https://t.co/PHkDcOT1hy
โ€ข Their high-level legal decision: https://t.co/hwpiEvjodt
โ€ข The full notification: https://t.co/QQB7rfynha

I've read it so you needn't!
Vectaury was collecting geolocation data in order to create profiles (eg. people who often go to this or that type of shop) so as to power ad targeting. They operate through embedded SDKs and ad bidding, making them invisible to users.
The @CNIL notes that profiling based off of geolocation presents particular risks since it reveals people's movements and habits. As risky, the processing requires consent โ€” this will be the heart of their assessment.
Interesting point: they justify the decision in part because of how many people COULD be targeted in this way (rather than how many have โ€” though they note that too). Because it's on a phone, and many have phones, it is considered large-scale processing no matter what.
Other factor: the technicity and opacity of ad bidding systems is used to justify greater transparency requirements. People cannot expect to consent to what they don't understand (or even know exist), therefore the adtech ecosystem is de facto under *stronger* requirements.
The decision also notes that the @CNIL is openly using this to inform not just the company in question but whole ecosystem, including adtech of course but also app makers who embed ads and marketers who use them. You're all on notice!
Note that there is no fine: if Vectaury remediates by 1) no longer processing geographic data without consent, 2) retroactively wiping the data they have (since consent was invalid), and 3) prove they've done that then they're good to go. Out of business, too, I would guess.
Fun fact: the @CNIL takes privacy seriously, and two years from now the Vectaury decision they have just made will be anonymised so that just the pure legal content remains.
Let's jump into the heart of it. The decision looked at two distinct but related aspects:

1) Consent obtained directly in apps that embed Vectaury as an SDK, using Vectaury's CMP (Consent Management Platform). You can see it in action in this video: https://t.co/LGOjNOD18d
2) Consent collected elsewhere and signalled to Vectaury through use of the @IABEurope Consent Framework.

Both are found to be failing โ€” the second one in very interesting ways. Keep reading!
The CMP fails exactly as you would expect:

1) The consent is not informed;
2) The consent is not specific;
3) The consent is not affirmative.

Given the high-risk nature of the processing and its opacity, this isn't even a very strict interpretation.
Here is the bombshell though: Consent through the @IABEurope framework is inherently invalid. Not because of a technical detail. Not because of an implementation aspect that could be fixed. No.
You cannot pass consent to another controller through a contractual relationship. BOOM
Precisely: a controller has the obligation to demonstrate, for the entirety of the data they are processing under consent, the validity of the consent obtained. Otherwise you're just failing Article 7.

This is huge.
This means that if someone gains consent for you, and you have a contract saying it's their responsibility to do so, you *still* have the obligation to verify that the consent is valid.
This rules the @IABEurope out as an option, but more than that: @Google forced publishers to collect consent on its behalf for advertising profiling. They have said that they will audit that publishers do it right โ€” but will auditing be enough?
The decision very specifically states the need to verify consent for the "entirety" of the data. By definition an auditing approach only does spot checking.

Also, Google has said they won't use a clear definition of valid consent. This shows they will have to.
So, yeah โ€” that happened. It will be interesting to see how this lines up with @johnnyryan and @RaviNa1k's complaint about programmatic in terms of enforcement decision.
The one part that slightly disappoints me is that the decision does not call into question the role of Android and iOS in providing the ad ID and geolocation in the first place, as joint controllers, without proper consent.

That might be a fight for another day ๐Ÿ˜Š๐Ÿค—

More from Tech

A brief analysis and comparison of the CSS for Twitter's PWA vs Twitter's legacy desktop website. The difference is dramatic and I'll touch on some reasons why.

Legacy site *downloads* ~630 KB CSS per theme and writing direction.

6,769 rules
9,252 selectors
16.7k declarations
3,370 unique declarations
44 media queries
36 unique colors
50 unique background colors
46 unique font sizes
39 unique z-indices

https://t.co/qyl4Bt1i5x


PWA *incrementally generates* ~30 KB CSS that handles all themes and writing directions.

735 rules
740 selectors
757 declarations
730 unique declarations
0 media queries
11 unique colors
32 unique background colors
15 unique font sizes
7 unique z-indices

https://t.co/w7oNG5KUkJ


The legacy site's CSS is what happens when hundreds of people directly write CSS over many years. Specificity wars, redundancy, a house of cards that can't be fixed. The result is extremely inefficient and error-prone styling that punishes users and developers.

The PWA's CSS is generated on-demand by a JS framework that manages styles and outputs "atomic CSS". The framework can enforce strict constraints and perform optimisations, which is why the CSS is so much smaller and safer. Style conflicts and unbounded CSS growth are avoided.

You May Also Like

๐™Ž๐™๐™–๐™ง๐™ž๐™ฃ๐™œ ๐™ข๐™ฎ ๐™ฌ๐™ž๐™จ๐™™๐™ค๐™ข ๐‘พ๐’๐’'๐’• ๐’ƒ๐’† ๐’”๐’–๐’“๐’‘๐’“๐’Š๐’”๐’†๐’… ๐’Š๐’‡ ๐’•๐’๐’Ž๐’๐’“๐’“๐’๐’˜ ๐’– ๐’“๐’†๐’‚๐’… ๐’•๐’‰๐’† ๐’”๐’‚๐’Ž๐’† ๐’”๐’•๐’–๐’‡๐’‡ ๐’Š๐’ 50๐’Œ ๐’˜๐’๐’“๐’Œ๐’”๐’‰๐’๐’‘ ๐’๐’“ ๐’”๐’๐’Ž๐’†๐’๐’๐’† ๐’Ž๐’‚๐’๐’‚๐’ˆ๐’Š๐’๐’ˆ ๐’š๐’๐’–๐’“ ๐’Ž๐’๐’๐’†๐’š ๐’˜๐’Š๐’•๐’‰ ๐’”๐’‚๐’Ž๐’† ๐’๐’๐’ˆ๐’Š๐’„
Simple and effective way 2 make Money


Idea 1:- Use pivot level like 14800 in case of nifty and sell 14800straddle monthly expiry (365+335) exit if nifty closes on daily basis below S1 or above R1

After closing below S1 if it closes above S1 next day or any day enter the same position again vice versa for R1

Idea2:- Use R1 and S1 corresponding strikes multiple
Incase of R1 15337 take 15300ce
N in case of S1 14221 use 14200pe
Sell both and hold till expiry or exit if nifty closes below S1 or above R1 around closing
If the same bounces above S1 and falls below R1 re-enfer same strikes

Use same criteria for nifty, usdinr and banknifty

(This is must)Use this margin rule for 1lot banknifty pair keep 4Lax margin
For nifty one lot keep 3Lax
For usdinr 100lots keep 4Lax

I bet you if you do this on consistent basis your ROI will be more than 70% on yearly basis.

Couldn't explain easier than this

Criticisms are most welcomed.