ad2app-lib 1.22.0 → 1.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,273 @@
1
+ import type { LegalSection } from './types';
2
+
3
+ /**
4
+ * Polish version of the Privacy Policy.
5
+ *
6
+ * Structural parity with `PRIVACY_SECTIONS` (./privacy.ts) is load-bearing: the
7
+ * same section ids in the same order, the same block kinds, and the same number
8
+ * of list items and table rows. A document-level parity test asserts the ids,
9
+ * so a drifting translation fails the build rather than silently serving a
10
+ * shorter policy to Polish consumers.
11
+ *
12
+ * Inline markup ({EMAIL}, `code`, **bold**) and proper nouns are carried over
13
+ * verbatim. Legal instruments use their Polish official names (RODO, UODO).
14
+ */
15
+ export const PRIVACY_SECTIONS_PL: LegalSection[] = [
16
+ {
17
+ id: 's1',
18
+ title: '1. Administrator danych',
19
+ blocks: [
20
+ { kind: 'p', text: 'Administratorem Twoich danych osobowych jest **Ad2app sp. z o.o.** z siedzibą przy ul. Juliana Smulikowskiego 4A/21, 00-389 Warszawa, Polska, NIP: 5253042936, KRS: 0001168159 ("ad2app", "my", "nas", "nasze").' },
21
+ { kind: 'p', text: 'W każdej sprawie dotyczącej prywatności możesz skontaktować się z nami pod adresem kontakt@ad2.app.' },
22
+ { kind: 'p', text: '**Inspektor Ochrony Danych:** Oceniliśmy nasze czynności przetwarzania pod kątem kryteriów z art. 37 RODO. Nasza obecna skala przetwarzania nie osiąga progu, przy którym wyznaczenie inspektora ochrony danych jest obowiązkowe na podstawie art. 37 RODO. Wszystkie zapytania dotyczące prywatności obsługuje wyznaczony przez nas punkt kontaktowy do spraw prywatności pod adresem kontakt@ad2.app. Wyznaczymy inspektora ochrony danych, jeżeli nasze czynności przetwarzania osiągną właściwy próg, i odpowiednio zaktualizujemy niniejszą politykę.' },
23
+ ],
24
+ },
25
+ {
26
+ id: 's2',
27
+ title: '2. Zakres niniejszej polityki',
28
+ blocks: [
29
+ { kind: 'p', text: 'Niniejsza Polityka Prywatności wyjaśnia, w jaki sposób zbieramy, wykorzystujemy, przechowujemy, udostępniamy i chronimy dane osobowe, gdy uzyskujesz dostęp do platformy ad2app lub z niej korzystasz, w tym z naszej strony internetowej, aplikacji internetowej, naszej integracji MCP dla narzędzi zewnętrznych oraz wszelkich powiązanych usług (łącznie: "Usługa"). Dotyczy ona każdej osoby, która rejestruje konto, aby planować i publikować treści w mediach społecznościowych.' },
30
+ { kind: 'p', text: 'Przetwarzamy dane osobowe zgodnie z rozporządzeniem (UE) 2016/679 (RODO) oraz polską ustawą z dnia 10 maja 2018 r. o ochronie danych osobowych.' },
31
+ { kind: 'p', text: 'Realizując obowiązek rozliczalności wynikający z art. 5 ust. 2 RODO, ad2app prowadzi rejestr czynności przetwarzania (RCP) wymagany przez art. 30 RODO, udostępniany organom nadzorczym na żądanie.' },
32
+ ],
33
+ },
34
+ {
35
+ id: 's3',
36
+ title: '3. Dane osobowe, które zbieramy',
37
+ blocks: [
38
+ { kind: 'p', text: 'Zbieramy następujące kategorie danych osobowych:' },
39
+ {
40
+ kind: 'ul',
41
+ items: [
42
+ { text: '**Dane identyfikacyjne i kontaktowe:** imię, nazwisko, adres e-mail, numer telefonu (jeżeli go podasz).' },
43
+ { text: '**Dane uwierzytelniające do konta:** hasło przechowywane w postaci skrótu kryptograficznego. Sposób postępowania z danymi uwierzytelniającymi połączenia opisujemy niżej w punkcie "Tokeny OAuth i połączenia kont".' },
44
+ {
45
+ text: '**Dane z platform społecznościowych pozyskiwane przez OAuth:** gdy autoryzujesz połączenie z jedną z platform mediów społecznościowych, które wybierzesz (obecnie Instagram, TikTok, X (Twitter), YouTube, LinkedIn, Facebook, Threads, Pinterest, Reddit i Bluesky), otrzymujemy dane z API tej platformy w zakresie dopuszczonym przez Twoją zgodę OAuth. W odniesieniu do wszystkich połączonych platform obejmuje to zazwyczaj dane Twojego konta lub profilu (takie jak identyfikator użytkownika, nazwa użytkownika, nazwa wyświetlana, awatar oraz statystyki konta, o ile platforma je udostępnia), treść i materiały postów, które tworzysz, planujesz lub publikujesz za pośrednictwem Usługi, a także dane o wynikach i statystyki opublikowanych postów. Konkretny zakres otrzymywanych danych zależy od platformy i od uprawnień, które przyznasz. Dla części platform opisujemy te dane bardziej szczegółowo poniżej:',
46
+ sub: [
47
+ { text: '**TikTok:** podstawowe dane profilu (identyfikator użytkownika, nazwa wyświetlana, awatar, biogram, adres URL profilu), statystyki konta (liczba obserwujących, liczba obserwowanych, liczba polubień, liczba filmów), lista filmów wraz z metadanymi (tytuły, liczby wyświetleń, wskaźniki zaangażowania) oraz, tam gdzie funkcje planowania są włączone, uprawnienia do przesyłania i publikowania filmów. Prosimy wyłącznie o uprawnienia niezbędne do funkcji, z których aktywnie korzystasz.' },
48
+ { text: '**Instagram:** dane konta Instagram Business, w tym nazwa użytkownika, biogram, zdjęcie profilowe, typ konta oraz powiązane wskaźniki biznesowe.' },
49
+ { text: '**Facebook:** informacje z profilu publicznego oraz, jeżeli udzielisz takiego uprawnienia, Twój adres e-mail w serwisie Facebook. Facebook jest niezależnym dostawcą OAuth, odrębnym od Instagrama.' },
50
+ { text: '**YouTube:** dane kanału YouTube (tylko do odczytu: filmy, statystyki, metadane kanału) oraz profil Twojego konta Google (imię i nazwisko, adres URL zdjęcia profilowego, identyfikator konta Google) pozyskiwane przez zakres tożsamości Google wykorzystywany do uwierzytelniania.' },
51
+ { text: '**Pozostałe połączone platformy (X (Twitter), LinkedIn, Threads, Pinterest, Reddit, Bluesky):** dane konta lub profilu, treść i materiały postów, które publikujesz za pośrednictwem Usługi, oraz statystyki opublikowanych postów, w każdym przypadku w zakresie dopuszczonym przez uprawnienia OAuth przyznane przez Ciebie na danej platformie.' },
52
+ ],
53
+ },
54
+ { text: '**Tokeny OAuth i połączenia kont:** publikowanie na Twoich połączonych platformach realizuje nasz podmiot przetwarzający Zernio (zobacz sekcję 6). W przypadku platform, na których publikuje Zernio, nie przechowujemy Twoich tokenów OAuth u siebie: tokeny przechowuje Zernio w naszym imieniu, a my przechowujemy wyłącznie odniesienie do Twojego połączonego konta (nazwa platformy i nazwa użytkownika). W przypadku niewielkiej liczby platform, z których odczytujemy statystyki bezpośrednio (TikTok, Instagram, YouTube, Facebook), możemy przechowywać token dostępu u siebie. Kończymy przegląd techniczny, który ma potwierdzić i, tam gdzie to potrzebne, zapewnić szyfrowanie w spoczynku każdego tokenu przechowywanego przez nas bezpośrednio (zobacz sekcję 10).' },
55
+ { text: '**Dane o odbiorcach (wyłącznie zagregowane):** statystyki demograficzne i statystyki zaangażowania dotyczące Twoich odbiorców w mediach społecznościowych, udostępniane przez API połączonej platformy. Dane te przetwarzamy wyłącznie w zagregowanej formie statystycznej i nie są one powiązane z żadną zidentyfikowaną osobą wśród Twoich odbiorców. Oceniliśmy, czy dane te mogłyby stanowić szczególne kategorie danych osobowych w rozumieniu art. 9 RODO, i potwierdzamy, że nie przetwarzamy takich szczególnych kategorii danych: dane o odbiorcach przetwarzamy wyłącznie jako zagregowane wskaźniki liczbowe.' },
56
+ { text: '**Dane skrzynki odbiorczej:** gdy korzystasz z funkcji skrzynki odbiorczej platformy, pobierane i wyświetlane są rozmowy z wiadomości prywatnych oraz komentarze pod postami z Twoich połączonych kont w mediach społecznościowych. Obejmuje to treści przesłane Ci przez Twoich obserwujących lub inne osoby trzecie na tych platformach. Więcej informacji znajdziesz w sekcji 11.' },
57
+ { text: '**Treść postów i zaplanowane posty:** treści, które tworzysz, planujesz i publikujesz za pośrednictwem Usługi, w tym tekst postów, podpisy, hasztagi, linki, terminy publikacji oraz obrazy, filmy i inne materiały przesyłane przez Ciebie do tych postów, wraz ze statusem publikacji i metadanymi każdego postu. Jeżeli buforujemy miniaturę lub podgląd materiału na potrzeby wyświetlenia w aplikacji, przechowujemy wyłącznie wskaźnik (adres URL) do pliku hostowanego przez Zernio; nie kopiujemy samego materiału do naszej pamięci.' },
58
+ { text: '**Statystyki opublikowanych postów:** dane o wynikach i zaangażowaniu dla postów opublikowanych przez Ciebie za pośrednictwem Usługi na Twoich połączonych kontach (np. wyświetlenia, odsłony, polubienia, komentarze, udostępnienia, zasięg oraz inne statystyki), udostępniane przez API połączonej platformy.' },
59
+ { text: '**Materiały i treści:** pliki, które przesyłasz (obrazy, filmy, dokumenty) do postów lub do swojego profilu.' },
60
+ { text: '**Dane techniczne i dane o korzystaniu:** zanonimizowany adres IP, typ i wersja przeglądarki, system operacyjny, odwiedzone strony, adresy URL odsyłające, znaczniki czasu, raporty o błędach i awariach oraz zdarzenia korzystania (np. interakcje z funkcjami, takie jak kliknięcia przycisków i wyświetlenia stron, śledzone przez PostHog, zobacz sekcje 6 i 9). Śledzenie korzystania rozpoczyna się dopiero po wyrażeniu przez Ciebie zgody w banerze cookie.' },
61
+ { text: '**Dane z nagrań sesji:** za Twoją zgodą (zobacz sekcję 9) rejestrujemy nagrania Twoich interakcji z Usługą (ruch myszy, przewijanie, kliknięcia, nawigacja między stronami), aby diagnozować problemy z użytecznością i błędy. Wartości wpisywane przez Ciebie w pola formularzy są maskowane przed zapisem nagrania. Rozszerzamy to maskowanie tak, aby obejmowało również inne teksty autorstwa użytkownika wyświetlane na ekranie podczas nagrania (na przykład podpisy postów lub wiadomości ze skrzynki odbiorczej pokazywane jako tekst tylko do odczytu); do czasu zakończenia tych prac taki tekst może pojawić się w nagraniu w czytelnej postaci. Nagrania są automatycznie usuwane po 30 dniach.' },
62
+ { text: '**Dane rozliczeniowe:** Stripe, nasz operator płatności, zbiera i przechowuje Twój adres rozliczeniowy oraz dane płatnicze w momencie wykupienia subskrypcji. My sami przechowujemy wyłącznie odniesienie do Twojego rekordu klienta i rekordu subskrypcji w Stripe (nie dane karty ani adres rozliczeniowy).' },
63
+ { text: '**Preferencja dotycząca e-maili marketingowych:** informacja o tym, czy wyrażasz zgodę na e-maile marketingowe i e-maile cyklu życia konta oraz kiedy ta zgoda została udzielona (zobacz sekcję 4). Ta preferencja działa wyłącznie na zasadzie opt-in, nigdy nie jest zaznaczona za Ciebie z góry, a możesz ją wycofać w każdej chwili poprzez link rezygnacji w dowolnej takiej wiadomości lub kontaktując się z nami pod adresem {EMAIL}.' },
64
+ { text: '**Dane z opinii:** swobodny tekst opinii przesyłany przez formularz opinii w aplikacji. Może on ubocznie zawierać dane osobowe, które zdecydujesz się w nim zamieścić.' },
65
+ ],
66
+ },
67
+ { kind: 'p', text: 'Nie zbieramy świadomie danych osobowych osób poniżej 18. roku życia.' },
68
+ { kind: 'p', text: 'Informacje o tym, które pola danych są obowiązkowe, a które opcjonalne, znajdziesz w sekcji 8.' },
69
+ ],
70
+ },
71
+ {
72
+ id: 's4',
73
+ title: '4. Podstawy prawne i cele przetwarzania',
74
+ blocks: [
75
+ {
76
+ kind: 'table',
77
+ headers: ['Cel', 'Podstawa prawna (art. 6 RODO)'],
78
+ rows: [
79
+ ['Zakładanie i prowadzenie Twojego konta', 'Art. 6 ust. 1 lit. b, wykonanie umowy'],
80
+ ['Udostępnianie funkcji platformy (planowanie i publikowanie postów na Twoich połączonych kontach, statystyki postów, skrzynka odbiorcza, integracja MCP dla narzędzi, które autoryzujesz)', 'Art. 6 ust. 1 lit. b, wykonanie umowy'],
81
+ ['Przetwarzanie danych z mediów społecznościowych otrzymanych przez połączenia OAuth (dane profilu lub konta, treść i materiały publikowanych przez Ciebie postów, statystyki opublikowanych postów, wskaźniki dotyczące odbiorców, dane o zaangażowaniu, metadane filmów, wiadomości ze skrzynki odbiorczej)', 'Art. 6 ust. 1 lit. b, wykonanie umowy: niezbędne do świadczenia zakontraktowanych funkcji planowania i publikowania postów, statystyk postów oraz skrzynki odbiorczej. Dane o odbiorcach przetwarzamy wyłącznie w postaci zagregowanej i zanonimizowanej. Nie przetwarzamy szczególnych kategorii danych w rozumieniu art. 9.'],
82
+ ['Czasowe przechowywanie danych konta przez 30 dni po usunięciu konta (okno przywrócenia konta)', 'Art. 6 ust. 1 lit. f, prawnie uzasadnione interesy: wspólny interes ad2app i użytkownika w zapobieganiu nieodwracalnej, przypadkowej utracie danych, wyważony wobec minimalnego dodatkowego okresu przechowywania. Możesz zrezygnować z tego okna i zażądać natychmiastowego, trwałego usunięcia pod adresem {EMAIL}.'],
83
+ ['Obsługa płatności i wystawianie faktur (za pośrednictwem Stripe)', 'Art. 6 ust. 1 lit. b oraz art. 6 ust. 1 lit. c, umowa i obowiązek prawny'],
84
+ ['Wypełnianie obowiązków prawnych (podatki, rachunkowość, prowadzenie dokumentacji)', 'Art. 6 ust. 1 lit. c, obowiązek prawny: ustawa o rachunkowości, Ordynacja podatkowa, ustawa o VAT.'],
85
+ ['Przetwarzanie opinii przesyłanych w aplikacji', 'Art. 6 ust. 1 lit. f, prawnie uzasadnione interesy: interes ad2app w ulepszaniu Usługi na podstawie opinii użytkowników.'],
86
+ ['Ulepszanie i rozwijanie Usługi (statystyki korzystania, nagrania sesji i śledzenie błędów przez PostHog)', 'Art. 6 ust. 1 lit. a, zgoda wyrażona w banerze zgody na pliki cookie, możliwa do wycofania w każdej chwili. Przed dokonaniem przez Ciebie wyboru nie rejestrujemy żadnych zdarzeń analitycznych i nie zapisujemy żadnych analitycznych plików cookie. Uzupełniająco art. 6 ust. 1 lit. f, prawnie uzasadnione interesy, w zakresie zagregowanych, spseudonimizowanych statystyk produktowych.'],
87
+ ['Bezpieczeństwo, zapobieganie oszustwom i wykrywanie nadużyć', 'Art. 6 ust. 1 lit. f, prawnie uzasadnione interesy: interes ad2app w utrzymaniu integralności platformy i ochronie użytkowników przed szkodą, który przeważa nad minimalną uciążliwością logowania zdarzeń bezpieczeństwa.'],
88
+ ['Przekazanie danych osobowych w ramach połączenia, przejęcia lub sprzedaży aktywów przedsiębiorstwa', 'Art. 6 ust. 1 lit. f, prawnie uzasadnione interesy: prawnie uzasadniony interes ad2app w przeprowadzeniu zgodnej z prawem restrukturyzacji działalności, wyważony wobec interesów osób, których dane dotyczą. Osoby, których dane dotyczą, zostaną powiadomione, zanim ich dane zostaną objęte istotnie odmienną polityką prywatności.'],
89
+ ['Wysyłanie e-maili marketingowych i e-maili cyklu życia konta (na przykład wskazówek wdrożeniowych, informacji o nowych funkcjach i propozycji przejścia na wyższy plan)', 'Art. 6 ust. 1 lit. a, zgoda udzielana przez opcjonalny, wyraźny wybór opt-in, który nigdy nie jest zaznaczony za Ciebie z góry, możliwa do wycofania w każdej chwili poprzez link rezygnacji zamieszczony w każdej takiej wiadomości lub przez kontakt z nami pod adresem {EMAIL}. Wycofanie zgody nie wpływa na zgodność z prawem przetwarzania dokonanego wcześniej. E-maile transakcyjne (weryfikacja konta, powiadomienia o bezpieczeństwie, potwierdzenia płatności) wysyłamy na podstawie art. 6 ust. 1 lit. b i ta preferencja ich nie dotyczy.'],
90
+ ],
91
+ },
92
+ { kind: 'note', label: 'Ocena skutków dla ochrony danych (art. 35 RODO)', text: 'Oceniliśmy nasze czynności przetwarzania pod kątem kryteriów z art. 35 ust. 1 RODO i uznaliśmy, że pełna ocena skutków dla ochrony danych nie jest obecnie wymagana. Ocena ta jest udokumentowana w ramach obowiązku rozliczalności z art. 5 ust. 2 i podlega corocznemu przeglądowi, a wrócimy do niej, jeżeli charakter lub zakres naszego przetwarzania istotnie się zmieni.' },
93
+ ],
94
+ },
95
+ {
96
+ id: 's5',
97
+ title: '5. Okres przechowywania danych',
98
+ blocks: [
99
+ { kind: 'p', text: 'Przechowujemy Twoje dane osobowe tylko tak długo, jak jest to niezbędne do realizacji celów opisanych w niniejszej polityce lub jak wymagają tego obowiązujące przepisy. Okresy przechowywania odpowiadają celom przetwarzania wskazanym w sekcji 4:' },
100
+ {
101
+ kind: 'ul',
102
+ items: [
103
+ { text: '**Dane konta:** przez czas istnienia Twojego konta oraz przez 30-dniowe okno przywrócenia po jego usunięciu. W trakcie tego okna konto jest dezaktywowane, a Twoje dane (profil, zaplanowane posty, wersje robocze, ustawienia, historia statystyk) są przechowywane wyłącznie po to, aby konto można było przywrócić, jeżeli usunięcie było pomyłką. Po 30 dniach zaplanowane zadanie trwale i nieodwracalnie je usuwa. Możesz zażądać natychmiastowego, trwałego usunięcia i zrezygnować z okna przywrócenia, wyraźnie wskazując to w żądaniu wysłanym na {EMAIL}.' },
104
+ { text: '**Co następuje natychmiast i nieodwracalnie nawet w oknie przywrócenia:** w momencie usunięcia konta natychmiast rozłączamy Twoje połączone konta społecznościowe i cofamy powiązany dostęp u naszego podmiotu przetwarzającego publikacje, Zernio. Przywrócenie konta tego nie odwraca: jeżeli przywrócisz konto w ciągu 30 dni, Twoje dane w ad2app wracają, ale platformy społecznościowe musisz połączyć ponownie samodzielnie.' },
105
+ { text: '**Czego usunięcie konta nie obejmuje:** usunięcie konta ad2app nie usuwa postów już opublikowanych przez Ciebie na platformach mediów społecznościowych; te treści pozostają na tych platformach na ich warunkach i tam nimi zarządzasz lub je usuwasz. Nasze żądania usunięcia i cofnięcia dostępu kierowane do Zernio (w tym usunięcia kontenera profilu, który Zernio utrzymuje dla Twojego konta) wysyłamy natychmiast; jeżeli żądanie się nie powiedzie, ponawiamy je, więc jego wykonanie po stronie Zernio może nieznacznie opóźnić się względem Twojego usunięcia konta. Niezależnie od tego, po zakończeniu całej naszej współpracy z Zernio nasza umowa powierzenia przetwarzania danych wymaga od tego dostawcy usunięcia wszystkich pozostałych kopii w ciągu 10 dni roboczych od zaprzestania świadczenia usług, wraz z pisemnym potwierdzeniem wykonania.' },
106
+ { text: '**Treść postów, zaplanowane posty i statystyki opublikowanych postów:** przechowywane przez czas istnienia Twojego konta i usuwane razem z danymi konta (z zastrzeżeniem 30-dniowego okna przywrócenia opisanego powyżej). Zanonimizowane, zagregowane statystyki mogą być przechowywane bezterminowo.' },
107
+ { text: '**Tokeny OAuth:** w przypadku platform, dla których Zernio przechowuje Twoje tokeny w naszym imieniu, rozłączenie konta lub usunięcie konta ad2app uruchamia natychmiastowe żądanie rozłączenia i cofnięcia dostępu kierowane do Zernio (z ponawianiem w razie niepowodzenia, jak wyżej). Wszelkie tokeny przechowywane przez nas samych są usuwane natychmiast po rozłączeniu lub usunięciu konta, bez okna przywrócenia.' },
108
+ { text: '**Dane skrzynki odbiorczej (wiadomości prywatne i komentarze):** przechowywane przez czas istnienia Twojego konta; usuwane razem z danymi konta (z zastrzeżeniem 30-dniowego okna przywrócenia).' },
109
+ { text: '**Faktury i dokumentacja rozliczeniowa:** 5 lat od końca roku obrotowego (ustawa o rachunkowości).' },
110
+ { text: '**Logi techniczne:** do 90 dni.' },
111
+ { text: '**Zdarzenia analityki produktowej (PostHog):** przechowywane w postaci spseudonimizowanej na potrzeby działania naszej analityki; usuwane w ciągu 30 dni od żądania usunięcia danych lub wycofania zgody.' },
112
+ { text: '**Nagrania sesji (PostHog):** 30 dni, po czym są automatycznie usuwane.' },
113
+ { text: '**Rejestr zgód marketingowych:** przechowujemy zapis o tym, kiedy zgoda na e-maile marketingowe została udzielona lub wycofana, przez czas istnienia Twojego konta oraz przez 3 lata dłużej, jako dowód zgodności z przepisami.' },
114
+ { text: '**Opinie przesłane w aplikacji:** do 24 miesięcy od przesłania.' },
115
+ ],
116
+ },
117
+ { kind: 'p', text: 'Dane przetwarzane wyłącznie na podstawie zgody (analityczne pliki cookie, e-maile marketingowe) są usuwane lub przestają być przetwarzane w ciągu 30 dni od wycofania zgody. Dane przetwarzane w celu wykonania umowy przechowujemy przez czas trwania umowy oraz przez właściwy okres przedawnienia według prawa polskiego (co do zasady 3 lata dla roszczeń związanych z prowadzeniem działalności gospodarczej na podstawie art. 118 Kodeksu cywilnego lub 6 lat dla roszczeń stwierdzonych dokumentem). Dane przechowywane w celu wypełnienia obowiązków prawnych podlegają ustawowym terminom wskazanym powyżej.' },
118
+ ],
119
+ },
120
+ {
121
+ id: 's6',
122
+ title: '6. Udostępnianie danych osobowych',
123
+ blocks: [
124
+ { kind: 'p', text: 'Nie sprzedajemy Twoich danych osobowych. Możemy je udostępniać:' },
125
+ {
126
+ kind: 'ul',
127
+ items: [
128
+ {
129
+ text: '**Dostawcom usług (podmiotom przetwarzającym)**, którym powierzamy dane na warunkach umownych obejmujących obowiązki w zakresie ochrony danych. Podpisana umowa powierzenia przetwarzania danych (art. 28 RODO) obowiązuje z naszym podprocesorem publikacji (Zernio); dla pozostałych podprocesorów, którzy nie są jeszcze związani swoją standardową umową powierzenia zawieraną online, finalizujemy warunki na piśmie:',
130
+ sub: [
131
+ { text: '**Zernio** (podmiot umowny: ARBICHAT, S.L., działający pod nazwą „Zernio”, zernio.com), agregacja API mediów społecznościowych i publikowanie: przekazujemy do Zernio tokeny OAuth, treść postów, pliki multimedialne i dane skrzynki odbiorczej wyłącznie w celu wykonania w Twoim imieniu operacji publikowania i obsługi skrzynki odbiorczej. Dostawca ma siedzibę w Gironie w Hiszpanii (EOG); szczegóły dotyczące wykorzystywanej przez niego infrastruktury znajdziesz w polityce prywatności Zernio. Mamy z tym dostawcą podpisaną umowę powierzenia przetwarzania danych; w zakresie, w jakim Zernio przetwarza dane poza EOG, takie transfery są objęte standardowymi klauzulami umownymi (decyzja Komisji 2021/914) na podstawie tej umowy.' },
132
+ { text: '**Stripe**, obsługa płatności: adres rozliczeniowy i dane płatnicze są zbierane i przechowywane bezpośrednio przez Stripe; przekazujemy Stripe Twój adres e-mail oraz identyfikatory konta, aby założyć i obsługiwać Twoją subskrypcję. W zakresie obsługi płatności subskrypcyjnych w naszym imieniu Stripe działa jako nasz podmiot przetwarzający; w zakresie zapobiegania oszustwom, kontroli przeciwdziałania praniu pieniędzy oraz własnych obowiązków regulacyjnych Stripe działa jako niezależny administrator danych na podstawie własnej polityki prywatności. Stripe ma siedzibę w Stanach Zjednoczonych i działa w ramach Ram Ochrony Danych UE-USA (EU-US Data Privacy Framework).' },
133
+ { text: '**PostHog (PostHog, Inc.)**, analityka produktowa, nagrania sesji i śledzenie błędów: dane o zdarzeniach korzystania (interakcje z funkcjami, wyświetlenia stron, informacje o urządzeniu i przeglądarce), zamaskowane nagrania sesji oraz raporty o błędach są przetwarzane dopiero po wyrażeniu przez Ciebie wyraźnej zgody analitycznej w banerze cookie. Część danych, które wysyłamy, ma w określonych przypadkach charakter identyfikujący, a nie spseudonimizowany (na przykład śledzenie doręczenia e-maili transakcyjnych wykorzystuje wprost Twój adres e-mail, abyśmy wiedzieli, czy wiadomość do Ciebie dotarła); analizujemy obecnie, które z tych przepływów danych można spseudonimizować dalej. Nasza instancja PostHog to **PostHog Cloud EU z hostingiem we Frankfurcie w Niemczech**, dane analityczne są przechowywane i przetwarzane na terenie EOG. PostHog, Inc. jest spółką zarejestrowaną w Stanach Zjednoczonych; ewentualny szczątkowy dostęp spoza EOG jest uregulowany umową powierzenia przetwarzania danych obejmującą standardowe klauzule umowne (decyzja Komisji 2021/914).' },
134
+ { text: '**Resend**, dostarczanie e-maili transakcyjnych i produktowych: korzystamy z Resend, aby wysyłać e-maile weryfikujące konto, e-maile wdrożeniowe i e-maile cyklu życia konta oraz aby prowadzić listę użytkowników uprawnionych do ich otrzymywania. Resend otrzymuje Twój adres e-mail, a tam gdzie jest to istotne, także Twoje imię oraz treść wiadomości (która może zawierać link weryfikacyjny lub link rezygnacji). Zgodnie z warunkami powierzenia przetwarzania stosowanymi przez Resend dane osobowe przechowywane przez Resend są usuwane w ciągu 90 dni od rozwiązania naszej umowy z tym dostawcą. Resend jest spółką z siedzibą w Stanach Zjednoczonych; transfery są objęte standardowymi klauzulami umownymi (decyzja Komisji 2021/914) lub, tam gdzie ma to zastosowanie, Ramami Ochrony Danych UE-USA.' },
135
+ { text: '**Vercel Inc.**, hosting i moc obliczeniowa dla API zaplecza: kod aplikacji po stronie serwera, żądania API oraz powiązane logi żądań są przetwarzane w infrastrukturze Vercel. Vercel ma siedzibę w Stanach Zjednoczonych, a transfery są objęte standardowymi klauzulami umownymi (decyzja Komisji 2021/914).' },
136
+ { text: '**Neon, LLC (podmiot powiązany z Databricks, Inc.)**, hosting bazy danych PostgreSQL: wszystkie ustrukturyzowane dane platformy (konta, metadane połączonych kont, treść postów i metadane planowania) są przechowywane w bazie danych PostgreSQL hostowanej przez Neon, prowadzonej na podstawie umowy Databricks Master Cloud Services Agreement oraz informacji o prywatności Databricks (Databricks Privacy Notice). Neon, LLC i Databricks, Inc. są spółkami zarejestrowanymi w Stanach Zjednoczonych; to, czy zawartość bazy danych opuszcza EOG, zależy od regionu hostingu naszej instancji bazy danych, który obecnie potwierdzamy. W zakresie, w jakim dane są przetwarzane poza EOG, transfery są objęte standardowymi klauzulami umownymi (decyzja Komisji 2021/914).' },
137
+ { text: '**Google Firebase (Firebase Authentication)**, weryfikacja tokenów uwierzytelniających: tokeny uwierzytelniające wydane użytkownikom mogą być weryfikowane w Firebase Authentication w celu potwierdzenia aktywnych sesji. Firebase jest usługą Google z siedzibą w Stanach Zjednoczonych i działa w ramach Ram Ochrony Danych UE-USA.' },
138
+ { text: 'Aktualna lista podprocesorów (obejmująca nazwy, kraje przetwarzania oraz stosowane zabezpieczenia transferu) jest dostępna na żądanie pod adresem kontakt@ad2.app.' },
139
+ ],
140
+ },
141
+ { text: '**Narzędziom zewnętrznym, które autoryzujesz:** zobacz sekcję 6a. Narzędzia te są odbiorcami działającymi na Twoje polecenie, a nie naszymi podprocesorami.' },
142
+ { text: '**Organom publicznym:** gdy wymagają tego przepisy prawa, orzeczenie sądu albo ochrona praw i bezpieczeństwa ad2app lub osób trzecich.' },
143
+ { text: '**W ramach przekształceń biznesowych:** w przypadku połączenia, przejęcia lub sprzedaży aktywów dane osobowe mogą zostać przekazane na podstawie art. 6 ust. 1 lit. f, a poinformujemy Cię o tym, zanim zostaną objęte inną polityką prywatności.' },
144
+ ],
145
+ },
146
+ ],
147
+ },
148
+ {
149
+ id: 's6a',
150
+ title: '6a. Integracje zewnętrzne, które autoryzujesz (MCP)',
151
+ blocks: [
152
+ { kind: 'p', text: 'Usługa obejmuje serwer MCP (Model Context Protocol), prowadzony przez nas jako część Usługi, który pozwala Ci korzystać z ad2app z poziomu wybranego przez Ciebie zewnętrznego asystenta AI lub narzędzia (na przykład aplikacji do czatu z AI albo edytora kodu obsługującego MCP).' },
153
+ { kind: 'p', text: 'Te narzędzia są Twoje, nie nasze. Gdy podłączasz takie narzędzie, działa ono na Twoje polecenie, tak samo jak Twoja własna przeglądarka, gdy korzystasz z aplikacji bezpośrednio. Nie wybieramy tych narzędzi, nie powierzamy im przetwarzania i ich nie kontrolujemy, a one nie są naszymi podprocesorami. To, co narzędzie robi z danymi po ich pobraniu w Twoim imieniu, regulują własne warunki i praktyki prywatności tego narzędzia, z którymi należy zapoznać się przed jego podłączeniem.' },
154
+ { kind: 'subheading', text: 'Jak działa autoryzacja' },
155
+ { kind: 'p', text: 'Zanim jakikolwiek dostęp zostanie przyznany, pokazujemy Ci ekran zgody wskazujący nazwę narzędzia i zakres dostępu, o który ono wnioskuje. Nic nie jest udostępniane, dopóki tego nie zatwierdzisz. Jeżeli zatwierdzisz, nasz serwer wydaje temu narzędziu uprawnienie, które jest egzekwowane po naszej stronie: każde żądanie narzędzia jest sprawdzane pod kątem tego, co zatwierdzono, a narzędzie może działać wyłącznie w granicach tego uprawnienia. W zależności od zatwierdzonego przez Ciebie zakresu dostępu podłączone narzędzie może wyświetlać listę Twoich połączonych kont społecznościowych, tworzyć, przeglądać, aktualizować, anulować lub ponawiać zaplanowane posty, odczytywać statystyki postów i konta oraz przygotowywać przesyłanie materiałów, w każdym przypadku w Twoim imieniu i wyłącznie w obrębie Twojego konta.' },
156
+ { kind: 'subheading', text: 'Cofnięcie dostępu' },
157
+ { kind: 'p', text: 'Dostęp podłączonego narzędzia możesz cofnąć w każdej chwili, kontaktując się z nami pod adresem {EMAIL}; dodajemy również samoobsługową opcję cofnięcia dostępu w ustawieniach Twojego konta. Cofnięcie natychmiast unieważnia uprawnienie wydane temu narzędziu przez nasz serwer; narzędzie nie może wysyłać dalszych żądań. Cofnięcie nie sięga wstecz do danych, które narzędzie pobrało w czasie obowiązywania autoryzacji; ich usunięcie leży po stronie samego narzędzia.' },
158
+ ],
159
+ },
160
+ {
161
+ id: 's7',
162
+ title: '7. Międzynarodowe transfery danych',
163
+ blocks: [
164
+ { kind: 'p', text: 'Twoje dane są przetwarzane przede wszystkim na terenie Europejskiego Obszaru Gospodarczego (EOG). Dane analityki produktowej (PostHog) są przechowywane i przetwarzane na serwerach w UE, we Frankfurcie w Niemczech. Korzystamy z niektórych podmiotów przetwarzających zarejestrowanych poza EOG lub korzystających z infrastruktury spoza EOG, w tym ze spółek ze Stanów Zjednoczonych (obecnie: Vercel, Neon (Neon, LLC, podmiot powiązany z Databricks, Inc.), Google Firebase, Stripe i Resend, a także szczątkowy dostęp wsparcia ze strony PostHog, Inc.); w przypadku Zernio (spółki z EOG) oraz Neon potwierdzamy obecnie, jaka infrastruktura i jakie regiony hostingu są zaangażowane. Dla wszystkich transferów poza EOG zapewniamy odpowiednie zabezpieczenia przy użyciu co najmniej jednego z następujących mechanizmów:' },
165
+ {
166
+ kind: 'ul',
167
+ items: [
168
+ { text: 'Ramy Ochrony Danych UE-USA (decyzja wykonawcza Komisji 2023/1795), gdy odbiorca posiada certyfikację;' },
169
+ { text: 'standardowe klauzule umowne UE (SCC, decyzja Komisji 2021/914) uzupełnione ocenami skutków transferu potwierdzającymi równoważny poziom ochrony w kraju docelowym; lub' },
170
+ { text: 'decyzja Komisji Europejskiej stwierdzająca odpowiedni stopień ochrony w kraju odbiorcy.' },
171
+ ],
172
+ },
173
+ { kind: 'p', text: 'W przypadku samego Zernio nasza umowa powierzenia przetwarzania danych wymaga naszej uprzedniej pisemnej zgody na jakikolwiek transfer poza EOG i opiera się na standardowych klauzulach umownych (decyzja Komisji 2021/914), gdy taki transfer nastąpi; wewnętrzna dokumentacja bezpieczeństwa Zernio wskazuje na przetwarzanie części obciążeń w Ameryce Północnej, co obecnie potwierdzamy operacyjnie.' },
174
+ { kind: 'p', text: 'Jeżeli podłączysz narzędzie zewnętrzne przez MCP (sekcja 6a), każdy transfer danych do tego narzędzia następuje na Twoje polecenie i na warunkach tego narzędzia; powyższe zabezpieczenia dotyczą naszych podmiotów przetwarzających, a nie narzędzi, które podłączasz samodzielnie.' },
175
+ { kind: 'p', text: 'Kopie właściwych standardowych klauzul umownych lub podsumowanie wniosków z naszych ocen skutków transferu możesz uzyskać na żądanie pod adresem kontakt@ad2.app.' },
176
+ ],
177
+ },
178
+ {
179
+ id: 's8',
180
+ title: '8. Twoje prawa na podstawie RODO',
181
+ blocks: [
182
+ { kind: 'p', text: 'Jako osobie, której dane dotyczą, przysługują Ci następujące prawa wynikające z RODO (art. 15-22 oraz art. 77). Aby skorzystać z któregokolwiek z nich, skontaktuj się z nami pod adresem kontakt@ad2.app. Odpowiemy w ciągu 30 dni (termin ten może zostać przedłużony o kolejne 60 dni w przypadku żądań skomplikowanych, o czym Cię powiadomimy). Jeżeli odmówimy podjęcia działań w związku z żądaniem, w tym samym terminie poinformujemy Cię o przyczynach, a także o Twoim prawie do wniesienia skargi do UODO (zobacz sekcję 12) i o prawie do skorzystania ze środka ochrony prawnej przed sądem.' },
183
+ {
184
+ kind: 'ul',
185
+ items: [
186
+ { text: '**Prawo dostępu (art. 15):** uzyskanie kopii danych osobowych, które Cię dotyczą, oraz informacji o sposobie ich przetwarzania.' },
187
+ { text: '**Prawo do sprostowania (art. 16):** żądanie poprawienia nieprawidłowych lub uzupełnienia niekompletnych danych osobowych.' },
188
+ { text: '**Prawo do usunięcia danych (art. 17):** żądanie usunięcia Twoich danych osobowych, o ile nie istnieje nadrzędna podstawa prawna dalszego przetwarzania. Gdy usuwasz konto, Twoje dane są utrzymywane w stanie dezaktywowanym przez 30 dni, aby przypadkowe usunięcie można było cofnąć, a następnie są trwale usuwane; Twoje połączone konta społecznościowe są rozłączane, a dostęp cofany natychmiast, i ta część jest nieodwracalna. Możesz zażądać natychmiastowego, trwałego usunięcia i zrezygnować z okna przywrócenia, wyraźnie wskazując to w swoim żądaniu.' },
189
+ { text: '**Prawo do ograniczenia przetwarzania (art. 18):** żądanie, abyśmy w określonych okolicznościach ograniczyli przetwarzanie Twoich danych.' },
190
+ { text: '**Prawo do przenoszenia danych (art. 20):** otrzymanie swoich danych w ustrukturyzowanym formacie nadającym się do odczytu maszynowego oraz przesłanie ich innemu administratorowi, o ile jest to technicznie możliwe.' },
191
+ { text: '**Prawo do sprzeciwu (art. 21):** sprzeciw wobec przetwarzania opartego na prawnie uzasadnionych interesach. Zaprzestaniemy przetwarzania, chyba że wykażemy istnienie ważnych prawnie uzasadnionych podstaw.' },
192
+ { text: '**Prawo do wycofania zgody (art. 7 ust. 3):** jeżeli przetwarzanie opiera się na Twojej zgodzie (analityczne pliki cookie, e-maile marketingowe), możesz ją wycofać w każdej chwili, bez wpływu na zgodność z prawem przetwarzania dokonanego wcześniej. Zgodę na e-maile marketingowe możesz wycofać w każdej chwili poprzez link rezygnacji w dowolnej wiadomości marketingowej lub kontaktując się z nami pod adresem {EMAIL}.' },
193
+ { text: '**Zautomatyzowane podejmowanie decyzji (art. 22):** nie podejmujemy wobec Ciebie żadnych decyzji opartych wyłącznie na zautomatyzowanym przetwarzaniu, które wywoływałyby skutki prawne lub w podobny sposób istotnie na Ciebie wpływały.' },
194
+ { text: '**Prawo do wniesienia skargi (art. 77):** masz prawo wnieść skargę do polskiego organu nadzorczego, którym jest Prezes Urzędu Ochrony Danych Osobowych (UODO), ul. Stawki 2, 00-193 Warszawa, https://uodo.gov.pl, jeżeli uważasz, że przetwarzamy Twoje dane osobowe z naruszeniem RODO.' },
195
+ ],
196
+ },
197
+ { kind: 'note', label: 'Dane obowiązkowe a dane opcjonalne', text: 'Podanie określonych danych osobowych (adres e-mail, imię i nazwisko, dane uwierzytelniające do konta) jest wymogiem umownym dostępu do Usługi, bez nich nie możemy utworzyć ani prowadzić Twojego konta. Pozostałe pola (takie jak numer telefonu) są dobrowolne. Połączenie kont mediów społecznościowych przez OAuth jest opcjonalne, ale niezbędne, aby korzystać z funkcji publikowania, statystyk i skrzynki odbiorczej. Zgoda na e-maile marketingowe jest w pełni dobrowolna i nigdy nie jest warunkiem korzystania z Usługi.' },
198
+ ],
199
+ },
200
+ {
201
+ id: 's9',
202
+ title: '9. Pliki cookie, pamięć lokalna i technologie śledzące',
203
+ blocks: [
204
+ { kind: 'p', text: 'Używamy plików cookie, pamięci lokalnej przeglądarki i podobnych technologii, aby świadczyć Usługę i ulepszać Twoje doświadczenie.' },
205
+ {
206
+ kind: 'ul',
207
+ items: [
208
+ { text: '**Pliki cookie ściśle niezbędne:** wymagane do obsługi sesji uwierzytelniania i podstawowych funkcji platformy. Nie można ich wyłączyć bez zakłócenia działania Usługi. Podstawa prawna: art. 6 ust. 1 lit. b, wykonanie umowy; zgoda nie jest wymagana. Czas trwania: sesyjne pliki cookie wygasają po zamknięciu przeglądarki; uwierzytelniające pliki cookie wygasają po 30 dniach bezczynności.' },
209
+ { text: '**Funkcjonalne pliki cookie:** ustawiane wyłącznie w bezpośredniej reakcji na podjętą przez Ciebie czynność (np. wybór języka lub motywu) i ściśle niezbędne do wykonania tej konkretnej, zażądanej przez Ciebie funkcji. Nie śledzą Cię między sesjami poza zachowaniem wybranego przez Ciebie ustawienia. Podstawa prawna: ścisła niezbędność do spełnienia Twojego wyraźnego żądania na podstawie art. 173 Prawa telekomunikacyjnego (ePrivacy); odrębna zgoda nie jest wymagana. Czas trwania: do 12 miesięcy lub do wyczyszczenia przez Ciebie danych przeglądarki.' },
210
+ { text: '**Analityczne pliki cookie (PostHog):** zbierają dane o zdarzeniach korzystania w postaci spseudonimizowanej (poza przepływami identyfikującymi opisanymi w sekcji 6), umożliwiają nagrywanie sesji (z maskowaniem wartości wpisywanych w pola formularzy; zobacz sekcję 3) i rejestrują raporty o błędach, abyśmy mogli rozumieć i ulepszać sposób korzystania z Usługi. Podstawa prawna: art. 6 ust. 1 lit. a, zgoda. **Zanim dokonasz wyboru w banerze zgody na pliki cookie, wyświetlanym przy pierwszej wizycie, nie ustawiamy żadnych analitycznych plików cookie i nie rejestrujemy żadnych zdarzeń analitycznych.** Jeżeli wyrazisz zgodę, PostHog ustawia własny plik cookie (o nazwie zaczynającej się od `ph_`) w domenie `ad2.app`, ważny do 1 roku, współdzielony między naszą stroną internetową a aplikacją, aby nie pytać Cię o to dwa razy. Jeżeli odmówisz, żaden analityczny plik cookie nie zostanie ustawiony i żadne zdarzenia nie będą zbierane. Dane analityczne są przetwarzane na serwerach PostHog Cloud EU we Frankfurcie w Niemczech (zobacz sekcję 6).' },
211
+ ],
212
+ },
213
+ { kind: 'p', text: 'Zgodę na pliki cookie możesz wycofać lub zaktualizować w każdej chwili poprzez link "Ustawienia cookie" w stopce naszej strony internetowej albo na stronie niniejszej Polityki Prywatności w aplikacji. Wycofanie zgody analitycznej nie wpływa na działanie platformy.' },
214
+ { kind: 'subheading', text: 'Pamięć lokalna przeglądarki' },
215
+ { kind: 'p', text: 'Poza plikami cookie korzystamy z pamięci lokalnej przeglądarki, aby zachować stan aplikacji między sesjami. Obejmuje to: Twoje preferencje języka i motywu; zbuforowaną kopię poziomu i statusu Twojej subskrypcji (przechowywaną do 30 dni, a następnie unieważnianą); oraz robocze dane o terminach kampanii. Dane z pamięci lokalnej są przechowywane wyłącznie na Twoim urządzeniu i nie są przesyłane na nasze serwery niezależnie od Twojego zwykłego korzystania z Usługi. Są usuwane, gdy wyczyścisz dane przeglądarki lub się wylogujesz.' },
216
+ ],
217
+ },
218
+ {
219
+ id: 's10',
220
+ title: '10. Bezpieczeństwo danych',
221
+ blocks: [
222
+ { kind: 'p', text: 'Stosujemy odpowiednie środki techniczne i organizacyjne chroniące Twoje dane osobowe przed nieuprawnionym dostępem, zmianą, ujawnieniem lub zniszczeniem, zgodnie z art. 32 RODO:' },
223
+ {
224
+ kind: 'ul',
225
+ items: [
226
+ { text: 'Szyfrowanie w trakcie przesyłania (TLS 1.2+) na każdym połączeniu, wymuszane przez naszych dostawców hostingu i bazy danych.' },
227
+ { text: 'Przechowywanie haseł w postaci skrótu z użyciem bcrypt z odpowiednim współczynnikiem kosztu. Jeśli logujesz się przez Google, hasło w ogóle do nas nie trafia.' },
228
+ { text: 'Tokeny OAuth, które przechowujemy bezpośrednio, są szyfrowane w spoczynku (AES-256-GCM, kluczem serwerowym, który nigdy nie leży obok danych); tokeny w posiadaniu naszego podmiotu przetwarzającego publikacje, Zernio, podlegają zabezpieczeniom Zernio na podstawie umowy powierzenia.' },
229
+ { text: 'Egzekwowane po stronie serwera uprawnienia dostępu dla narzędzi zewnętrznych, które autoryzujesz przez MCP (sekcja 6a): każde żądanie jest sprawdzane pod kątem zatwierdzonego przez Ciebie zakresu dostępu, a poszczególne uprawnienia można cofać pojedynczo.' },
230
+ { text: 'Dostęp do systemów produkcyjnych mają wyłącznie dwie osoby prowadzące ad2app, każda przez własne konto u dostawcy. Każde żądanie do chronionej części Usługi jest uwierzytelniane i sprawdzane wobec konta, które je wysyła, częstotliwość żądań jest ograniczana, żeby stępić automatyczne nadużycia, całe wejście jest walidowane na granicy API, a nasza polityka cross-origin działa fail-closed, więc niewymienione źródło jest odrzucane, a nie wpuszczane. Nie prowadzimy osobnego aplikacyjnego dziennika audytowego dostępu personelu; opieramy się na logach naszych dostawców hostingu, bazy danych i płatności.' },
231
+ { text: 'Pseudonimizacja danych analitycznych i danych o korzystaniu tam, gdzie jest to technicznie możliwe, oraz maskowanie tekstu w nagraniach sesji, dzięki czemu treści wiadomości i komentarzy nie są rejestrowane (zobacz sekcję 3).' },
232
+ { text: 'Automatyczne skanowanie podatności w zależnościach; skanowanie sekretów przed każdym commitem; obowiązkowy przegląd każdej zmiany przez drugą osobę, zanim trafi na produkcję; oraz automatyczne testy, kontrola typów i kontrola schematu bazy, które muszą przejść przed wdrożeniem. Nasze wdrożenie odmawia też zbudowania się przy braku wymaganego sekretu konfiguracyjnego, więc źle skonfigurowane środowisko nie trafi po cichu na produkcję. **Nie zlecamy zewnętrznych testów penetracyjnych.** Przy firmie dwuosobowej uznajemy to za proporcjonalne do ryzyka w rozumieniu art. 32 RODO i zaktualizujemy tę stronę, jeśli to się zmieni.' },
233
+ { text: 'Procedury wykrywania incydentów, reagowania na nie i eskalacji, w tym zgłoszenie do UODO w ciągu 72 godzin od stwierdzenia naruszenia podlegającego zgłoszeniu na podstawie art. 33 RODO oraz zawiadomienie osób, których dane dotyczą, gdy wymaga tego art. 34 RODO.' },
234
+ { text: 'Nasz dostawca bazy danych wykonuje ciągłe kopie zapasowe z odtwarzaniem do punktu w czasie i to na nich opierałoby się odtworzenie, a usunięte konta są przechowywane przez 30 dni przed trwałym wyczyszczeniem, więc przypadkowe usunięcie da się cofnąć. **Nie przeprowadziliśmy jeszcze pełnej próby odtworzenia**, więc nie deklarujemy sprawdzonego czasu odtworzenia.' },
235
+ ],
236
+ },
237
+ ],
238
+ },
239
+ {
240
+ id: 's11',
241
+ title: '11. Linki zewnętrzne, platformy społecznościowe i dane skrzynki odbiorczej',
242
+ blocks: [
243
+ { kind: 'p', text: 'Usługa pozwala Ci połączyć wybrane przez Ciebie konta mediów społecznościowych, aby korzystać z funkcji platformy. Obsługiwane platformy obejmują obecnie Instagram, TikTok, X (Twitter), YouTube, LinkedIn, Facebook, Threads, Pinterest, Reddit i Bluesky. Gdy autoryzujesz połączenie OAuth, ad2app otrzymuje dane z API danej platformy w zakresie dopuszczonym przez Twój ekran zgody OAuth. Źródłem wszystkich takich danych jest API odpowiedniej platformy mediów społecznościowych.' },
244
+ { kind: 'p', text: '**Dane skrzynki odbiorczej i komunikacja osób trzecich:** gdy korzystasz z funkcji skrzynki odbiorczej, rozmowy z wiadomości prywatnych oraz komentarze pod postami z Twoich połączonych kont w mediach społecznościowych są pobierane i przechowywane. Obejmuje to wiadomości i komentarze wysłane przez Twoich obserwujących oraz inne osoby trzecie na tych platformach. Część tych danych (na przykład publiczne komentarze pod postami) pochodzi ze źródeł publicznie dostępnych na połączonej platformie; wiadomości prywatne nie. Osoby te nie przekazały swoich danych bezpośrednio ad2app. Przetwarzamy te dane na podstawie art. 6 ust. 1 lit. b (aby udostępnić zakontraktowaną przez Ciebie funkcję skrzynki odbiorczej) i opieramy się na wyłączeniu z art. 14 ust. 5 lit. b RODO: indywidualne poinformowanie każdej takiej osoby wymagałoby niewspółmiernie dużego wysiłku ze względu na skalę tych danych i ich pochodzenie z platform. Zgodnie z art. 14 ust. 5 lit. b, biorąc pod uwagę liczbę osób, których to dotyczy, wiek danych oraz zastosowane zabezpieczenia, podejmujemy odpowiednie środki, aby chronić prawa, wolności i prawnie uzasadnione interesy tych osób, w tym publicznie udostępniamy tę informację w niniejszej polityce i obsługujemy każde żądanie takiej osoby dotyczące jej praw, otrzymane pod adresem {EMAIL}; nasza ocena wyważenia interesów jest udokumentowana w naszym rejestrze czynności przetwarzania (art. 30 RODO). Dane skrzynki odbiorczej nie są wykorzystywane do profilowania, reklamy ani do żadnego celu wykraczającego poza wyświetlanie Twojej komunikacji z mediów społecznościowych w obrębie platformy.' },
245
+ { kind: 'p', text: '**Dane o odbiorcach (art. 14 RODO):** gdy łączysz konto mediów społecznościowych, połączona platforma może przekazywać zagregowane dane o odbiorcach (np. statystyki demograficzne dotyczące Twoich obserwujących). Dane te pochodzą z platformy społecznościowej i dotyczą osób, które nie pozostają w bezpośredniej relacji z ad2app. Są przetwarzane wyłącznie jako anonimowe, zagregowane statystyki i nie identyfikują żadnej osoby; nie stanowią zatem danych osobowych w rozumieniu RODO (motyw 26), a art. 14 ich nie dotyczy. Gdyby jednak którykolwiek element tych danych miał mimo to zostać uznany za dane osobowe, oparlibyśmy się na wyłączeniu z art. 14 ust. 5 lit. b RODO (niewspółmiernie duży wysiłek) i wypełnilibyśmy nasz obowiązek poprzez publiczne udostępnienie tej informacji w niniejszej polityce. Dane o odbiorcach nie są wykorzystywane do żadnego innego celu.' },
246
+ { kind: 'p', text: 'Nie odpowiadamy za praktyki prywatności zewnętrznych platform społecznościowych. Przed połączeniem swoich kont zapoznaj się z ich politykami prywatności.' },
247
+ ],
248
+ },
249
+ {
250
+ id: 's12',
251
+ title: '12. Organ nadzorczy',
252
+ blocks: [
253
+ { kind: 'p', text: 'Masz prawo wnieść skargę do polskiego organu nadzorczego do spraw ochrony danych osobowych, którym jest Prezes Urzędu Ochrony Danych Osobowych (art. 77 RODO), jeżeli uważasz, że naruszyliśmy Twoje prawa:' },
254
+ { kind: 'address', lines: ['Urząd Ochrony Danych Osobowych (UODO)', 'ul. Stawki 2, 00-193 Warszawa, Polska', 'https://uodo.gov.pl'] },
255
+ ],
256
+ },
257
+ {
258
+ id: 's13',
259
+ title: '13. Zmiany niniejszej polityki',
260
+ blocks: [
261
+ { kind: 'p', text: 'Możemy od czasu do czasu aktualizować niniejszą Politykę Prywatności. Gdy zmiany będą istotne, powiadomimy Cię e-mailem lub wyraźnym komunikatem w Usłudze co najmniej 14 dni przed ich wejściem w życie. Data "Ostatnia aktualizacja" u góry tej strony zawsze odpowiada najnowszej wersji.' },
262
+ { kind: 'p', text: 'Poprzednie wersje niniejszej Polityki Prywatności są dostępne na żądanie pod adresem kontakt@ad2.app. Wykaz zmian podsumowujący istotne modyfikacje prowadzimy wewnętrznie i udostępniamy organom nadzorczym na żądanie.' },
263
+ ],
264
+ },
265
+ {
266
+ id: 's14',
267
+ title: '14. Kontakt',
268
+ blocks: [
269
+ { kind: 'p', text: 'W sprawie wszelkich pytań, żądań lub wątpliwości dotyczących niniejszej Polityki Prywatności albo Twoich danych osobowych skontaktuj się z nami:' },
270
+ { kind: 'address', lines: ['**Ad2app sp. z o.o.**', 'ul. Juliana Smulikowskiego 4A/21, 00-389 Warszawa, Polska', 'NIP: 5253042936', 'KRS: 0001168159', 'Email: kontakt@ad2.app'] },
271
+ ],
272
+ },
273
+ ];
@@ -32,7 +32,7 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
32
32
  {
33
33
  text: '**Social platform data via OAuth:** when you authorise a connection to one of the social media platforms you choose to connect (currently Instagram, TikTok, X (Twitter), YouTube, LinkedIn, Facebook, Threads, Pinterest, Reddit, and Bluesky), we receive data from that platform\'s API as permitted by your OAuth consent. Across all connected platforms this generally includes your account/profile data (such as user ID, username or handle, display name, avatar, and account statistics where the platform exposes them), the content and media of posts you compose, schedule, or publish through the Service, and performance/analytics data for your published posts. The specific data received depends on the platform and the permissions you grant. For some platforms we describe the data in more detail below:',
34
34
  sub: [
35
- { text: '**TikTok:** basic profile (user ID, display name, avatar, biography, profile URL), account statistics (follower count, following count, like count, video count), video list and metadata (titles, view counts, engagement metrics), and where enabled for scheduling features video upload and publish permissions. We request only the permissions required for the features you actively use.' },
35
+ { text: '**TikTok:** basic profile (user ID, display name, avatar, biography, profile URL), account statistics (follower count, following count, like count, video count), video list and metadata (titles, view counts, engagement metrics), and, where enabled for scheduling features, video upload and publish permissions. We request only the permissions required for the features you actively use.' },
36
36
  { text: '**Instagram:** Instagram Business account data including username, biography, profile picture, account type, and associated business metrics.' },
37
37
  { text: '**Facebook:** public profile information and, where you grant permission, your Facebook email address. Facebook is an independent OAuth provider separate from Instagram.' },
38
38
  { text: '**YouTube:** YouTube channel data (read-only: videos, statistics, channel metadata) and your Google Account profile (name, profile picture URL, Google Account ID) via the Google identity scope used for authentication.' },
@@ -40,15 +40,15 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
40
40
  ],
41
41
  },
