Juridisch
Privacybeleid
Privacybeleid
Wie we zijn
Viewpoint wordt gebouwd en beheerd door Marcos Barbero, gevestigd in Nederland, die de verwerkingsverantwoordelijke is voor jouw persoonsgegevens.
Contact voor elke privacyvraag, elk verzoek of elke klacht: [email protected].
De korte versie
Op het Offline-abonnement slaan we, als je niet inlogt, niets over je op onze servers op. Je spots, foto’s en notities blijven buiten onze handen, je abonnement wordt volledig afgehandeld door de store waar je het hebt gekocht (Apple op iPhone en iPad, Google Play op Android), en je kunt als gast vastleggen, bladeren en plannen — wij zien daar niets van.
„Wij zien het nooit” is niet hetzelfde als „het verlaat je telefoon nooit”, en dat verschil moet je meteen kennen. Op het Offline-abonnement wordt je bibliotheek gekopieerd naar je eigen cloudaccount — door het platform, niet door ons: via je eigen iCloud op iPhone en iPad (zo synchroniseert het Offline-abonnement je spots en foto’s tussen je apparaten), en via Android’s Auto Backup naar je eigen Google Drive op Android. In beide gevallen staat de kopie onder jouw account, in jouw opslag en onder jouw controle; wij hebben er geen toegang toe. Bij Android komt daar nog iets bij dat van het platform is en niet van ons: Google’s eigen diensten registreren elke Android-installatie bij de eerste start, nog vóór je inlogt en ongeacht of je ooit meldingen aanzet. De details staan in Wat we over je opslaan en in Providers en subverwerkers.
Het Online-abonnement (serverondersteunde synchronisatie, live weer- en conditiemeldingen, back-up en delen) vereist een Viewpoint-account, dus inloggen hoort bij het starten ervan; voor het Offline-abonnement is dat nooit nodig.
Zodra je inlogt, verzamelt Viewpoint alleen wat nodig is om die taak te vervullen (je account, je spots, je foto’s, je abonnementsstatus) en niets meer. Analytics is opt-in en gaat alleen over gedrag — het bevat nooit je foto’s, GPS-coördinaten, spotnamen of iets anders wat je hebt getypt, al bereikt het wél Mixpanel samen met je IP-adres, zodat events aan een land kunnen worden toegeschreven (zie Analytics). We verkopen geen gegevens en we tonen je geen advertenties. We delen wel met de platformdiensten die je apparaat al gebruikt — die van Apple op iPhone en iPad, die van Google op Android (inloggen, betalingen, push, kaarten en locatie) — en met de hieronder genoemde providers, waarvan een klein aantal buiten de EU zit.
Wat we over je opslaan
Alleen als je inlogt. Alles in deze sectie geldt zodra je een account aanmaakt door in te loggen. Als gast (niet ingelogd) bereikt niets hiervan ons: er is geen account, en je spots, foto’s, kaarten, plannen en volgitems bestaan alleen in de lokale database van de app op je telefoon.
Twee kanttekeningen, en geen van beide is van ons.
Op iPhone en iPad houdt het Offline-abonnement je apparaten via je eigen iCloud synchroon: de app schrijft je spots, kaarten, plannen, volgitems en de vastgelegde fotobestanden naar de private CloudKit-database van jouw Apple-account. Het is jouw iCloud-opslag en jouw gegevens; wij kunnen ze niet lezen, en er is geen Viewpoint-server bij betrokken. Fotobestanden worden alleen via wifi geüpload. Zet het uit door de app in iOS-instellingen → je naam → iCloud bij iCloud af te melden.
Op Android staat Android’s eigen Auto Backup voor de app aan, dus het besturingssysteem kan de lokale gegevens van de app — inclusief die database en de foto’s die daarin staan — kopiëren naar jouw Google Drive-back-up, onder de opslag en de controle van je eigen Google-account. Wij zien dat nooit. Zet het uit via Android-instellingen → Google → Back-up, of per app in de back-upinstellingen van je apparaat.
Weeropvragingen werken ook als gast — ze sturen alleen de breedte- en lengtegraad van de locatie die je controleert, nooit een identiteit (zie Providers en subverwerkers → Open-Meteo) — en je abonnement wordt rechtstreeks bij de store geverifieerd (Apple of Google Play), dus dat zien wij ook niet.
- Je account — e-mailadres, een weergavenaam, en de niet-herleidbare identifier die door Sign in with Apple of Sign in with Google wordt teruggegeven als je op die manier inlogt. De weergavenaam is wat Apple of Google ons bij je eerste aanmelding meegeeft — bij Sign in with Apple is dat de naam die je op het toestemmingsscherm koos te delen, en als je niets deelde, leiden we er in plaats daarvan een af van je e-mailadres. We vragen je nooit naar je echte naam.
-
Je spots, foto’s, kaarten, plannen en volgitems — de gegevens die je in de app maakt. Vastgelegde foto’s worden opgeslagen in onze eigen object storage; de rest staat in een PostgreSQL-database. Beide draaien op infrastructuur die we zelf beheren, in de EU. Elke foto die je naar onze servers uploadt, doorloopt een geautomatiseerde veiligheidscontrole op illegale en volwassen content voordat hij ergens openbaar kan verschijnen. Die controle draait op dezelfde servers als al het andere — de afbeelding wordt er nooit voor naar een derde partij gestuurd. Dit gebeurt bij elke upload, niet alleen bij foto’s die je kiest te publiceren. Zie Vertrouwen en veiligheid voor waarom deze controle bestaat.
(Een eerdere versie van dit beleid zei dat de veiligheidscontrole werd uitgevoerd door Hugging Face, een inferentieaanbieder buiten de EU, en dat foto’s daarheen werden gestuurd. Dat is niet langer waar: de controle draait nu op onze eigen hardware, en geen enkele foto die je uploadt verlaat onze infrastructuur. Hugging Face is geen ontvanger meer van wat dan ook.)
- Openbaar gedeelde spots — als je een spot expliciet publiceert, worden de locatie, naam, foto’s, compositienotities en toegangsinfo zichtbaar voor andere Viewpoint-gebruikers via het scherm met openbare spots. Private notities en accountspecifieke status (favorieten, synchronisatietijdstempels) worden nooit openbaar, ongeacht de deelstatus van de spot. Publiceren is opt-in, vraagt om een extra bevestiging (een bevestigingsscherm legt uit wat zichtbaar wordt voordat je bevestigt) en is omkeerbaar — zie Een spot openbaar delen voor de volledige werking en de waarborg voor natuurbescherming.
- Abonnementsstatus — of je in de gratis proefperiode zit of een
betaald abonnement hebt, en welk abonnement en factureringsinterval
daarbij horen (Offline of Online; maandelijks of jaarlijks). De
daadwerkelijke betaling loopt via je store — Apple’s StoreKit
op iPhone en iPad, Google Play Billing op Android — en we zien
je kaartgegevens nooit. Op beide platforms geldt: koop je terwijl
je bent ingelogd, dan wordt je Viewpoint-accountidentifier naar de
store doorgegeven zodat het abonnement aan je account gekoppeld
kan worden — aan Apple als de
appAccountTokenvan de aankoop, aan Google Play als diens versluierde account-id. Koop je als gast, dan wordt bij geen van beide stores een identifier van ons meegestuurd. De twee verschillen alleen in hoe de status van het abonnement daarna bij ons terechtkomt: op iPhone en iPad stuurt de app Apple’s ondertekende bon naar onze server; op Android meldt Google het rechtstreeks aan onze server. - Pushnotificatietoken — een niet-herleidbare identifier voor je apparaat zodat we conditiemeldingen kunnen bezorgen: Apple’s APNs-token op iPhone en iPad, een registratietoken van Firebase Cloud Messaging (Google) op Android, en — als je in de webapp browsermeldingen aanzet — een pushabonnement waarvan het adres wordt aangemaakt door de pushdienst van je eigen browser (Mozilla’s voor Firefox, Google’s voor Chrome, Apple’s voor Safari). We slaan het pas op zodra je bent ingelogd, en het wordt server-side direct ongeldig gemaakt zodra je uitlogt (het apparaat ontvangt dan meteen geen meldingen meer voor het uitgelogde account). Op Android bestaat het token al vóór we erom vragen: Google’s Firebase-bibliotheken registreren de installatie bij Google op het moment van de eerste start — zie Providers en subverwerkers → Google. Uitloggen maakt onze kopie ongeldig; alleen de app verwijderen (of de gegevens ervan wissen) verwijdert die van Google.
- Analytics-events (alleen als je analytics inschakelt) — zie de volgende sectie.
- Crashrapporten — er is op geen van beide platforms een externe
crashrapportagedienst bij betrokken; we gebruiken de eigen
rapportage van elk platform.
- Op iPhone en iPad maakt Apple’s on-device-framework MetricKit een diagnose aan (stacktrace, exception-/ signaalcodes, apparaatmodel + OS-versie, appversie). Crashes zijn voor ons zichtbaar via Apple’s standaard crashrapportage voor ontwikkelaars (App Store Connect), en er wordt ook een samenvatting naar een Viewpoint-server gestuurd zodat we snel een seintje krijgen.
- Op Android bevat de app helemaal geen crashrapportagecode. Crashes en ANR’s bereiken ons alleen via de standaardrapportage van de Google Play Console, die het besturingssysteem verzamelt; er wordt niets naar een Viewpoint-server gestuurd. Of die verzameling plaatsvindt, wordt bepaald door de gebruiks- en diagnosegegevensinstelling van je eigen apparaat, niet door de app.
In beide gevallen: nooit je foto’s, GPS, notities, e-mail, echte naam, of de inhoud van spots, kaarten of plannen. Dit staat standaard aan (gerechtvaardigd belang onder AVG art. 6 lid 1 sub f — weten dat de app crasht is noodzakelijk om hem voor jou werkend te houden).
Hoe locatie wordt gebruikt
Locatie wordt alleen opgevraagd en gebruikt in de context van de kaart- en vastlegfuncties, om spots te plaatsen en terug te vinden. Vrijwel overal vraagt de app het besturingssysteem om één positiebepaling op het moment dat die nodig is, en er draait niets wanneer de app gesloten is.
Eén functie is de uitzondering, en die bestaat alleen op iPhone en iPad. Observaties voorstellen wanneer ik reis (Instellingen → Reizen) merkt op wanneer je ergens nieuw bent aangekomen en biedt aan daar een volgitem in te stellen. Daarvoor heeft de functie iOS’s locatietoestemming „Altijd” nodig, en iOS geeft die alleen als je akkoord gaat met een dialoogvenster dat het systeem je met naam toont. Tot je dat doet, draait er niets op de achtergrond; geef je toestemming, dan wekt iOS de app bij een significante locatiewijziging, bepaalt de app of je ergens bent aangekomen dat het waard is om voor te stellen, en dat is alles — de positie wordt op je apparaat gebruikt en in de hieronder beschreven reverse-geocoding-opvraging, en wordt nooit naar ons verstuurd. Zet de instelling uit, of trek „Altijd” in via iOS-instellingen → Privacy → Locatievoorzieningen, en het volgen stopt. Android heeft helemaal geen achtergrondlocatiefunctie en vraagt geen achtergrondlocatietoestemming.
De kaart zelf is van jouw platform, en dat platform ziet hem. Viewpoint tekent geen eigen kaarttegels, dus het verschuiven van de kaart, het openen van beelden op straatniveau, het zoeken naar een plek op naam, het omzetten van een coördinaat naar een plaatsnaam, of het bepalen van een positie zijn allemaal verzoeken aan de kaart- en locatiediensten van jouw platform:
- Op iPhone en iPad is dat Apple — MapKit voor de tegels, Look Around voor beelden op straatniveau, Core Location voor de positiebepaling, MapKit’s plaatszoekfunctie voor getypte zoekopdrachten, en MapKit’s geocoder voor het omzetten van een coördinaat naar een plaatsnaam.
- Op Android is dat Google — de Google Maps SDK voor de tegels, het Street View-panorama voor beelden op straatniveau, Android’s systeem-geocoder voor beide richtingen van plaatszoeken, en de fused location provider van Google Play-services voor de positiebepaling, die naast GPS ook nabije wifi- en telefoonmastsignalen gebruikt.
- In de webapp is dat Google — de Google Maps JavaScript API voor de tegels, Places Autocomplete voor getypte zoekopdrachten, Street View voor beelden op straatniveau, en de Static Maps API voor de kleine kaartafbeeldingen op een spotpagina en op een gedeelde plankaart.
Het opzoeken van plaatsen werkt in beide richtingen, en die sturen verschillende dingen:
- Zoeken op naam stuurt de tekst die je typt. Elke toetsaanslag in een plaatszoekveld gaat terwijl je typt naar Apple (op iPhone en iPad) of Google (op Android en op het web), samen met een globale kaartregio zodat de resultaten in de buurt liggen.
- Reverse geocoding stuurt een coördinaat. Om een spot van een plaatsnaam te voorzien, of om te bepalen in welke tijdzone een spot ligt, stuurt de app de coördinaat naar de geocoder van het platform en krijgt een naam terug. Op iPhone en iPad gebeurt dit voor spots die nog geen label hebben, op de achtergrond, in batches — dus over de levensduur van je bibliotheek worden de coördinaten van de spots die je hebt opgeslagen naar Apple’s geocoder gestuurd. Op Android gebeurt dit op precies één plek, namelijk bij de deelbare plankaart, en de coördinaat wordt voor het versturen bewust onscherp gemaakt — afgerond op een raster van 0,05°, ruwweg 5,5 km, zodat wat het apparaat verlaat de buurt is en niet het uitzichtpunt.
In alle gevallen gaan de coördinaten en de zoektekst naar het platform, niet via onze servers, en worden ze afgehandeld onder het eigen privacybeleid van dat platform. We sturen je accountidentiteit daar nooit bij mee.
Ook onze eigen servers sturen coördinaten door. Sommige functies worden beantwoord door een derde partij naar een plek te vragen, altijd met een coördinaat of een gebied en nooit met iets dat jou identificeert: weer van Open-Meteo, kaart- en bezienswaardigheidsgegevens van de Overpass-dienst van OpenStreetMap, Wikidata en Wikimedia Commons, een voorbeeldafbeelding op straatniveau van Google, terreinhoogtekaarten uit een open-data-bucket van Amazon Web Services (een tegel beslaat ongeveer een vierkant van 10 km, dus AWS ziet de tegel, niet je positie), en — alleen voor de assisted-modus van Find your viewpoint — het onderwerp waar je omheen plant, inclusief de coördinaat ervan, naar OpenAI. Elk daarvan wordt genoemd bij Providers en subverwerkers.
Analytics — opt-in
Analytics staat standaard UIT. Zet het aan via Instellingen → Privacy → Gebruiksanalyses delen. Als het aan staat:
- sturen we gedragsevents door (bijvoorbeeld “gebruiker bekeek het
tabblad Verkennen”, “gebruiker legde een spot vast”, “proefperiode
omgezet naar betaald”) naar Mixpanel via een ingest-endpoint in de
EU (
api-eu.mixpanel.com); - bevat elk event je gebruikers-UUID (dezelfde als in onze database) en een vaste set toegestane eigenschappen — gesloten enums of booleans, nooit vrije tekst uit je spots, kaarten of foto’s;
- wordt je IP-adres met elk event meegestuurd, zodat Mixpanel het aan een land en stad kan toeschrijven in plaats van aan de locatie van onze server. Dat is grove, uit het netwerk afgeleide locatie — niet je GPS-positie, die nooit wordt verstuurd. Wil je liever niet dat het wordt verstuurd, laat analytics dan uit staan;
- worden daarbuiten naam, e-mail, GPS-coördinaten, EXIF, de namen van je spots/kaarten/plannen en alles wat je hebt getypt nooit in analytics opgenomen. Het backend dwingt dit af met een gesloten allow-list op het event-ingest-pad; events die niet-toegestane eigenschappen proberen mee te sturen worden aan de rand geweigerd;
- kun je analytics op elk moment uitzetten. De pijplijn stopt direct. Als je je account verwijdert, wordt ook een verwijderverzoek naar Mixpanel in de wachtrij gezet dat je historische events wist.
Volledige uitsplitsing: Hoe gebruiksanalyses werken.
Providers en subverwerkers
Viewpoint draait op de volgende providers. Geen van hen heeft toegang tot je onversleutelde account of gegevens buiten wat hun dienst vereist. Met welke van hen jouw exemplaar van de app praat, hangt af van het platform waarop je zit, dus elk onderdeel benoemt dat expliciet.
De meeste hiervan zitten binnen de EU of zijn de diensten van je eigen platform. Twee zijn dat niet, en dat zijn de onderdelen die het waard zijn om aandachtig te lezen: OpenAI ontvangt wat je typt in Find your viewpoint en de coördinaat van het onderwerp waar je omheen plant, en Mixpanel ontvangt je IP-adres bij elk analytics-event als je daarvoor hebt gekozen.
Geen enkele provider in deze lijst ontvangt je foto’s. De geautomatiseerde veiligheidscontrole die elke geüploade afbeelding leest, draait op onze eigen servers.
Onze eigen infrastructuur (beide platforms)
- Zelfgehoste infrastructuur — de API-server, de PostgreSQL-database, de object storage die je vastgelegde foto’s bevat en de geautomatiseerde veiligheidscontrole die elke geüploade afbeelding leest draaien allemaal op infrastructuur die we zelf beheren, gevestigd in de EU. Geen enkele externe cloudhost bewaart je accountgegevens of foto’s, en je foto’s worden nooit buiten die infrastructuur gestuurd.
- Cloudflare — verzorgt de beveiligde netwerktunnel en de DNS die verkeer naar het backend leiden (TLS eindigt hier tijdens transport; Cloudflare bewaart je accountgegevens of foto’s niet).
Apple — iPhone en iPad, plus aanmelden op het web
- Sign in with Apple — op iPhone, iPad en in de webapp, en alleen als je die inlogmethode kiest. Op het web wordt hiervoor Apple’s aanmeldscript in de pagina geladen.
- StoreKit — betalingen en abonnementsbeheer. Apple, niet wij, int het geld en bewaart de betaalgegevens.
- APNs — pushbezorging voor conditiemeldingen. Wordt pas geregistreerd nadat je bent ingelogd en meldingstoestemming hebt gegeven; wijs je dat af, dan wordt er geen pushidentifier aangemaakt.
- App Store Connect + MetricKit — crash- en hangdiagnostiek.
- MapKit, Look Around, Core Location — kaarttegels, beelden op straatniveau, plaatszoeken, reverse geocoding en positiebepalingen (zie Hoe locatie wordt gebruikt).
- iCloud (CloudKit) — alleen op het Offline-abonnement, en het is je eigen iCloud. De app spiegelt je spots, kaarten, plannen, volgitems en vastgelegde foto’s naar de private database van jouw Apple-account, zodat je apparaten zonder Viewpoint-account synchroon blijven. Dit is de grootste hoeveelheid van je inhoud die het apparaat verlaat op het Offline-abonnement — en die gaat naar jouw opslag, niet naar de onze. Wij hebben er geen toegang toe, en er is geen Viewpoint-server bij betrokken. Fotobestanden worden alleen via wifi geüpload.
- SKAdNetwork — Apple’s privacyvriendelijke installatie-attributie. Bij de eerste start van de app, en opnieuw als je een abonnement start, stuurt iOS een geaggregeerde, anonieme postback naar het advertentienetwerk dat je de advertentie liet zien — zie Meta hieronder. Er is geen advertentie-identifier (geen IDFA), geen toestemmingsvraag voor tracking, en geen advertentie-SDK in de app; Apple is de afzender en meldt het netwerk alleen dat een installatie of abonnement heeft plaatsgevonden, nooit dat jij dat was.
Google — grotendeels alleen Android, twee onderdelen op beide
- Sign in with Google — op iPhone, iPad, Android en de webapp, en alleen als je die inlogmethode kiest. Op het web wordt hiervoor Google’s aanmeldscript in de pagina geladen.
- Street View Static-beelden — op alle platforms, inclusief iPhone en iPad. Heeft een spot geen eigen foto, dan halen we er een voorbeeld op straatniveau bij, en dat verzoek gaat naar Google met de coördinaten van de spot erin. Het wordt gedaan door ons backend, niet door je telefoon, dus Google ziet de coördinaten en het verzoek van onze server — nooit je account, en nooit het adres van je apparaat. Hetzelfde geldt voor de voorbeeldafbeelding op straatniveau in de webapp.
- Statische kaartafbeeldingen — de webapp is anders, en dat is de moeite waard om te weten. Het kleine kaartplaatje op een gedeelde plankaart in de webapp wordt door je browser rechtstreeks bij Google geladen, niet via ons doorgestuurd, en de coördinaat staat in het adres van de afbeelding. Voor dit ene beeld ziet Google dus, anders dan bij de voorbeeldafbeelding hierboven, de coördinaat samen met je IP-adres en je browser. Hetzelfde geldt voor de interactieve kaarten die de webapp tekent: die zijn van Google en draaien in je browser. De iPhone-, iPad- en Android-apps tekenen in plaats daarvan hun eigen kaarten.
- Firebase Cloud Messaging + Firebase Installations — alleen Android, en dit onderdeel is niet voorwaardelijk. Google’s Firebase-bibliotheken starten samen met de app en registreren de installatie bij Google op het moment van de eerste start — nog vóór enige aanmelding, vóór de onboardingschermen, en ongeacht of je ooit meldingen toestaat. Google ontvangt een installatie-identifier voor de app op je apparaat, plus de gebruikelijke technische details van zo’n verzoek (app- en bibliotheekversie, apparaatmodel, OS-versie, IP-adres). Het bevat niet je account, je e-mailadres, je spots of je locatie. Wij slaan alleen het resulterende token op, en pas zodra je bent ingelogd; bij uitloggen maken we onze kopie ongeldig, maar Google’s registratie blijft bestaan totdat je de app verwijdert of de gegevens ervan wist.
- Google Play Billing — alleen Android. Betalingen en abonnementsbeheer op Android zijn van Google, niet van Apple. Ben je ingelogd op het moment van aankoop, dan wordt je Viewpoint-accountidentifier bij de aankoop naar Google Play doorgegeven zodat het abonnement aan je account gekoppeld kan worden, en meldt Google de status van het abonnement aan onze server. Koop je als gast, dan wordt er geen identifier van ons meegestuurd.
- Google Maps SDK, Street View, Android’s geocoder en de fused location provider van Google Play-services — alleen Android. Kaarttegels, beelden op straatniveau, plaatszoeken (de tekst die je typt), reverse geocoding van een bewust onscherp gemaakte coördinaat, en positiebepalingen gaan naar Google. Zie Hoe locatie wordt gebruikt.
- Google Maps JavaScript API, Places Autocomplete, Street View en Static Maps — alleen webapp. De browser laadt deze rechtstreeks bij Google, dus Google ziet je IP-adres samen met de kaartregio, de coördinaat, of de tekst die je typte. Zie Hoe locatie wordt gebruikt.
- Google Fonts — de webapp en onze website; niet de telefoon-apps. Onze twee lettertypen worden geladen vanaf Google’s font-CDN in plaats van door ons geleverd, dus Google ziet het verzoek — je IP-adres, je browser, en de pagina waar je vandaan komt. Dat gebeurt op elke pagina van de webapp, op elke pagina van getviewpoint.app inclusief deze, en opnieuw in het assistentiepaneel wanneer je dat opent. Let op de timing: anders dan bij de analytics hierboven staat het lettertypeverzoek niet achter de cookiebanner — het wordt verstuurd zodra de pagina laadt, of je vervolgens accepteert of weigert. Er zijn geen accountgegevens bij betrokken en er wordt niets opgeslagen; het is een hostingkeuze en geen trackingkeuze, en de lettertypebestanden zelf hosten zou het wegnemen.
- Google Play Console — alleen Android. Crashes en ANR’s op Android bereiken ons via Play’s standaard, door het besturingssysteem verzamelde rapportage; de app zelf bevat geen crashrapportagecode.
- Google Play Developer API — alleen Android, server-side. Om te bevestigen dat een abonnement echt is, stuurt onze server het aankooptoken terug naar Google ter verificatie.
- Op geen enkel platform gebruikt: Google Analytics / Firebase Analytics, Google-advertenties, Google’s advertentie-identifier en Google’s attributie-SDK’s. De Android-app verscheept bewust alleen Firebase messaging.
Meta — alleen iPhone en iPad, en alleen geaggregeerd
- We adverteren voor Viewpoint op Instagram en Facebook, en moeten dus weten of die advertenties werken. Op iPhone en iPad loopt die meting volledig via Apple’s SKAdNetwork: bij de eerste start van de app, en opnieuw als je een abonnement start, stuurt Apple — niet de app — Meta een anonieme, geaggregeerde postback die aangeeft dat er een installatie of een abonnement heeft plaatsgevonden. Er is geen Meta-SDK in de app, geen advertentie-identifier, geen toestemmingsvraag voor tracking, en niets dat het event koppelt aan jou, je apparaat of je account. Apple vertraagt en vergroft deze postbacks bewust, zodat ze niet tot een individu te herleiden zijn. Op Android en op het web gebeurt niets vergelijkbaars.
Alle anderen (beide platforms)
- Mixpanel — analytics (alleen als je daarvoor kiest; endpoint in de EU). In de apps — iPhone, iPad, Android en de webapp — zit er geen Mixpanel-SDK op je apparaat: events gaan eerst naar onze eigen server en wij sturen ze door. Elk doorgestuurd event bevat je gebruikers-UUID en je IP-adres, dat Mixpanel omzet naar een geschat land en stad. Verder gaat er niets identificerends mee — zie Analytics. Onze website is de uitzondering, en daar werkt het andersom. getviewpoint.app laadt wel degelijk Mixpanel’s eigen script in je browser — maar pas nadat je de cookiebanner accepteert, en het is zo geconfigureerd dat het Mixpanel opdraagt je IP-adres niet te registreren. Weiger je de banner, dan wordt het script helemaal nooit geladen.
- Open-Meteo — weersvoorspellingen. Verzoeken lopen via ons backend; je accountidentiteit wordt nooit naar Open-Meteo gestuurd, alleen de breedte- en lengtegraad van de locatie die je controleert.
-
OpenAI — wordt vanuit twee plekken bereikt, altijd via ons backend en nooit vanaf je apparaat.
1. De assisted-modus van Find your viewpoint. Daar vinden twee aanroepen plaats, en ze sturen verschillende dingen. Het lezen van je aanvraag stuurt de woorden die je typt (tot 2.000 tekens), die OpenAI omzet in een gestructureerde zoekopdracht — welk oriëntatiepunt, welk hemellichaam, welk tijdvenster. Het voorstellen van uitzichtpunten stuurt vervolgens het onderwerp waar je omheen plant: de naam en de coördinaat ervan (tot op ongeveer een meter nauwkeurig), plus de uitlijning en het tijdvenster waar je om vroeg, zodat het model plekken kan voorstellen om vanaf te fotograferen. Ben je met de functie gestart vanuit een van je eigen spots, dan is die spot het onderwerp — dan gaan de naam, die jij schreef, en de locatie ervan mee met het verzoek. Je accountidentiteit wordt niet verstuurd, en geen van je andere spots. De deterministische modus van dezelfde functie doet helemaal geen aanroep.
2. De assistent op onze website. Elke pagina van getviewpoint.app — ook deze — heeft een kleine chatknop, de Viewpoint Assistant. Wat je erin typt, wordt via ons backend naar OpenAI gestuurd, zowel om de relevante documentatie te vinden als om het antwoord te schrijven. Typ je er niets in, dan wordt er niets verstuurd. De assistent heeft geen idee wie je bent; hij is niet gekoppeld aan je account, en hij is beschikbaar voor iedereen die de site leest.
(Een eerdere versie van dit beleid zei dat coördinaten en opgeslagen spots nooit naar OpenAI werden gestuurd, en dat OpenAI alleen vanuit Find your viewpoint werd bereikt. Beide waren onjuist, en dit onderdeel corrigeert ze.)
- Wikimedia (Commons, Wikidata) en de Overpass-dienst van OpenStreetMap — worden gebruikt om een bestaande openbare foto en plaatsnaam te vinden voor een spot die zelf nog geen van beide heeft, en om tijdens het plannen bezienswaardigheden en wettelijke toegangsgrenzen op te zoeken. Wordt door ons backend aangeroepen met de coördinaten van de spot, of een gebied eromheen; er wordt geen accountidentiteit meegestuurd.
- Amazon Web Services — terreinhoogtekaarten uit een openbare open-data-bucket, gebruikt om te bepalen hoe de horizon en skyline er vanaf een spot uitzien. Ons backend vraagt de tegel op die de coördinaat dekt; een tegel beslaat ongeveer een vierkant van 10 km, dus AWS ziet de tegel, niet je positie. Er wordt geen accountidentiteit meegestuurd.
- Esri (ArcGIS) en het Europees Milieuagentschap — grenzen van beschermde gebieden, gebruikt om je te waarschuwen wanneer een uitzichtpunt binnen een natuurreservaat of nationaal park valt. Ons backend stuurt een begrenzend kader rond het gebied dat je bekijkt; er wordt geen accountidentiteit meegestuurd. Deze feeds zijn optioneel en staan uit tenzij ze zijn geconfigureerd; staan ze uit, dan bereikt geen van beide een verzoek.
- De pushdienst van je browser — alleen webapp, en alleen als je browsermeldingen aanzet. Het adres dat je browser ons geeft, hoort bij de maker van je browser (Mozilla voor Firefox, Google voor Chrome en Edge, Apple voor Safari), en die dienst bezorgt de melding bij jou. Die dienst kan zien dat er een melding naar je browserinstantie is gestuurd, en wanneer — de inhoud is versleuteld met een sleutel die alleen jouw browser heeft, zodat de dienst de melding niet kan lezen.
- Slack — een privékanaal dat Marcos leest. Twee dingen komen daar terecht. Supportberichten: schrijf je vanuit Instellingen (Praat met Marcos op iPhone en iPad, Support een bericht sturen op Android, en hetzelfde op de webapp), dan komt je bericht daar terecht met je account-UUID, je abonnement, en je appversie en apparaatmodel — plus je e-mailadres alleen als je het opt-in-vakje aanvinkt, dat standaard uit staat en gelabeld is met het adres dat het zou versturen. Serverfoutmeldingen: gaat er aan onze kant iets mis, dan wordt de foutregel ook daar geplaatst, zodat een storing wordt opgemerkt in plaats van in een log te blijven staan. Die meldingen bevatten de technische fout en waar in de code die is opgetreden — en, op iPhone en iPad, een samenvatting van een crash die je apparaat heeft gemeld. Ze bevatten niet je foto’s, je coördinaten, je notities of je e-mailadres.
Wat we niet doen
- Geen advertenties in Viewpoint — geen banners, geen interstitials, geen advertentie-SDK in een van de apps. (We kopen wel elders advertenties om mensen te vertellen dat de app bestaat, en op iPhone en iPad stuurt Apple het advertentienetwerk een anoniem, geaggregeerd resultaat — zie Meta.)
- Geen cross-app-tracking — geen advertentie-identifier op een van beide platforms, geen toestemmingsvraag voor tracking omdat er niets te vragen valt, geen fingerprinting.
- Geen gegevensverkoop — je gegevens zijn geen inkomstenbron en zullen dat ook nooit worden.
- Geen crash- of analytics-SDK van derden in de apps — op iPhone, iPad, Android en de webapp is de enige analytics de onze, opt-in, en doorgestuurd vanaf onze eigen server. (Onze website is een aparte zaak: die laadt Mixpanel’s script in je browser zodra je de cookiebanner accepteert. Zie Mixpanel onder Providers en subverwerkers.)
Je rechten (AVG — inclusief artikel 17, Apple-richtlijn 5.1.1(v), en Google Play’s beleid voor gebruikersgegevens)
Viewpoint wordt in de EU gelanceerd; de Algemene Verordening Gegevensbescherming (AVG) van de EU is van toepassing.
- Recht op wissing (artikel 17). De instellingen van elk platform hebben een actie Account verwijderen — op iPhone, iPad en Android allemaal. Die uitvoeren verwijdert permanent je profiel van onze servers en elk record dat daarvan afhangt — spots, foto’s, kaarten, plannen, routes, volgitems, apparaattokens, sessies, abonnementen en aankopen. Vastgelegde foto’s in onze object storage worden binnen enkele minuten opgeschoond door een achtergrondtaak. Mixpanel-events worden via Mixpanels GDPR-wisendpoint in de wachtrij gezet voor verwijdering. De bibliotheek die al op je eigen apparaat staat, wordt bewust ongemoeid gelaten, net als bij uitloggen, zodat het verwijderen van het account je vastleggingen niet meeneemt. Je hebt de app niet nodig om dit te doen — zie Je account verwijderen voor de webroute, de volledige lijst van wat er wordt gewist, en wat er bewaard blijft en voor hoelang.
- Inzage en overdraagbaarheid. Self-service-export is nog niet gebouwd. Mail naar [email protected] en we sturen je een JSON-export van alles wat aan je account is gekoppeld.
- Toestemming intrekken. Voor analytics zet je Instellingen → Privacy → Gebruiksanalyses delen om. De wijziging werkt direct — het volgende event dat je telefoon anders had verstuurd, is het eerste dat wordt onderdrukt. Zie Hoe gebruiksanalyses werken voor het volledige beeld.
- Bezwaar, rectificatie, beperking. Mail naar [email protected] voor elk AVG-verzoek dat niet wordt afgedekt door de bovenstaande in-app-oppervlakken. We reageren binnen 30 dagen.
- Je abonnement opzeggen doe je via de store die je factureert, met de eigen instructies daarvan: Apple of Google Play. Opzeggen staat los van accountverwijdering — zeg je op zonder je account te verwijderen, dan blijven je gegevens bestaan; verwijder je je account zonder op te zeggen, dan loopt de facturering door totdat je opzegt bij de store, omdat alleen de store de facturering kan stopzetten.
Wijzigingen in dit beleid
Als we dit beleid wijzigen op een manier die jou raakt, laat de datum Laatst bijgewerkt bovenaan deze pagina zien wanneer dat is gebeurd. Materiële wijzigingen (nieuwe subverwerkers, bredere gegevensverzameling, wijziging van de exploiterende entiteit) worden in de app en via het e-mailadres dat aan je account is gekoppeld aangekondigd voordat ze ingaan.
Contact
Voor elke privacyvraag, elk verzoek of elke klacht: [email protected].