Sprawdzone metody używania unikalnych identyfikatorów

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:

  1. W miarę możliwości wybieraj identyfikatory, które użytkownik może zresetować. Aplikacja może realizować większość przypadków użycia, nawet jeśli używa identyfikatorów innych niż nieresetowalne identyfikatory sprzętowe.
  2. Unikaj korzystania z identyfikatorów sprzętowych. W większości przypadków możesz uniknąć używania identyfikatorów sprzętowych, takich jak międzynarodowy 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, mieć specjalne uprawnienia operatora lub mieć uprawnienie READ_PRIVILEGED_PHONE_STATE.

  3. Identyfikatora wyświetlania reklam na urządzeniach z Androidem używaj tylko do profilowania użytkowników lub do celów reklamowych. 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, zrób to tylko za wyraźną zgodą użytkownika.

  4. Nie łącz resetów identyfikatora wyświetlania reklam.

  5. W miarę możliwości używaj identyfikatora instalacji Firebase (FID) lub prywatnie przechowywanego identyfikatora GUID 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.

  6. Aby zminimalizować ryzyko związane z prywatnością, używaj interfejsów API odpowiednich do danego przypadku użycia. 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 określenie, czy urządzenie jest autentyczne, bez narażania 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 o kilku kwestiach, o których warto pamiętać podczas korzystania z tego identyfikatora:

Zawsze respektuj intencje użytkownika dotyczące resetowania identyfikatora wyświetlania reklam. Nie łącz resetów użytkownika za pomocą innego identyfikatora ani odcisku palca, aby połączyć kolejne identyfikatory wyświetlania reklam bez zgody użytkownika. Zasady Google Play dotyczące treści dla deweloperów:

„Po zresetowaniu nowego identyfikatora wyświetlania reklam nie można połączyć z poprzednim identyfikatorem wyświetlania reklam ani z danymi uzyskanymi na podstawie poprzedniego identyfikatora bez wyraźnej zgody użytkownika”.

Zawsze uwzględniaj powiązany parametr 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 nie obchodzić 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."

Zapoznaj się z zasadami prywatności i zabezpieczeniami powiązanymi z pakietami SDK, które używasz i które dotyczą korzystania z identyfikatora wyświetlania reklam. Jeśli np. przekazujesz parametr true do metody enableAdvertisingIdCollection() w pakiecie SDK Google Analytics, pamiętaj, aby zapoznać się ze wszystkimi obowiązującymi zasadami dotyczącymi pakietu SDK Analytics i ich przestrzegać.

Pamiętaj też, że zgodnie z Zasadami Google Play dotyczącymi treści dla deweloperów identyfikator wyświetlania reklam „nie może być powiązany z informacjami umożliwiającymi identyfikację ani wiązany z żadnym stał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
TABLE-02
account_id name dob country

W tym przykładzie kolumna ad_id może być złączana z informacjami umożliwiającymi identyfikację za pomocą kolumny account_id w obu tabelach, co w przypadku braku wyraźnej zgody użytkowników byłoby niezgodne z Zasadami treści dla deweloperów Google Play.

Pamiętaj, że połączenia między identyfikatorem reklamodawcy a danymi PII nie zawsze są tak wyraźne. Możliwe jest, że w tabeli z kluczem PII i identyfikatorem reklamy występują „quasi-identyfikatory”, które również powodują 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
TABLE-02
timestamp demo account_id dev_model name

W tym przypadku, gdy zdarzenia kliknięcia są wystarczająco rzadkie, nadal można wykonać złączenie 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ń tego samego modelu.

Inne rozwiązania:

  • Nie projektuj tabel, które wyraźnie łączą informacje umożliwiające identyfikację z identyfikatorami wyświetlania reklam. W pierwszym przykładzie powyżej oznacza to, że kolumna account_id nie jest uwzględniana 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 polega na:

    1. 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.
    2. Wprowadź rejestrowanie dostępu i kontrolowanie, aby wykrywać i zarządzać wyjątkami od tej reguły.

Więcej informacji o odpowiedzialnym korzystaniu z identyfikatorów 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ł on utworzony. Można go (względnie) łatwo zresetować, ponieważ jest on trwały tylko dopóki 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.installationsdokumentacji interfejsu API.

