A partial archive of discourse.wicg.io as of Saturday February 24, 2024.

[Draft Idea/Spec/Proposal] An interesting open, free, libre proposal for a scalable, sustainable, secure, private, accessible business model compared to alternatives such as Topics, Cookies, Flocs and other user tracking technologies

raphaellouis
2022-06-01

I have an interesting idea, I call this idea Open, Free, Libre Statistics or OFLS. For this, I will make some initial assumptions.

1. Initial Problem
  1. Every tech company or any privately held company in any field wants to make a profit. Profit is important for all company activities: research, human resources management, hiring people to develop and improve technologies, solutions, etc.
  2. Most online advertising focuses on users and not on privacy, security, anonymity - this occurs in most cases, search for topics, flocs, cookies etc - these other technologies “will always track users”
  3. I want the internet to be a place where people can be transparent, can have a good and accessible means of communication - something that has been the goal since the 90s.
  4. I would like to help build something interesting and viable for companies, people - Mozilla has a motto “our company focuses on people over profit”
  5. Based on the above idea, I would like there to be advertising focused on public, free, libre, open statistics - and for people to have consent to these public statistics if they use things like smartphones, computers or notebooks etc.
  6. This model would be sustainable, companies can help other companies with public data collected - There are initiatives such as open data that is a movement or an idea to have open data, to have transparency whether for companies, governments, market, science, technology etc.
  7. A good example of this is Google Trends, it is not possible to know the name of the users or addresses, telephone numbers etc - consumption habits are anonymized in numbers and statistics
  8. Currently, proposals such as Flocs, Topics, Cookies tend to have a lot of user information - which most of the time the user himself is not aware of, this can be resolved and has been resolved with clear security and privacy policies on the sites - but current technologies, even with these clear security and privacy policies, they still don’t have good security, privacy implementations.
  9. The purpose of my proposal here would be to provide an api that is based on user usage statistics and these usage statistics can be private, anonymous, public or open.
  10. It is the user who must decide whether these statistics are public, open, private or anonymous.
  11. I didn’t find information about private technologies alternatives to cookies, flocs, topics - which are 2 technologies proposed by Google.
  12. I’m not criticizing any company, browser here - I’m proposing improvements so that companies and people have better communication here.
2. Initial Solution
  1. We should have a guide to questions about what data is collected and what the purposes of that data are.
  2. This question guide can guide the user and being built for this purpose.
  3. Currently, there are several licenses to use data a common license is open data, here is the research/source reference: https://data.worldbank.org/
  4. It would be necessary to evaluate which data is allowed and which data is not allowed
  5. The data collected by the users must be anonymized in such a way that this generates only a graph and not sensitive information of people.
3. What data is collected?
  1. How much time does the user spend on the site?
  2. What are the pages he visits the most?
  3. What content do you like the most?
4. Notes
  1. We can generate these numbers and create a standard deviation - the objective of creating a standard deviation in the statistics could anonymize some data and with that you have a more private, secure api.
  2. This api shouldn’t be for companies - it’s for people for companies. “It’s the market that decides the technology or the people” - I read that somewhere - I wish there was an api called open, libre, free, public statistics on consumption data or OFLS - Open, Free, Libre Statistics.
  3. This proposal is an early draft and no algorithm has been made yet.
  4. I would like to have positive or negative feedback on this initial idea
  5. The great advantage of this api is that companies and people have access to the data collected - And they can help protect more data or recover more data.
  6. My goal would be to have an API to foster a free market of data consumption, something like linux - I would like to have a general purpose API for companies and people.
  7. This could generate competitiveness in companies to offer better solutions and force the user to charge companies that use this data.

5. Common problems: cookies/topics/flocs

  • User identification with consumption pattern
  • User data collection
  • Data collection transparency
6.1 Alternatives Cookies

There are currently 4 different ways to store data on client-side without using cookies:

  1. Local Storage (Session and Local key/value pairs)
  2. Web SQL (my favorite, it’s a whole SQL Database, and it’s NOT obsolete)
  3. IndexedDB (another Database with different structure and acceptance)
  4. Service Workers (Persistent background processing, even while offline, can asynchronously save files and many other things)

Concept

  1. One of the Fundamental principals of REST, and I mean real REST is not to store state on the server, if there is no state on the server, then there is no need for a cookie to be used as a key to look that state up.
  2. We can have an api in RESTful to communicate statistics data without necessarily having to store something from the user for that - It is not necessary to store user data - we can pass usage states by companies and this would not be the user himself - the way the user uses the site and the internet - creates statistics and numbers that are open, public or private or anonymous.
  3. User can decide which company he wants to have information from him.
  4. This could be done with this proposal here: Extending HTML As a Hypermedia - #10 by raphaellouis and/or Measuring user interaction time with website - #12 by raphaellouis - “the way the user interacts with the page generates information for the page itself”
  5. I recently read this proposal: [Proposal] Built-in E2E encryption into web browsers - #2 by hamblingreg52 - and I think this proposal can help this concept that I’m developing here
  6. I’ve read several technology solutions for privacy - the links I left here confirm some initial assumptions I made and are referenced bibliography
  7. I am creating this alternative here as a “solution” to solve the big problems or try to solve some privacy problems on websites
  8. My solution is used as technologies such as cookies/flocs/topics within the webpage itself and not externally by the user
  9. The way the user uses the page generates information from the page itself and not from the user
  10. We still need things like browsers, search engines to make this work.
  11. Within the html page itself - the company decides which data will be collected for its own server for eventually some consumption analysis - this data is generated by the way the user interacts on the page itself - I call this OFLS over hypertext
  12. OFLS is self-generated metadata - reference: [Proposal] Document Element Metadata