42
42
  { text: '**OAuth tokens and account connections:** publishing to your connected platforms is handled by our processor Zernio (see Section 6). For the platforms Zernio publishes to, we do not store your OAuth tokens ourselves; the tokens are held by Zernio on our behalf, and we hold only a reference to your connected account (platform name and username). For a small number of platforms where we read analytics directly (TikTok, Instagram, YouTube, Facebook), we may hold an access token ourselves. We are completing a technical review to confirm and, where needed, encrypt at rest every token we hold directly (see Section 10).' },
43
- { text: '**Audience data (aggregate only):** demographic and engagement statistics about your social media audience, as provided by the connected platform\'s API. This data is processed exclusively in aggregate statistical form and is not linked to any identified individual within your audience. We have assessed whether this data could constitute special category data under Art. 9 GDPR and confirm that we do not process such special category data audience data is processed solely as aggregate numeric metrics.' },
43
+ { text: '**Audience data (aggregate only):** demographic and engagement statistics about your social media audience, as provided by the connected platform\'s API. This data is processed exclusively in aggregate statistical form and is not linked to any identified individual within your audience. We have assessed whether this data could constitute special category data under Art. 9 GDPR and confirm that we do not process such special category data: audience data is processed solely as aggregate numeric metrics.' },
44
44
  { text: '**Inbox data:** when you use the platform\'s inbox features, direct message conversations and post comments from your connected social media accounts are fetched and displayed. This includes content sent to you by your followers or other third parties on those platforms. See Section 11 for further detail.' },