W przypadku, gdy użycie identyfikatora FID nie jest praktyczne, możesz też użyć niestandardowych globalnie unikalnych identyfikatorów (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 (FQDN)
  • Obszar
  • Dane logowania na podstawie 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 identyfikator IMSI

Aplikacje bez uprawnień nie mają też dostępu do adresu MAC urządzenia. Tylko interfejsy sieciowe z adresem IP są widoczne. Ma to wpływ na metody getifaddrs() i NetworkInterface.getHardwareAddress(), a także na wysyłanie wiadomości RTM_GETLINK Netlink.

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 gniazdach NETLINK_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 ConnectivityManager zamiast interfejsów API niższego poziomu, takich jak NetworkInterface, getifaddrs() lub Netlink sockets. 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 udostępnia kilka identyfikatorów z różnymi cechami zachowania. 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 określa, 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 zdefiniowanej wstępnie grupy powiązanych aplikacji.
  • Urządzenie: identyfikator jest dostępny dla wszystkich aplikacji zainstalowanych na urządzeniu.

Im szerszy zakres działania ma identyfikator, tym większe ryzyko jego wykorzystania 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óżną żywotność, ale zwykle jest ona związana z tym, jak zresetowano identyfikator:

  • 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.
  • FDR-persistent: identyfikator przetrwa przywracanie 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 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 występowania identycznych identyfikatorów w powiązanym zakresie. Na najwyższym poziomie globalnie unikalny identyfikator nigdy nie koliduje, 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 nieodrzucalności

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ż nieodwołalność. Jeśli urządzenie podpisze wiadomość za pomocą tajnego klucza, trudno będzie twierdzić, że wiadomość została wysłana z urządzenia innej osoby. Nieodwołalność może być pożądaną właściwością, na przykład podczas uwierzytelniania płatności, ale może też być niepożądana, na przykład gdy użytkownik wysyła 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. Nie zalecamy używania identyfikatorów sprzętowych, ponieważ użytkownik nie może ich zresetować, a ich zakres ogranicza się do urządzenia. W wielu przypadkach wystarczy identyfikator aplikacji.

Konta

Stan przewoźnika

W tym przypadku aplikacja wchodzi w interakcję z funkcjami telefonu i tekstowania na urządzeniu za pomocą konta operatora.

Zalecane identyfikatory: IMEI, IMSI i wiersz 1

Dlaczego ta rekomendacja?

Korzystanie z 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 ten sam numer telefonu komórkowego ma inny identyfikator subskrypcji na różnych urządzeniach lub że różne numery telefonu komórkowego 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 uprawnieniem 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 Twoja aplikacja oferuje funkcję jednokrotnego logowania, która umożliwia użytkownikom powiązanie istniejącego konta 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 tym 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 takim przypadku Twoja aplikacja tworzy profil użytkownika na podstawie jego zachowań 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?

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ć.

Remarketing

W tym przypadku aplikacja wyświetla reklamy na podstawie wcześniejszych zainteresowań użytkownika.

Zalecany identyfikator: 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 tym przypadku aplikacja ocenia zachowanie użytkownika, aby pomóc Ci 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 tym 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 też łatwo zresetować, ponieważ użytkownik może usunąć dane aplikacji lub ponownie ją zainstalować. Proces tworzenia identyfikatora FID jest prosty. Więcej informacji znajdziesz w przewodniku 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.

Raportowanie skuteczności

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 są dla Ciebie najważniejsze, oraz przetestować wpływ ostatniej 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?

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 usunąć dane aplikacji lub ponownie ją zainstalować. Proces tworzenia identyfikatora FID jest prosty. Więcej informacji znajdziesz w przewodniku 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 wielu 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

Dlaczego 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 Twoja aplikacja chce chronić przed oszustwem dostęp do własności intelektualnej lub płatnych treści.

Zalecane identyfikatory: użycie identyfikatora FID lub GUID zmusza użytkownika do ponownego zainstalowania aplikacji, aby obejść ograniczenia treści. Jest to wystarczająca zachęta, 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 takim 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

Dlaczego ta rekomendacja?

Nie zalecamy przechowywania informacji podczas ponownego instalowania aplikacji, ponieważ użytkownicy mogą chcieć zresetować swoje preferencje przez ponowne zainstalowanie aplikacji.