Ten dokument zawiera wskazówki dotyczące wybierania odpowiednich identyfikatorów aplikacji na podstawie przypadku użycia.
Omówienie uprawnień na Androida znajdziesz w artykule Omówienie uprawnień. Sprawdzone metody dotyczące uprawnień na Androidzie znajdziesz w artykule Sprawdzone metody dotyczące uprawnień aplikacji.
Sprawdzone metody pracy z identyfikatorami Androida
Aby chronić prywatność użytkowników, używaj najbardziej restrykcyjnego identyfikatora, który spełnia potrzeby Twojej aplikacji. W szczególności zastosuj te sprawdzone metody:
- Gdy to możliwe, wybieraj identyfikatory, które mogą być resetowane przez użytkownika. Aplikacja może spełnić większość przypadków użycia nawet wtedy, gdy używa identyfikatorów innych niż identyfikatory sprzętowe, których nie można zresetować.
Unikaj korzystania z identyfikatorów sprzętowych. W większości przypadków możesz uniknąć używania identyfikatorów sprzętowych, takich jak identyfikator IMEI, bez ograniczania wymaganych funkcji.
Android 10 (poziom interfejsu API 29) wprowadza ograniczenia dotyczące identyfikatorów, których nie można zresetować, w tym IMEI i numeru seryjnego. Aby uzyskać dostęp do tych identyfikatorów, aplikacja musi być aplikacją właściciela urządzenia lub profilu, specjalnymi uprawnieniami operatora lub mieć uprawnienie
READ_PRIVILEGED_PHONE_STATE
.Identyfikatora wyświetlania reklam na urządzeniach z Androidem używaj tylko do profilowania użytkowników lub do celów związanych z reklamami. Korzystając z identyfikatora wyświetlania reklam, zawsze szanuj wybory użytkowników dotyczące śledzenia reklam. Jeśli musisz połączyć identyfikator wyświetlania reklam z informacjami umożliwiającymi identyfikację osoby, musisz to zrobić tylko za wyraźną zgodą użytkownika.
Nie łącz resetów identyfikatora wyświetlania reklam.
Używaj identyfikatora instalacji Firebase (FID) lub prywatnie przechowywanego identyfikatora GUID, gdy tylko to możliwe, we wszystkich innych przypadkach użycia, z wyjątkiem zapobiegania oszustwom związanym z płatnościami i telefonii. W przypadku większości przypadków użycia niezwiązanych z reklamami wystarczy identyfikator FID lub GUID.
Używaj interfejsów API odpowiednich do Twojego zastosowania, aby zminimalizować ryzyko naruszenia prywatności. Używaj interfejsu DRM API do ochrony treści o wysokiej wartości oraz interfejsów Play Integrity API do ochrony przed nadużyciami. Interfejsy Play Integrity API to najprostszy sposób na ustalenie, czy urządzenie jest oryginalne bez ryzyka dla prywatności.
W pozostałych sekcjach tego przewodnika omawiamy te zasady w kontekście tworzenia aplikacji na Androida.
Praca z identyfikatorami wyświetlania reklam
Identyfikator wyświetlania reklam to identyfikator, który użytkownik może zresetować, i który jest odpowiedni do zastosowań reklamowych. Pamiętaj jednak, że podczas korzystania z tego identyfikatora należy wziąć pod uwagę kilka kwestii:
Zawsze respektuj intencje użytkownika dotyczące resetowania identyfikatora wyświetlania reklam. Nie blokuj resetowania użytkowników za pomocą innego identyfikatora lub odcisku palca, aby połączyć ze sobą kolejne identyfikatory wyświetlania reklam bez zgody użytkownika. Oto zasady dotyczące treści dla deweloperów w Google Play:
„...po zresetowaniu nowy identyfikator wyświetlania reklam nie może zostać połączony z poprzednim ani z danymi uzyskanymi na podstawie poprzedniego identyfikatora bez wyraźnej zgody użytkownika”.
Zawsze przestrzegaj powiązanego oznaczenia reklam spersonalizowanych. Identyfikatory reklamowe można konfigurować, co oznacza, że użytkownicy mogą ograniczyć zakres śledzenia powiązanego z tym identyfikatorem. Zawsze używaj metody AdvertisingIdClient.Info.isLimitAdTrackingEnabled()
, aby mieć pewność, że nie obchodzisz woli użytkowników. Zasady treści dla deweloperów Google Play mówią:
„…należy stosować się do wybranego przez użytkowników ustawienia rezygnacji z reklam opartych na zainteresowaniach lub reklam spersonalizowanych”. Jeśli użytkownik włączył to ustawienie, nie wolno używać identyfikatora wyświetlania reklam do tworzenia profili użytkowników do celów reklamowych ani do kierowania na użytkowników reklam spersonalizowanych. Dozwolone zastosowania obejmują reklamę kontekstową, ograniczanie liczby wyświetleń, śledzenie konwersji, raportowanie, wykrywanie oszustw oraz bezpieczeństwo."
Pamiętaj o wszelkich zasadach ochrony prywatności i bezpieczeństwa związanych z używanymi przez Ciebie pakietami SDK dotyczącymi używania identyfikatora wyświetlania reklam.
Jeśli na przykład przekazujesz true
do metody enableAdvertisingIdCollection()
z pakietu SDK Google Analytics, przeczytaj i przestrzegaj wszystkich obowiązujących zasad dotyczących pakietu SDK Analytics.
Pamiętaj też, że zgodnie z Polityką treści w Google Play dla deweloperów identyfikator wyświetlania reklam „nie może być połączony z informacjami umożliwiającymi identyfikację osób ani powiązany z żadnym trwałym identyfikatorem urządzenia (np. identyfikatorem SSAID, adresem MAC, numerem IMEI itp.).
Załóżmy, że chcesz zebrać informacje, aby wypełnić tabele bazy danych tymi kolumnami:
TABLE-01 | |||
timestamp |
ad_id |
account_id |
clickid |
TABELA-02 | |||
account_id |
name |
dob |
country |
W tym przykładzie kolumnę ad_id
można połączyć z informacjami umożliwiającymi identyfikację użytkownika za pomocą kolumny account_id
w obu tabelach. Jest to niezgodne z Polityką treści w Google Play dla deweloperów, jeśli nie otrzymasz wyraźnej zgody użytkowników.
Pamiętaj, że połączenia między identyfikatorem reklamodawcy a danymi PII nie zawsze są tak wyraźne. „Pozorne identyfikatory” mogą występować w tabelach z kluczami zarówno w tabelach z informacjami umożliwiającymi identyfikację, jak i z identyfikatorami reklam, co też może powodować problemy. Załóżmy na przykład, że zmieniamy tabele TABLE-01 i TABLE-02 w ten sposób:
TABLE-01 | ||||
timestamp |
ad_id |
clickid |
dev_model |
|
TABELA-02 | ||||
timestamp |
demo |
account_id |
dev_model |
name |
W tym przypadku, gdy zdarzenia kliknięcia są wystarczająco rzadkie, nadal można wykonać złączanie między tabelą TABLE-01 z identyfikatorem reklamodawcy a danymi PII zawartymi w tabeli TABLE-02, korzystając z znaku czasu zdarzenia i modelu urządzenia.
Chociaż często trudno jest zagwarantować, że w zbiorze danych nie ma żadnych quasi-identyfikatorów, możesz zapobiegać najbardziej oczywistym ryzyku związanym z złączaniem, stosując w miarę możliwości uogólnianie danych unikalnych. W poprzednim przykładzie oznaczałoby to zmniejszenie dokładności sygnatury czasowej, tak aby w przypadku każdej sygnatury czasowej pojawiało się kilka urządzeń z tym samym modelem.
Inne rozwiązania:
Nie tworzyć tabel, które wyraźnie łączą informacje umożliwiające identyfikację z identyfikatorami wyświetlania reklam. W pierwszym przykładzie powyżej oznaczałoby to pominięcie kolumny
account_id
w tabeli TABLE-01.Oddzielanie i monitorowanie list kontroli dostępu użytkowników lub ról, które mają dostęp zarówno do danych z kluczem identyfikatora wyświetlania reklam, jak i do informacji umożliwiających identyfikację. Dzięki ścisłej kontroli i audytowaniu dostępu do obu źródeł jednocześnie (np. przez złączenie tabel) zmniejszasz ryzyko powiązania identyfikatora reklamowego z informacjami umożliwiającymi identyfikację. Ogólnie rzecz biorąc, kontrola dostępu oznacza wykonywanie tych czynności:
- Aby zminimalizować liczbę osób lub ról, które są uwzględnione w obu listach ACL, należy utrzymać listy ACL z danymi powiązanymi z identyfikatorem reklamodawcy i informacjami umożliwiającymi identyfikację osobowej w oddzielnych listach.
- Wprowadź rejestrowanie dostępu i kontrolę, aby wykrywać i zarządzać wyjątkami od tej reguły.
Więcej informacji na temat odpowiedzialnej pracy z identyfikatorami wyświetlania reklam znajdziesz w dokumentacji interfejsu API AdvertisingIdClient
.
Praca z identyfikatorami FID i GUID
Najprostszym sposobem na identyfikację instancji aplikacji działającej na urządzeniu jest użycie identyfikatora instalacji Firebase (FID). Jest to zalecane rozwiązanie w przypadku większości przypadków użycia niezwiązanych z reklamami. Do tego identyfikatora ma dostęp tylko instancja aplikacji, dla której został utworzony, i można go (względnie) łatwo zresetować, ponieważ jest on aktywny tylko przez czas, gdy aplikacja jest zainstalowana.
W rezultacie identyfikatory FID zapewniają większą ochronę prywatności niż nieresetowalne identyfikatory sprzętowe ograniczone do urządzenia. Więcej informacji znajdziesz w firebase.installations
dokumentacji interfejsu API.
W przypadku, gdy użycie identyfikatora FID nie jest praktyczne, możesz też użyć niestandardowych identyfikatorów globalnie unikalnych (GUID) do jednoznacznego identyfikowania instancji aplikacji. Najprostszym sposobem jest wygenerowanie własnego identyfikatora GUID za pomocą tego kodu:
Kotlin
var uniqueID = UUID.randomUUID().toString()
Java
String uniqueID = UUID.randomUUID().toString();
Identyfikator jest niepowtarzalny w całym świecie, więc można go użyć do identyfikacji konkretnej instancji aplikacji. Aby uniknąć problemów związanych z połączeniem identyfikatora w różnych aplikacjach, przechowuj identyfikatory GUID w pamięci wewnętrznej, a nie w pamięci zewnętrznej (wspólnej). Więcej informacji znajdziesz na stronie omówienia miejsca na dane i pliki.
Nie działają z adresami MAC
Adresy MAC są globalnie unikalne, nie można ich zresetować i przetrwają po przywróceniu ustawień fabrycznych. Z tego powodu, aby chronić prywatność użytkowników, w wersjach Androida 6 i wyższych dostęp do adresów MAC jest ograniczony do aplikacji systemowych. Aplikacje innych firm nie mają do nich dostępu.
Zmiany dotyczące dostępności adresu MAC w Androidzie 11
W przypadku aplikacji kierowanych na Androida 11 lub nowszego randomizacja adresów MAC w sieciach Passpoint jest realizowana na podstawie profilu Passpoint, który generuje unikalny adres MAC na podstawie tych pól:
- Pełna i jednoznaczna nazwa domeny
- Obszar
- Dane logowania oparte na danych logowania użytych w profilu Passpoint:
- Dane logowania użytkownika: nazwa użytkownika
- Dane logowania do certyfikatu: cert i typ certyfikatu
- Dane logowania do karty SIM: typ EAP i IMSI
Aplikacje bez uprawnień nie mają też dostępu do adresu MAC urządzenia. Tylko interfejsy sieciowe z adresem IP są widoczne. Wpływa to na metody getifaddrs()
i NetworkInterface.getHardwareAddress()
, a także na wysyłanie wiadomości Netlink RTM_GETLINK
.
Poniżej znajdziesz listę sposobów, w jakie ta zmiana wpływa na aplikacje:
NetworkInterface.getHardwareAddress()
zwraca wartość null dla każdego interfejsu.- Aplikacje nie mogą używać funkcji
bind()
w gniazdachNETLINK_ROUTE
. - Polecenie
ip
nie zwraca informacji o interfejsach. - Aplikacje nie mogą wysyłać wiadomości
RTM_GETLINK
.
Pamiętaj, że większość deweloperów powinna używać interfejsów API wyższego poziomu w ConnectivityManager
zamiast interfejsów API niższego poziomu, takich jak NetworkInterface
, getifaddrs()
czy Netlink. Na przykład aplikacja, która potrzebuje aktualnych informacji o bieżących trasach, może uzyskać te informacje, nasłuchując zmian w sieci za pomocą interfejsu ConnectivityManager.registerNetworkCallback()
i wywoływania powiązanego z nią interfejsu LinkProperties.getRoutes()
.
Cechy identyfikatorów
System operacyjny Android ma kilka identyfikatorów o różnych cechach działania. Którego identyfikatora użyć, zależy od tego, jak te cechy pasują do Twojego przypadku użycia. Te cechy mają jednak również wpływ na prywatność, dlatego ważne jest, aby zrozumieć, jak te cechy wzajemnie na siebie oddziałują.
Zakres
Zakres identyfikatora wyjaśnia, które systemy mają dostęp do identyfikatora. Zakres identyfikatora Androida występuje zwykle w 3 wersjach:
- Pojedyncza aplikacja: identyfikator jest wewnętrzny i niedostępny dla innych aplikacji.
- Grupa aplikacji: identyfikator jest dostępny dla wstępnie zdefiniowanej grupy powiązanych aplikacji.
- Urządzenie: identyfikator jest dostępny dla wszystkich aplikacji zainstalowanych na urządzeniu.
Im szerszy zakres przydziela identyfikator, tym większe ryzyko, że zostanie on wykorzystany do śledzenia. Jeśli natomiast dostęp do identyfikatora ma tylko jedna instancja aplikacji, nie można go używać do śledzenia urządzenia w ramach transakcji w różnych aplikacjach.
możliwość resetowania i trwałość.
Możliwość zresetowania i trwałość określają czas trwania identyfikatora oraz wyjaśniają, jak można go zresetować. Typowe uruchamiane resety to: resety w aplikacji, resety w Ustawieniach systemu, resety podczas uruchamiania i resety podczas instalacji. Identyfikatory Androida mogą mieć różny czas trwania, ale zwykle zależy to od sposobu resetowania identyfikatora:
- Tylko na sesję: nowy identyfikator jest używany za każdym razem, gdy użytkownik ponownie uruchamia aplikację.
- Instalacja i resetowanie: nowy identyfikator jest używany za każdym razem, gdy użytkownik odinstaluje i ponownie zainstaluje aplikację.
- Zresetowanie do ustawień fabrycznych: nowy identyfikator jest używany za każdym razem, gdy użytkownik zresetuje urządzenie do ustawień fabrycznych.
- Trwałość FDR: dokument tożsamości powróci do ustawień fabrycznych.
Możliwość zresetowania umożliwia użytkownikom utworzenie nowego identyfikatora, który nie jest powiązany z żadnymi istniejącymi informacjami o profilu. Im dłużej i bardziej niezawodnie identyfikator pozostaje na urządzeniu, np. w przypadku identyfikatorów, które nie są usuwane po przywracaniu do ustawień fabrycznych, tym większe jest ryzyko długotrwałego śledzenia użytkownika. Jeśli identyfikator zostanie zresetowany po ponownym zainstalowaniu aplikacji, zmniejszy to jego trwałość i zapewni możliwość zresetowania identyfikatora, nawet jeśli użytkownik nie będzie mógł tego zrobić w aplikacji ani w ustawieniach systemu.
Unikalność
Unikalność określa prawdopodobieństwo wystąpienia kolizji, czyli czy w powiązanym zakresie występują identyczne identyfikatory. Na najwyższym poziomie globalnie unikalny identyfikator nigdy nie powoduje kolizji, nawet na innych urządzeniach lub w innych aplikacjach.
W przeciwnym razie poziom unikalności zależy od entropii identyfikatora i źródła losowości użytego do jego utworzenia. Na przykład prawdopodobieństwo kolizji jest znacznie wyższe w przypadku losowych identyfikatorów z datą instalacji (np. 2019-03-01
) niż w przypadku identyfikatorów z datą instalacji w formacie Unix (np. 1551414181
).
Ogólnie identyfikatory kont użytkowników można uznać za unikalne. Oznacza to, że każda kombinacja urządzenia i konta ma unikalny identyfikator. Z drugiej strony, im mniej unikalny jest identyfikator w populacji, tym większa ochrona prywatności, ponieważ jest mniej przydatny do śledzenia pojedynczego użytkownika.
Ochrona integralności i brak możliwości odrzucenia
Aby udowodnić, że powiązane urządzenie lub konto ma określone właściwości, możesz użyć identyfikatora, który trudno jest podrobić lub odtworzyć. Możesz na przykład udowodnić, że urządzenie nie jest urządzeniem wirtualnym używanym przez spamera. Trudno podrobić identyfikatory, które zapewniają też nieodrzucalność. Jeśli urządzenie podpisze wiadomość tajnym kluczem, trudno powiedzieć, że wiadomość została wysłana przez inne urządzenie. Może to być pożądane przez użytkownika, np. podczas uwierzytelniania płatności, lub niepożądana właściwość, na przykład gdy użytkownik wyśle wiadomość, której żałuje.
Typowe przypadki użycia i odpowiednie identyfikatory
Ta sekcja zawiera informacje o alternatywnych sposobach korzystania z identyfikatorów sprzętowych, takich jak IMEI. Odradzamy używanie identyfikatorów sprzętowych, ponieważ użytkownik nie może ich zresetować i są one przypisane do urządzenia. W wielu przypadkach wystarczy identyfikator aplikacji.
Konta
Stan przewoźnika
W takim przypadku aplikacja wchodzi w interakcję z funkcjami telefonu i tekstowania na urządzeniu, korzystając z konta operatora.
Zalecany identyfikator: IMEI, IMSI i line1
Dlaczego ta rekomendacja?
Używanie identyfikatorów sprzętowych jest dopuszczalne, jeśli jest wymagane do obsługi funkcji związanych z operatorem. Możesz na przykład używać tych identyfikatorów do przełączania się między operatorami komórkowymi lub slotami kart SIM albo do wysyłania SMS-ów przez IP (dla Line1) – konta użytkowników na podstawie karty SIM. W przypadku aplikacji bez uprawnień zalecamy jednak używanie logowania na konto w celu pobierania informacji o urządzeniu użytkownika po stronie serwera. Jednym z powodów jest to, że w Androidzie 6.0 (poziom interfejsu API 23) i nowszych tych identyfikatorów można używać tylko za pomocą uprawnienia w czasie wykonywania. Użytkownicy mogą wyłączyć to uprawnienie, więc aplikacja powinna odpowiednio obsługiwać takie wyjątki.
Stan subskrypcji mobilnej
W takim przypadku musisz powiązać funkcje aplikacji z określonymi subskrypcjami usług mobilnych na urządzeniu. Możesz na przykład wymagać weryfikacji dostępu do niektórych funkcji aplikacji premium na podstawie subskrypcji mobilnych urządzenia za pomocą karty SIM.
Zalecane identyfikatory: Subscription ID API do identyfikowania kart SIM używanych na urządzeniu.
Identyfikator subskrypcji zawiera wartość indeksu (począwszy od 1) umożliwiającą jednoznaczną identyfikację zainstalowanych kart SIM (w tym kart fizycznych i elektronicznych) używanych na urządzeniu. Dzięki temu identyfikatorowi aplikacja może powiązać swoje funkcje z różnymi informacjami o subskrypcji danej karty SIM. Ta wartość jest stabilna dla danej karty SIM, chyba że urządzenie zostało zresetowane do ustawień fabrycznych. Może się jednak zdarzyć, że ta sama karta SIM ma inny identyfikator subskrypcji na różnych urządzeniach lub że różne karty SIM mają ten sam identyfikator na różnych urządzeniach.
Dlaczego ta rekomendacja?
Niektóre aplikacje mogą obecnie używać do tego celu identyfikatora ICCID. Identyfikator ICC jest unikalny na całym świecie i nie można go zresetować, dlatego od Androida 10 dostęp do niego jest ograniczony do aplikacji z uprawnieniami READ_PRIVILEGED_PHONE_STATE
. Od Androida 11 dostęp do identyfikatora ICCID jest jeszcze bardziej ograniczony za pomocą interfejsu API getIccId()
, niezależnie od docelowego poziomu interfejsu API aplikacji. Aplikacje, których dotyczy ta zmiana, powinny przejść na używanie identyfikatora subskrypcji.
Logowanie jednokrotne
W takim przypadku aplikacja umożliwia logowanie jednokrotne, co pozwala użytkownikom powiązać istniejące konto z Twoją organizacją.
Zalecane identyfikatory: konta zgodne z kontem menedżera, takie jak łączenie z kontem Google.
Dlaczego ta rekomendacja?
Połączenie z kontem Google umożliwia użytkownikom powiązanie istniejącego konta Google z Twoją aplikacją, zapewniając płynny i bezpieczniejszy dostęp do usług i produktów Twojej organizacji. Dodatkowo możesz zdefiniować niestandardowe zakresy uprawnień OAuth, aby udostępniać tylko niezbędne dane. Dzięki temu zwiększysz zaufanie użytkowników, wyraźnie określając sposób wykorzystywania ich danych.
Reklamy
Kierowanie
W takim przypadku aplikacja tworzy profil zainteresowań użytkownika, aby wyświetlać mu trafniejsze reklamy.
Zalecane identyfikatory: jeśli Twoja aplikacja używa identyfikatora do wyświetlania reklam i przesyła lub publikuje aplikację w Google Play, musi to być identyfikator wyświetlania reklam.
Dlaczego ta rekomendacja?
To zastosowanie związane z reklamami, które może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji. Dlatego użycie identyfikatora wyświetlania reklam jest najbardziej odpowiednim rozwiązaniem. Zgodnie z Zasadami dotyczącymi treści dla deweloperów w Google Play identyfikator wyświetlania reklam jest wymagany w przypadku zastosowań reklamowych, ponieważ użytkownik może go zresetować.
Niezależnie od tego, czy udostępniasz dane użytkownika w aplikacji, jeśli zbierasz i używasz je do wyświetlania reklam, musisz zadeklarować cel reklam w sekcji Bezpieczeństwo danych na stronie Zawartość aplikacji w Konsoli Play.
Pomiary
W tym przypadku Twoja aplikacja tworzy profil użytkownika na podstawie jego zachowania w aplikacjach organizacji na tym samym urządzeniu.
Zalecany identyfikator: identyfikator wyświetlania reklam lub interfejsy API odsyłaczy instalacji z Google Play
Dlaczego ta rekomendacja?
To zastosowanie związane z reklamami, które może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji. Dlatego użycie identyfikatora wyświetlania reklam jest najbardziej odpowiednim rozwiązaniem. Jeśli używasz identyfikatora do celów reklamowych, musi to być identyfikator wyświetlania reklam, ponieważ użytkownik może go zresetować. Więcej informacji znajdziesz w Polityce treści dla deweloperów Google Play.
Konwersje
W tym przypadku śledzisz konwersje, aby sprawdzić, czy Twoja strategia marketingowa jest skuteczna.
Zalecany identyfikator: identyfikator wyświetlania reklam lub interfejsy API odsyłaczy instalacji z Google Play
Dlaczego ta rekomendacja?
Jest to przypadek użycia związany z reklamami, który może wymagać identyfikatora, który jest dostępny w różnych aplikacjach organizacji, dlatego najlepszym rozwiązaniem będzie identyfikator wyświetlania reklam. Zgodnie z Zasadami dotyczącymi treści dla deweloperów w Google Play identyfikator wyświetlania reklam jest wymagany w przypadku zastosowań reklamowych, ponieważ użytkownik może go zresetować.
Remarketing
W tym przypadku aplikacja wyświetla reklamy na podstawie wcześniejszych zainteresowań użytkownika.
Zalecane identyfikatory: identyfikator wyświetlania reklam
Dlaczego ta rekomendacja?
To zastosowanie związane z reklamami, które może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji. Dlatego użycie identyfikatora wyświetlania reklam jest najbardziej odpowiednim rozwiązaniem. Zgodnie z Zasadami dotyczącymi treści dla deweloperów w Google Play identyfikator wyświetlania reklam jest wymagany w przypadku zastosowań reklamowych, ponieważ użytkownik może go zresetować.
Analityka aplikacji
W takim przypadku aplikacja ocenia zachowanie użytkownika, aby określić:
- Które inne produkty lub aplikacje Twojej organizacji mogą być odpowiednie dla użytkownika.
- Jak zachęcić użytkowników do korzystania z aplikacji.
- Mierz statystyki i statystyki analityczne dotyczące niezalogowanych lub anonimowych użytkowników.
Możliwe rozwiązania:
- Identyfikator zestawu aplikacji: identyfikator zestawu aplikacji umożliwia analizowanie zachowań użytkownika w różnych aplikacjach należących do Twojej organizacji, o ile nie używasz danych użytkownika do celów reklamowych. Jeśli kierujesz reklamy na urządzenia korzystające z usług Google Play, zalecamy użycie identyfikatora zestawu aplikacji.
- Identyfikator Firebase (FID): identyfikator FID jest ograniczony do aplikacji, która go tworzy, co uniemożliwia śledzenie użytkowników w różnych aplikacjach. Można go też łatwo zresetować, ponieważ użytkownik może wyczyścić dane aplikacji lub ponownie ją zainstalować. Proces tworzenia identyfikatora FID jest prosty. Zapoznaj się z instrukcją instalacji Firebase.
Tworzenie aplikacji
Zgłaszanie awarii
W takim przypadku aplikacja zbiera dane o tym, kiedy i dlaczego ulega awarii na urządzeniach użytkownika.
Zalecany identyfikator: FID lub identyfikator zestawu aplikacji.
Dlaczego ta rekomendacja?
FID jest ograniczony do aplikacji, która go tworzy, co uniemożliwia śledzenie użytkowników w różnych aplikacjach. Można go również łatwo zresetować, ponieważ użytkownik może wyczyścić dane aplikacji lub ponownie zainstalować aplikację. Proces tworzenia identyfikatora FID jest prosty; patrz przewodnik po instalacji Firebase. Identyfikator zestawu aplikacji umożliwia analizowanie zachowania użytkownika w wielu aplikacjach należących do organizacji, o ile nie używasz danych użytkownika do celów reklamowych.
Raportowanie wyników
W takim przypadku aplikacja zbiera dane o wydajności, takie jak czas wczytywania i zużycie baterii, aby poprawić jakość aplikacji.
Zalecany identyfikator: Monitorowanie wydajności Firebase
Dlaczego ta rekomendacja?
Monitorowanie wydajności Firebase pomaga skupić się na danych, które mają dla Ciebie największe znaczenie, i sprawdzać wpływ niedawnej zmiany w aplikacji.
Testowanie aplikacji
W takim przypadku aplikacja ocenia wrażenia użytkownika na potrzeby testowania lub debugowania.
Zalecany identyfikator: FID lub identyfikator zestawu aplikacji.
Dlaczego ta rekomendacja?
Identyfikator FID jest ograniczony do aplikacji, która go utworzyła, i zapobiega użyciu go do śledzenia użytkowników w różnych aplikacjach. Można go również łatwo zresetować, ponieważ użytkownik może wyczyścić dane aplikacji lub ponownie zainstalować aplikację. Proces tworzenia identyfikatora FID jest prosty; patrz przewodnik po instalacji Firebase. Identyfikator zestawu aplikacji umożliwia analizowanie zachowań użytkownika w różnych aplikacjach należących do Twojej organizacji, o ile nie używasz danych użytkownika do celów reklamowych.
Instalacja na różnych urządzeniach
W takim przypadku aplikacja musi rozpoznać właściwą instancję, gdy jest zainstalowana na kilku urządzeniach tego samego użytkownika.
Zalecany identyfikator: FID lub GUID
Skąd ta rekomendacja?
Identyfikator FID został zaprojektowany specjalnie do tego celu. Jego zakres jest ograniczony do aplikacji, więc nie można go używać do śledzenia użytkowników w różnych aplikacjach. Po ponownym zainstalowaniu aplikacji identyfikator jest resetowany. W rzadkich przypadkach, gdy identyfikator FID jest niewystarczający, możesz użyć identyfikatora GUID.
Bezpieczeństwo
Wykrywanie nadużyć
W tym przypadku próbujesz wykryć wiele fałszywych urządzeń atakujących Twoje usługi zaplecza.
Zalecany identyfikator: token integralności interfejsu Play Integrity API.
Dlaczego ta rekomendacja?
Aby sprawdzić, czy żądanie pochodzi z prawdziwego urządzenia z Androidem, a nie z emulacji lub innego kodu podszywającego się pod inne urządzenie, użyj interfejsu Play Integrity API.
oszustwo reklamowe,
W tym przypadku aplikacja sprawdza, czy wyświetlenia i działania użytkownika są autentyczne i można je zweryfikować.
Zalecany identyfikator: identyfikator wyświetlania reklam
Dlaczego ta rekomendacja?
Zgodnie z zasadami dotyczącymi treści dla deweloperów w Google Play identyfikator wyświetlania reklam jest wymagany w przypadku zastosowań reklamowych, ponieważ użytkownik może go zresetować.
Zarządzanie prawami cyfrowymi (DRM)
W tym przypadku aplikacja chce chronić nieuczciwy dostęp do własności intelektualnej lub płatnych treści.
Zalecany identyfikator: stosowanie identyfikatorów FID lub GUID wymusza na użytkowniku ponowną instalację aplikacji w celu obejścia limitów dotyczących treści, co jest wystarczające, aby zniechęcić większość osób. Jeśli to nie zapewnia wystarczającej ochrony, Android udostępnia interfejs DRM API, który umożliwia ograniczenie dostępu do treści. Zawiera on identyfikator pliku APK, czyli identyfikator Widevine.
Preferencje użytkownika
W tym przypadku aplikacja zapisuje stan użytkownika na poszczególnych urządzeniach, zwłaszcza w przypadku użytkowników, którzy nie są zalogowani. Możesz przenieść ten stan do innej aplikacji, która jest podpisana tym samym kluczem na tym samym urządzeniu.
Zalecany identyfikator: FID lub GUID
Skąd ta rekomendacja?
Nie zalecamy przechowywania informacji podczas ponownego instalowania aplikacji, ponieważ użytkownicy mogą chcieć zresetować swoje preferencje przez ponowne zainstalowanie aplikacji.