45
45
  { text: '**Post content and scheduled posts:** the content you compose, schedule, and publish through the Service, including post text, captions, hashtags, links, scheduling times, and the images, videos, and other media you upload for those posts, together with the publishing status and metadata of each post. Where we cache a thumbnail or media preview for display in the app, we store only a pointer (a URL) to the file hosted by Zernio; we do not copy the underlying media into our own storage.' },
46
46
  { text: '**Published-post analytics:** performance and engagement metrics for posts you have published through the Service to your connected accounts (e.g. views, impressions, likes, comments, shares, reach, and other statistics), as provided by the connected platform\'s API.' },
47
47
  { text: '**Media and content:** files you upload (images, videos, documents) for posts or your profile.' },
48
- { text: '**Technical & usage data:** anonymised IP address, browser type and version, operating system, pages visited, referral URLs, timestamps, error and crash reports, and usage events (e.g. feature interactions such as button clicks and page views, tracked via PostHog see Sections 6 and 9). Usage tracking starts only after you give consent via the cookie banner.' },
48
+ { text: '**Technical & usage data:** anonymised IP address, browser type and version, operating system, pages visited, referral URLs, timestamps, error and crash reports, and usage events (e.g. feature interactions such as button clicks and page views, tracked via PostHog, see Sections 6 and 9). Usage tracking starts only after you give consent via the cookie banner.' },
49
49
  { text: '**Session replay data:** with your consent (see Section 9), we record replays of your interactions with the Service (mouse movement, scrolling, clicks, page navigation) to diagnose usability problems and errors. Values you type into form fields are masked before recording. We are extending this masking to also cover other user-authored text shown on screen during a recording (for example post captions or inbox messages displayed as read-only text); until that work is complete, such text may appear in a recording in readable form. Recordings are automatically deleted after 30 days.' },