6. References

raphaellouis
2022-06-03

If I could give you a recommendation, it would be focus on one very specific, very precise use case and work through it end-to-end, identifying the problematic parts and how you would fix them in the context of an implementation of your idea. This will help others relate to and participate in what you’re trying to do.

My proposal is to improve these existing technologies such as “Topics”, “Cookies”, “Flocs” and other user tracking technologies within a specific context.

1. So… Should you say what you mean by that?
  • I call this specific context Open, Free, Libre Statistics or OFLS. If I could summarize the OFLS concept, I would say that it involves open-data, data-science, big-data.
2. “By analyzing data we can understand our users, but by analyzing user interactions we can understand our market, our strategy, our brand”

This idea I have - it’s something that involves what I call OFLS - Open, Free, Libre Statistics.

3. What context of OFLS?
  • Promote open data
  • Promote data analysis and data science, big data
  • Promote behavioral analysis study algorithms
4. How can I create OFLS?
  • You may use “telemetry”, “topics”, “cookies”, “flocs” and other user tracking technologies.
  • You may have pages that generate information from user interactions.
  • Any information coming from OFLS must have the express consent of the user. This express consent of the user is made with security policy, privacy and user usage and consumption data.
5. But what is OFLS?
  • Open, Free, Libre Statistics or OFLS it’s an invented term.
  • OFLS refers to technologies whose goal is always to understand the business model and the market.
  • Technologies whose objective is always to understand the business model and the market is therefore OFLS.
6. What does this mean(OFLS) in practice?
  • There are several techniques and ways to analyze user data. Some of these ways include: “telemetry”, “topics”, “cookies”, “flocs” and other user tracking technologies.
  • You can analyze the site’s network traffic and check the types of ips that most access the site. To check which country could be better in terms of market, commercial partnership.
  • You can improve products, services through the users themselves with a contact field and/or feedback field and/or chat icon.
  • As we can see here, there are several ways to analyze user interaction, analyze the market, analyze the proposed products and services, analyze possible buyers of our services and products.
    • All of these forms generate some sort of insight, data, data analysis and data science, or they can even generate so much data - to the point where we have to have sophisticated algorithms for big data. Note: I didn’t specify anything here, I’m speaking in general terms.
    • If we are going to summarize this sequence of steps, I would say that it all boils down to the idea of OFLS.
    • In the end, the goal of any Open, Free, Libre Statistics process/technology.
    • “To analyze information, data is needed”.
7. Clarification notes
  1. I’m not against user tracking technologies/tools, I’m against the way tracking technologies/tools are used.
  2. Most people offer didactic ways to help user tracking technologies/tools - that is, although we use cookies, telemetry, “topics”, “cookies”, “flocs” - all this must fulfill a purpose, an objective. For example, some consider that using cookie technology is unfeasible, something bad, something that directs users to certain internet advertisements. Note: From the point of view of someone who wants to improve the technology, a security, privacy policy could be made to tell the user how cookies are used.
  3. But trusting only a text that says that a technology will be used for a certain purpose, in my view, is something wrong, something unfeasible. For, a text that says that a “technology will be used for a certain purpose” may not be true. Well, there may be other ways to know the user without cookies, telemetry, flocs, topics etc.
  4. The objective of OFLS is to bring together data security and user privacy policies with user tracking technologies/tools that fulfill this objective. A good example of this would be generating data from the pages themselves. It would be interesting if the html itself generates data from the page itself. This has not given any user data, but the interaction of data from the page itself generated when users access certain pages.
  5. If the role of cookies/topics/flocs etc and have data security and privacy policies are used for something like Open, Free, Libre Statistics - this is acceptable. Otherwise, it’s something I think is bad. Well, it doesn’t meet clear goals. The point I want to make here is that any technology must have a standard of conduct, it must comply with users, company, market and the laws and standards of regulatory bodies. I’m not saying what is right or wrong, but what is fair, viable, transparent.
  6. Open, Free, Libre Statistics is the idea of having algorithms that fulfill the proposal that people, companies, users want. The idea is to establish a common point, a dialogue between different parties.
  7. For example you can use OFLS with MIT license, GPL etc. Or you can use specific licenses like open-data if you want for specific cases.
8. What are Open, Free, Libre Statistics technologies?

Topics, Cookies, Flocs and other user tracking technologies

9. What are licenses OFLS?

MIT, GPL etc

