|
| 1 | +Advertising Details |
| 2 | +=================== |
| 3 | + |
| 4 | +.. NOTE: This document is linked from: |
| 5 | +.. https://media.readthedocs.org/javascript/readthedocs-analytics.js |
| 6 | +
|
| 7 | +Read the Docs largely funds our operations and development through advertising. |
| 8 | +However, we aren't willing to compromise our values, document authors, |
| 9 | +or site visitors simply to make a bit more money. |
| 10 | +That's why we created our |
| 11 | +:doc:`ethical advertising <ethical-advertising>` initiative. |
| 12 | + |
| 13 | +We get a lot of inquiries about our approach to advertising which range |
| 14 | +from questions about our practices to requests to partner. |
| 15 | +The goal of this document is to shed light on the advertising industry, |
| 16 | +exactly what we do for advertising, and how what we do is different. |
| 17 | +If you have questions or comments, |
| 18 | +` send us an email < mailto:[email protected]>`_ |
| 19 | +or `open an issue on GitHub <https://github.com/rtfd/readthedocs.org/issues>`_. |
| 20 | + |
| 21 | + |
| 22 | +Other ad networks' targeting |
| 23 | +---------------------------- |
| 24 | + |
| 25 | +Some ad networks build a database of user data in order to predict the types |
| 26 | +of ads that are likely to be clicked. |
| 27 | +In the advertising industry, this is called *behavioral targeting*. |
| 28 | +This can include data such as: |
| 29 | + |
| 30 | +* sites a user has visited |
| 31 | +* a user's search history |
| 32 | +* ads, pages, or stories a user has clicked on in the past |
| 33 | +* demographic information such as age, gender, or income level |
| 34 | + |
| 35 | +Typically, getting a user's page visit history is accomplished by the use of trackers |
| 36 | +(sometimes called beacons or pixels). |
| 37 | +For example, if a site uses a tracker from an ad network and a user visits that site, |
| 38 | +the site can now target future advertising to that user -- a known past visitor -- |
| 39 | +with that network. This is called *retargeting*. |
| 40 | + |
| 41 | +Other ad predictions are made by grouping similar users |
| 42 | +together based on user data using machine learning. |
| 43 | +Frequently this involves an advertiser uploading personal data on users |
| 44 | +(often past customers of the advertiser) |
| 45 | +to an ad network and telling the network to target similar users. |
| 46 | +The idea is that two users with similar demographic information |
| 47 | +and similar interests would like the same products. |
| 48 | +In ad tech, this is known as *lookalike audiences* or *similar audiences*. |
| 49 | + |
| 50 | +Understandably, many people have concerns about these targeting techniques. |
| 51 | +The modern advertising industry has built enormous value by centralizing |
| 52 | +massive amounts of data on as many people as possible. |
| 53 | + |
| 54 | + |
| 55 | +Our targeting details |
| 56 | +--------------------- |
| 57 | + |
| 58 | +**Read the Docs doesn't use the above techniques**. |
| 59 | +Instead, we target based solely upon: |
| 60 | + |
| 61 | +* Details of the page where the advertisement is shown including: |
| 62 | + |
| 63 | + * The name, keywords, or programming language associated with the project being viewed |
| 64 | + * Content of the page (eg. H1, title, theme, etc.) |
| 65 | + * Whether the page is being viewed from a mobile device |
| 66 | + |
| 67 | +* General geography |
| 68 | + |
| 69 | + * We allow advertisers to target ads to a list of countries or to exclude |
| 70 | + countries from their advertising. |
| 71 | + * We geolocate a user's IP address to a country when a request is made. |
| 72 | + |
| 73 | +Read the Docs uses GeoLite2 data created by `MaxMind <http://maxmind.com>`_. |
| 74 | + |
| 75 | +.. note:: |
| 76 | + |
| 77 | + We are considering expanding geographic targeting in the USA and Canada. |
| 78 | + Because the USA and Canada are so large, we are considering allowing ads to be |
| 79 | + targeted to a state or province or to a major metro area (DMA). |
| 80 | + This document will be updated if that happens. |
| 81 | + |
| 82 | + |
| 83 | +.. _advertising-analytics: |
| 84 | + |
| 85 | +Analytics |
| 86 | +--------- |
| 87 | + |
| 88 | +Analytics are a sensitive enough issue that they require their own section. |
| 89 | +In the spirit of full transparency, Read the Docs currently uses Google Analytics (GA). |
| 90 | + |
| 91 | +GA is a contentious issue inside Read the Docs and in our community. |
| 92 | +Some users are very sensitive and privacy conscious to usage of GA. |
| 93 | +Some authors want their own analytics on their docs to see the usage their docs get. |
| 94 | +The developers at Read the Docs understand that different users have different priorities |
| 95 | +and we try to respect the different viewpoints as much as possible while also accomplishing |
| 96 | +our own goals. |
| 97 | + |
| 98 | +Advertisers ask us questions that are easily answered with an analytics solution like |
| 99 | +"how many users do you have in Switzerland browsing Python docs?". We need to be able |
| 100 | +to easily get this data. We also use data from GA for some development decisions such |
| 101 | +as what browsers to support (or not) or how much usage a particular page or feature gets. |
| 102 | + |
| 103 | +We have taken steps to address some of the privacy concerns. |
| 104 | +Read the Docs instructs Google to anonymize IPs sent to them before they are stored. |
| 105 | + |
| 106 | +Alternatives |
| 107 | +~~~~~~~~~~~~ |
| 108 | + |
| 109 | +We are always exploring our options with respect to analytics. |
| 110 | +There are alternatives but none of them are without downsides. |
| 111 | +Some alternatives are: |
| 112 | + |
| 113 | +* Run a different cloud analytics solution from a provider other than Google |
| 114 | + (eg. Parse.ly, Matomo Cloud, Adobe Analytics). |
| 115 | + We priced a couple of these out based on our load and they are very expensive. |
| 116 | + They also just substitute one problem of data sharing with another. |
| 117 | +* Send data to GA (or another cloud analytics provider) on the server side and |
| 118 | + strip or anonymize personal data such as IPs before sending them. |
| 119 | + This would be a complex solution and involve additional infrastructure, |
| 120 | + but it would have many advantages. It would result in a loss of data on |
| 121 | + "sessions" and new vs. returning visitors which are of limited value to us. |
| 122 | +* Run a local JavaScript based analytics solution (eg. Matomo community). |
| 123 | + This involves additional infrastructure that needs to be always up. |
| 124 | + Frequently there are very large databases associated with this. |
| 125 | + Many of these solutions aren't built to handle Read the Docs' load. |
| 126 | +* Run a local analytics solution based on web server log parsing. |
| 127 | + This has the same infrastructure problems as above while also |
| 128 | + not capturing all the data we want (without additional engineering) like the |
| 129 | + programming language of the docs being shown or |
| 130 | + whether the docs are built with Sphinx or something else. |
0 commit comments