50
50
  { text: '**Billing data:** Stripe, our payment processor, collects and holds your billing address and payment details when you subscribe. We ourselves store only a reference to your Stripe customer and subscription records (not your card details or billing address).' },
51
- { text: '**Marketing email preference:** whether you have opted in to marketing and lifecycle emails, and when (see Section 4). This preference is opt-in only it is never pre-selected on your behalf and you can withdraw it at any time via the unsubscribe link in any such email or by contacting us at {EMAIL}.' },
51
+ { text: '**Marketing email preference:** whether you have opted in to marketing and lifecycle emails, and when (see Section 4). This preference is opt-in only, it is never pre-selected on your behalf, and you can withdraw it at any time via the unsubscribe link in any such email or by contacting us at {EMAIL}.' },
52
52
  { text: '**Feedback data:** free-text feedback submitted via the in-app feedback form. This may incidentally contain personal data you choose to include.' },
53
53
  ],
54
54
  },
@@ -114,21 +114,21 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
114
114
  kind: 'ul',
115
115
  items: [
116
116
  {
117
- text: '**Service providers (data processors)** engaged under contractual terms that include data protection obligations. A signed Data Processing Agreement (Art. 28 GDPR) is in place with our publishing sub-processor (Zernio); we are finalising written terms for the remaining sub-processors where not yet bound by their standard online DPA:',
117
+ text: '**Service providers (data processors)**, engaged under contractual terms that include data protection obligations. A signed Data Processing Agreement (Art. 28 GDPR) is in place with our publishing sub-processor (Zernio); we are finalising written terms for the remaining sub-processors where not yet bound by their standard online DPA:',
118
118
  sub: [
119
119
  { text: '**Zernio** (contracting entity: ARBICHAT, S.L., trading as \u201cZernio\u201d, zernio.com), social media API aggregation and publishing: we pass OAuth tokens, post content, media files, and inbox data to Zernio solely to execute publishing and inbox operations on your behalf. The vendor is based in Girona, Spain (EEA); see Zernio\'s own privacy policy for details of the infrastructure it uses. We have a signed Data Processing Agreement with this vendor; to the extent Zernio processes data outside the EEA, such transfers are covered by Standard Contractual Clauses (Commission Decision 2021/914) under that agreement.' },
120
120
  { text: '**Stripe**, payment processing: billing address and payment details are collected and held directly by Stripe; we share your email and account identifiers with Stripe to set up and manage your subscription. For processing your subscription payments on our behalf, Stripe acts as our data processor; for fraud prevention, anti-money-laundering checks, and its own regulatory compliance, Stripe acts as an independent data controller under its own privacy policy. Stripe is located in the United States and operates under the EU-US Data Privacy Framework.' },
121
121
  { text: '**PostHog (PostHog, Inc.)**, product analytics, session replay, and error tracking: usage event data (feature interactions, page views, device/browser info), masked session recordings, and error reports are processed only after you have given explicit analytics consent via the cookie banner. Some data we send is identifying rather than pseudonymised in specific cases (for example, transactional email delivery tracking uses your email address directly so we can tell whether an email reached you); we are reviewing which flows can be pseudonymised further. Our PostHog instance is **PostHog Cloud EU, hosted in Frankfurt, Germany**, analytics data is stored and processed within the EEA. PostHog, Inc. is incorporated in the United States; any residual access from outside the EEA is governed by a Data Processing Agreement incorporating Standard Contractual Clauses (Commission Decision 2021/914).' },
122
122
  { text: '**Resend**, transactional and product email delivery: we use Resend to send account verification emails, onboarding and lifecycle emails, and to maintain the list of users eligible for those emails. Resend receives your email address, and where relevant your first name and the content of the email (which may include a verification or unsubscribe link). Under Resend\'s data processing terms, personal data held by Resend is deleted within 90 days after termination of our agreement with them. Resend is a company based in the United States; transfers are covered by Standard Contractual Clauses (Commission Decision 2021/914) or the EU-US Data Privacy Framework where applicable.' },
123
- { text: '**Vercel Inc.** backend API hosting and compute: server-side application code, API requests, and associated request logs are processed on Vercel\'s infrastructure. Vercel is located in the United States and transfers are covered by Standard Contractual Clauses (Commission Decision 2021/914).' },
123
+ { text: '**Vercel Inc.**: backend API hosting and compute: server-side application code, API requests, and associated request logs are processed on Vercel\'s infrastructure. Vercel is located in the United States and transfers are covered by Standard Contractual Clauses (Commission Decision 2021/914).' },
124
124
  { text: '**Neon, LLC (an affiliate of Databricks, Inc.)**, PostgreSQL database hosting: all structured platform data (accounts, connected-account metadata, post content and scheduling metadata) is stored in a Neon-hosted PostgreSQL database operated under the Databricks Master Cloud Services Agreement and the Databricks Privacy Notice. Neon, LLC and Databricks, Inc. are companies incorporated in the United States; whether the database contents leave the EEA depends on the hosting region of our database instance, which we are confirming. To the extent data is processed outside the EEA, transfers are covered by Standard Contractual Clauses (Commission Decision 2021/914).' },
125
- { text: '**Google Firebase (Firebase Authentication)** authentication token verification: authentication tokens issued to users may be verified against Firebase Authentication to validate active sessions. Firebase is a Google service located in the United States and operates under the EU–US Data Privacy Framework.' },
125
+ { text: '**Google Firebase (Firebase Authentication)**: authentication token verification: authentication tokens issued to users may be verified against Firebase Authentication to validate active sessions. Firebase is a Google service located in the United States and operates under the EU–US Data Privacy Framework.' },
126
126
  { text: 'A current list of sub-processors (including names, countries of processing, and applicable transfer safeguards) is available on request at kontakt@ad2.app.' },
127
127
  ],
128
128
  },
129
129
  { text: '**Third-party tools you authorize:** see Section 6a. These tools are recipients acting on your instruction, not our sub-processors.' },
130
130
  { text: '**Legal authorities:** where required by law, court order, or to protect the rights and safety of ad2app or third parties.' },
131
- { text: '**Business transfers:** in the event of a merger, acquisition, or sale of assets, personal data may be transferred under Art. 6(1)(f) you will be notified before it becomes subject to a different privacy policy.' },
131
+ { text: '**Business transfers:** in the event of a merger, acquisition, or sale of assets, personal data may be transferred under Art. 6(1)(f). You will be notified before it becomes subject to a different privacy policy.' },
132
132
  ],