10. How to use OFLS?

All cookies/telemetry/topics/cookies/flocs must have a specific term of use: MIT, GPL, Open-data and/or data security and privacy policy etc

11. What do you want to do with OFLS technology?
  1. Improve existing technologies such as: cookies/telemetry/topics/cookies/flocs following the privacy and data security policy
  2. Create a new technology that contains certain aspects of existing technologies as well
11. I didn’t understand anything you said!
  1. Read about these ideas: Measuring user interaction time with website - #12 by raphaellouis , Extending HTML As a Hypermedia
  2. Much of what I said involves several previous concepts such as data-science, data security and privacy, compliance - these matters must be studied or must be understood initially to understand the proposal here
raphaellouis
2022-06-03
Algorithm 1

In this algorithm we want to analyze the user interaction for an amount of time. After this analysis, the information is sent to the responsible server.

1. source-code
1.1 js/UserInteract.js
// license mit
var start=0, end;
const TimeExpect = 1;// User Interact Clicking A Button For A Set Time() || UserWaitForPageToLoad(); || Time That User Wait Page
const TimeExpectWait = 1;//User Interact Clicking A Button For A Set Time or UserInteract.WaitForPageToLoad(); or Time That User Wait Page
const message= 'The time is over! User Interact Clicking A Button For A Set Time - timeExpect is: '

const UserWaitForPageToLoad = () => {
    return window.performance.timing.domContentLoadedEventEnd- window.performance.timing.navigationStart;
}

const UserInteractLocalStorage = (nameDef, value) => {
    localStorage.setItem(nameDef, value);
    return localStorage.getItem(nameDef);
}

const UserInteractionForm = () => {
  $('.eform input').on('focus', function(e){
   start=Date.now()
  })
  $(document).on('submit','.eform', function(e){
    end=Date.now()-start;
    let number = start+end;
    console.log("Seconds filling the form", parseFloat(end/1000).toFixed(2) );
    UserInteractLocalStorage("InteractionByForm", number);
});
}

const UserInteractButton = (idButton, message, TimeExpect, TimeExpectWait, typeTimeIndex, EngagementLevelIndex) => {
  //add id Button // sample id: '#UserInteractClickingAButtonForASetTime' //var button = document.querySelector('button');
  let button = document.querySelector(idButton)
  let element = document.createElement('div');
  element.setAttribute("id", "viewer");
  element.innerHTML = '';
  document.body.appendChild(element);
  let viewer = document.querySelector('#viewer');
  let getTimer = document.getElementById("viewer").value;
  console.log(getTimer);// open-data here
  let EngagementLevel = ['new', 'low', 'medium', 'high', 'old']; //window.getDomainEngagementLevel => ‘new’, ‘low’, ‘medium’, ‘high
  let typeTime = ['minutes', 'seconds', 'milliseconds']
  button.addEventListener('click', function() {
    new UserInteract(TimeExpect, viewer, function() {
        if(TimeExpect==TimeExpectWait){ // timeType: minutes || seconds || milliseconds == TimeExpectWait
          console.log(message+TimeExpect+' '+typeTime[typeTimeIndex], 'EngagementLevel'+EngagementLevel[EngagementLevelIndex]);
          UserInteractLocalStorage('UserInteractButton', TimeExpectWait);
        }
    }).start();
});
}

UserInteractButton('#UserInteractClickingAButtonForASetTime', message, TimeExpect, TimeExpectWait, 0, 0);

function UserInteract(mins, target, cb) {
    this.counter = mins * 60;
    this.target = target;
    this.callback = cb;
}
UserInteract.prototype.pad = function(s) {
    return (s < 10) ? '0' + s : s;
}
UserInteract.prototype.start = function(s) {
    this.count();
}
UserInteract.prototype.stop = function(s) {
    this.count();
}
UserInteract.prototype.done = function(s) {
    if (this.callback) this.callback();
}
UserInteract.prototype.display = function(s) {
    this.target.innerHTML = this.pad(s);
}
UserInteract.prototype.count = function(s) {
    var self = this;
    self.display.call(self, self.counter);
    self.counter--;
    var clock = setInterval(function() {
        self.display(self.counter);
        self.counter--;
        if (self.counter < 0) {
            clearInterval(clock);
            self.done.call(self);
        }
    }, 1000);
}

1.3 index.html


<!DOCTYPE html>
<html>
<head>
</head>
<body>
<button  class="form-control" id="UserInteractClickingAButtonForASetTime" hx-post="/search"  hx-trigger="keyup changed delay:500ms, search"  hx-target="#search-results" hx-indicator=".htmx-indicator">Click Button</button>
<script type="text/javascript" src="js/UserInteract.js"></script>
</body>
</html>
2. “Problems Maybe Solved”
  • User identification with consumption pattern
  • User data collection
  • Data collection transparency

3. Concepts

  • “OFLS.cookies”
  • “OFLS.flocs”
  • “OFLS.topics”
  • “OFLS.UserInteract”
  • “OFLS.HTMLHypertext”

4. Reference