133
133
  },
134
134
  ],
@@ -179,7 +179,7 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
179
179
  { text: '**Right to object (Art. 21):** object to processing based on legitimate interests. We will cease unless we demonstrate compelling legitimate grounds.' },
180
180
  { text: '**Right to withdraw consent (Art. 7(3)):** where processing is based on your consent (analytics cookies, marketing emails), you may withdraw it at any time without affecting the lawfulness of prior processing. Marketing-email consent can be withdrawn at any time via the unsubscribe link in any marketing email or by contacting us at {EMAIL}.' },
181
181
  { text: '**Automated decision-making (Art. 22):** we do not make any decision producing legal or similarly significant effects concerning you based solely on automated processing.' },
182
- { text: '**Right to lodge a complaint (Art. 77):** you have the right to lodge a complaint with the Polish supervisory authority Urząd Ochrony Danych Osobowych (UODO), ul. Stawki 2, 00-193 Warszawa, https://uodo.gov.pl if you believe we are processing your personal data in violation of the GDPR.' },
182
+ { text: '**Right to lodge a complaint (Art. 77):** you have the right to lodge a complaint with the Polish supervisory authority, Urząd Ochrony Danych Osobowych (UODO), ul. Stawki 2, 00-193 Warszawa, https://uodo.gov.pl, if you believe we are processing your personal data in violation of the GDPR.' },
183
183
  ],
184
184
  },
185
185
  { kind: 'note', label: 'Mandatory vs. optional data', text: 'Providing certain personal data (email address, name, account credentials) is a contractual requirement for accessing the Service, without it, we cannot create or maintain your account. Other fields (such as phone number) are voluntary. Connecting social media accounts via OAuth is optional but required to access publishing, analytics, and inbox features. Marketing-email consent is entirely optional and never a condition of using the Service.' },
@@ -193,9 +193,9 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
193
193
  {
194
194
  kind: 'ul',
195
195
  items: [
196
- { text: '**Strictly necessary cookies:** required for authentication sessions and core platform functionality. Cannot be disabled without breaking the Service. Legal basis: Art. 6(1)(b) contract performance; no consent required. Duration: session cookies expire when you close your browser; authentication cookies expire after 30 days of inactivity.' },
196
+ { text: '**Strictly necessary cookies:** required for authentication sessions and core platform functionality. Cannot be disabled without breaking the Service. Legal basis: Art. 6(1)(b), contract performance; no consent required. Duration: session cookies expire when you close your browser; authentication cookies expire after 30 days of inactivity.' },
197
197
  { text: '**Functional cookies:** set only in direct response to an action you take (e.g. selecting a language or theme preference), and strictly necessary to deliver that specific function you have requested. They do not track you across sessions beyond preserving your chosen setting. Legal basis: strictly necessary to fulfil your explicit request under Art. 173 of the Polish Telecommunications Act (ePrivacy); no separate consent required. Duration: up to 12 months, or cleared when you clear your browser data.' },
198
- { text: '**Analytics cookies (PostHog):** collect usage event data in pseudonymised form (other than the identifying flows described in Section 6), enable session replay (with form-field values masked; see Section 3), and capture error reports to help us understand and improve how the Service is used. Legal basis: Art. 6(1)(a) consent. **No analytics cookies are set and no analytics events are captured before you make a choice** in the cookie consent banner shown on first visit. If you accept, PostHog sets a first-party cookie (name beginning `ph_`) on the `ad2.app` domain, valid for up to 1 year, shared between our website and the app so you are not asked twice. If you decline, no analytics cookie is set and no events are collected. Analytics data is processed on PostHog Cloud EU servers in Frankfurt, Germany (see Section 6).' },
198
+ { text: '**Analytics cookies (PostHog):** collect usage event data in pseudonymised form (other than the identifying flows described in Section 6), enable session replay (with form-field values masked; see Section 3), and capture error reports to help us understand and improve how the Service is used. Legal basis: Art. 6(1)(a), consent. **No analytics cookies are set and no analytics events are captured before you make a choice** in the cookie consent banner shown on first visit. If you accept, PostHog sets a first-party cookie (name beginning `ph_`) on the `ad2.app` domain, valid for up to 1 year, shared between our website and the app so you are not asked twice. If you decline, no analytics cookie is set and no events are collected. Analytics data is processed on PostHog Cloud EU servers in Frankfurt, Germany (see Section 6).' },
199
199
  ],
200
200
  },
201
201
  { kind: 'p', text: 'You may withdraw or update your cookie consent at any time via the "Cookie settings" link in the footer of our website, or on this Privacy Policy page in the app. Withdrawing analytics consent does not affect platform functionality.' },
@@ -211,15 +211,15 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
211
211
  {
212
212
  kind: 'ul',
213
213
  items: [
214
- { text: 'Encryption in transit (TLS 1.2+).' },
215
- { text: 'Hashed storage of passwords using bcrypt with appropriate cost factors.' },
216
- { text: 'We are completing a review to ensure any OAuth tokens we hold directly are encrypted at rest; tokens held by our publishing processor Zernio are subject to Zernio\'s own security measures.' },
214
+ { text: 'Encryption in transit (TLS 1.2+) on every connection, enforced by our hosting and database providers.' },
215
+ { text: 'Hashed storage of passwords using bcrypt with appropriate cost factors. Where you sign in with Google, we never receive a password at all.' },
216
+ { text: 'OAuth tokens we hold directly are encrypted at rest (AES via a server-side key that is never stored beside the data); tokens held by our publishing processor Zernio are subject to Zernio\'s own security measures under our Data Processing Agreement' },
217
217
  { text: 'Server-enforced access grants for third-party tools you authorize via MCP (Section 6a): every request is checked against the access you approved, and grants are individually revocable.' },
218
- { text: 'Role-based access controls with least-privilege principles; access logs retained for audit purposes.' },
219
- { text: 'Pseudonymisation of analytics and usage data where technically feasible.' },
220
- { text: 'Regular vulnerability assessments and periodic penetration testing.' },
221
- { text: 'Incident detection, response, and escalation procedures including UODO notification within 72 hours of a qualifying breach under Art. 33 GDPR, and notification to affected data subjects where required under Art. 34 GDPR.' },
222
- { text: 'Business continuity and data recovery procedures tested at least annually.' },
218
+ { text: 'Access to production systems is limited to the two people who operate ad2app, each through their own provider account. Every request to a protected part of the Service is authenticated and checked against the account making it, request rates are limited to blunt automated abuse, all input is validated at the API boundary, and our cross-origin policy fails closed, so an unlisted origin is refused rather than allowed. We do not keep a separate application-level audit log of staff access; the logs kept by our hosting, database and payment providers are what we rely on.' },
219
+ { text: 'Pseudonymisation of analytics and usage data where technically feasible, and masking of text in session recordings, so message and comment bodies are not captured (see Section 3).' },
220
+ { text: 'Automated dependency vulnerability scanning; secret scanning before any code is committed; a required review of every change by a second person before it reaches production; and automated test, type and database-schema checks that must pass before a deploy. Our deploy also refuses to build if a required configuration secret is missing, so a misconfigured environment cannot silently reach production. **We do not commission external penetration tests.** For a two-person company we judge that proportionate to the risk under Art. 32 GDPR, and we will update this page if that changes.' },
221
+ { text: 'Incident detection, response, and escalation procedures, including UODO notification within 72 hours of a qualifying breach under Art. 33 GDPR, and notification to affected data subjects where required under Art. 34 GDPR.' },
222
+ { text: 'Our database provider takes continuous backups with point-in-time recovery, which is what a restore would use, and deleted accounts are held for 30 days before being purged so an accidental deletion can be undone. **We have not yet run a full restore drill**, so we do not claim a tested recovery time.' },
223
223
  ],
224
224
  },
225
225
  ],
@@ -229,7 +229,7 @@ export const PRIVACY_SECTIONS: LegalSection[] = [
229
229
  title: '11. Third-Party Links, Social Platforms, and Inbox Data',
230
230
  blocks: [
231
231
  { kind: 'p', text: 'The Service allows you to connect the social media accounts you choose to enable platform features. Supported platforms currently include Instagram, TikTok, X (Twitter), YouTube, LinkedIn, Facebook, Threads, Pinterest, Reddit, and Bluesky. When you authorise an OAuth connection, ad2app receives data from that platform\'s API as permitted by your OAuth consent screen. The source of all such data is the respective social media platform\'s API.' },
232
- { kind: 'p', text: '**Inbox data and third-party communications:** when you use the inbox features, direct message conversations and post comments from your connected social media accounts are fetched and stored. This includes messages and comments sent by your followers and other third parties on those platforms. Some of this data (for example public post comments) originates from publicly accessible sources on the connected platform; direct messages do not. Those individuals have not directly provided their data to ad2app. We process this data under Art. 6(1)(b) (to provide the inbox feature you have contracted for) and rely on the exemption in Art. 14(5)(b) GDPR providing individual notice to each such person would require disproportionate effort given the volume and platform-derived nature of the data. In line with Art. 14(5)(b), and having regard to the number of individuals concerned, the age of the data, and the safeguards applied, we take appropriate measures to protect these individuals\' rights, freedoms, and legitimate interests, including by making this information publicly available in this policy and by handling any rights request from such a person received at {EMAIL}; our balancing assessment is documented in our Record of Processing Activities (Art. 30 GDPR). Inbox data is not used for profiling, advertising, or any purpose beyond displaying your social media communications within the platform.' },
232
+ { kind: 'p', text: '**Inbox data and third-party communications:** when you use the inbox features, direct message conversations and post comments from your connected social media accounts are fetched and stored. This includes messages and comments sent by your followers and other third parties on those platforms. Some of this data (for example public post comments) originates from publicly accessible sources on the connected platform; direct messages do not. Those individuals have not directly provided their data to ad2app. We process this data under Art. 6(1)(b) (to provide the inbox feature you have contracted for) and rely on the exemption in Art. 14(5)(b) GDPR: providing individual notice to each such person would require disproportionate effort given the volume and platform-derived nature of the data. In line with Art. 14(5)(b), and having regard to the number of individuals concerned, the age of the data, and the safeguards applied, we take appropriate measures to protect these individuals\' rights, freedoms, and legitimate interests, including by making this information publicly available in this policy and by handling any rights request from such a person received at {EMAIL}; our balancing assessment is documented in our Record of Processing Activities (Art. 30 GDPR). Inbox data is not used for profiling, advertising, or any purpose beyond displaying your social media communications within the platform.' },
233
233
  { kind: 'p', text: '**Audience data (Art. 14 GDPR):** when you connect a social media account, the connected platform may provide aggregate audience data (e.g. demographic statistics about your followers). This data originates from the social platform and relates to individuals who are not in a direct relationship with ad2app. It is processed solely as anonymous, aggregate statistics and does not identify any individual; it is therefore not personal data within the meaning of the GDPR (Recital 26) and Art. 14 does not apply to it. Insofar as any element of this data were nevertheless treated as personal data, we would rely on the exemption in Art. 14(5)(b) GDPR (disproportionate effort) and discharge our obligation by making this information publicly available in this policy. Audience data is not used for any other purpose.' },
234
234
  { kind: 'p', text: 'We are not responsible for the privacy practices of third-party social platforms. Please review their privacy policies before connecting your accounts.' },
235
235
  ],