Sprawdzone metody używania unikalnych identyfikatorów

Ten dokument zawiera wskazówki, jak wybrać odpowiednie identyfikatory dla aplikacji na podstawie danego przypadku użycia.

Ogólne informacje o uprawnieniach Androida znajdziesz w omówieniu uprawnień. Sprawdzone metody korzystania z uprawnień Androida znajdziesz w artykule Sprawdzone metody dotyczące uprawnień aplikacji.

Sprawdzone metody korzystania z identyfikatorów Androida

Aby chronić prywatność użytkowników, używaj najbardziej restrykcyjnego identyfikatora, który spełnia wymagania Twojej aplikacji. W szczególności stosuj te sprawdzone metody:

  1. W miarę możliwości wybierz identyfikatory, które użytkownik może zresetować. Aplikacja osiąga większość swoich zastosowań, nawet jeśli używa identyfikatorów innych niż identyfikatory sprzętowe, których nie można zresetować.
  2. Unikaj używania identyfikatorów sprzętowych. W większości przypadków możesz uniknąć używania identyfikatorów sprzętowych, takich jak IMEI (International Mobile Equipment Identity), bez ograniczania liczby wymaganych funkcji.

    Android 10 (poziom interfejsu API 29) nakłada ograniczenia dotyczące identyfikatorów, których nie można zresetować, takich jak IMEI i numer seryjny. Aby uzyskać dostęp do tych identyfikatorów, Twoja aplikacja musi być aplikacją właściciela urządzenia lub profilu, mieć specjalne uprawnienia operatora lub uprawnienia READ_PRIVILEGED_PHONE_STATE z podwyższonymi uprawnieniami.

  3. Używaj identyfikatora wyświetlania reklam tylko do profilowania użytkownika lub do stosowania reklam. Używając identyfikatora wyświetlania reklam, zawsze przestrzegaj wyborów użytkowników dotyczących śledzenia reklam. Jeśli musisz powiązać identyfikator wyświetlania reklam z informacjami umożliwiającymi identyfikację osoby, zrób to tylko za wyraźną zgodą użytkownika.

  4. Nie łącz resetowania identyfikatorów wyświetlania reklam.

  5. Jeśli jest to możliwe, używaj identyfikatora instalacji Firebase (FID) lub przechowywanego prywatnie identyfikatora GUID, gdy jest to możliwe do wszystkich innych zastosowań z wyjątkiem zapobiegania oszustwom związanym z płatnościami i nawiązywania połączeń telefonicznych. W większości przypadków, w których nie występują reklamy, wystarczy identyfikator FID lub GUID.

  6. Używaj interfejsów API, które są odpowiednie w Twoim przypadku użycia, aby zminimalizować ryzyko związane z prywatnością. Używaj interfejsu DRM API do ochrony treści o wysokiej wartości, a 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 omówiono te reguły w kontekście tworzenia aplikacji na Androida.

Korzystanie z identyfikatorów wyświetlania reklam

Identyfikator wyświetlania reklam to identyfikator, który użytkownik może zresetować, i jest odpowiedni w przypadkach użycia reklam. Trzeba jednak pamiętać o kilku ważnych kwestiach:

Zawsze respektuj intencję użytkownika dotyczącą zresetowania identyfikatora wyświetlania reklam. Nie łącz ustawień resetowania użytkowników za pomocą innego identyfikatora lub odcisku cyfrowego, aby połączyć kolejne identyfikatory wyświetlania reklam bez zgody użytkownika. Polityka treści w Google Play dla deweloperów określa:

„...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 respektuj powiązaną z nimi flagę dotyczącą reklam spersonalizowanych. Identyfikatory wyświetlania reklam można konfigurować w taki sposób, aby użytkownicy mogli ograniczyć zakres śledzenia powiązanych z danym identyfikatorem. Zawsze używaj metody AdvertisingIdClient.Info.isLimitAdTrackingEnabled(), aby mieć pewność, że nie omijasz życzeń użytkowników. Polityka treści dla deweloperów w Google Play określa:

„...należy stosować się do wybranego przez użytkownika ustawienia rezygnacji z reklam opartych na zainteresowaniach” lub „Rezygnacja z personalizacji reklam”. 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 oraz ochronę i wykrywanie oszustw."

Zapoznaj się z zasadami dotyczącymi prywatności i bezpieczeństwa związanymi z używanymi przez Ciebie pakietami SDK. Jeśli na przykład przekazujesz metodę true do metody enableAdvertisingIdCollection() z pakietu SDK Google Analytics, zapoznaj się ze wszystkimi obowiązującymi zasadami dotyczącymi pakietu SDK Analytics i przestrzegaj ich.

Pamiętaj też, że zgodnie z Polityką treści dla deweloperów w Google Play identyfikator wyświetlania reklam „nie może być połączony z informacjami umożliwiającymi identyfikację osoby ani z żadnym stałym identyfikatorem urządzenia (takim jak SSAID, adres MAC, IMEI itp.)”.

Załóżmy na przykład, że chcesz zbierać informacje, aby wypełnić tabele bazy danych tymi kolumnami:

TABELA-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ę za pomocą kolumny account_id w obu tabelach, co byłoby naruszenie Polityki treści dla deweloperów w Google Play, jeśli nie uzyskasz wyraźnej zgody użytkowników.

Pamiętaj, że połączenie między identyfikatorem reklamodawcy a informacjami umożliwiającymi identyfikację nie zawsze jest jednoznaczne. Mogą występować „pozorne identyfikatory”, które występują zarówno w tabelach informacji umożliwiających identyfikację, jak i w tabelach z kluczami reprezentującymi identyfikator reklamy, co również jest przyczyną problemów. Załóżmy na przykład, że zmieniamy tabele TABLE-01 i TABLE-02 w następujący sposób:

TABELA-01
timestamp ad_id clickid dev_model
TABELA-02
timestamp demo account_id dev_model name

W takim przypadku, mimo że występują wystarczająco rzadkie zdarzenia kliknięcia, nadal można złączać informacje umożliwiające identyfikację reklamodawcy z tabeli – 01 z informacjami umożliwiającymi identyfikację użytkownika z tabeli 02, używając sygnatury czasowej zdarzenia i modelu urządzenia.

Chociaż często trudno jest zagwarantować, że w zbiorze danych nie ma takich pozornych identyfikatorów, można uniknąć najbardziej oczywistego ryzyka złączania, uogólniając w miarę możliwości unikalne dane. W poprzednim przykładzie oznaczałoby to zmniejszenie dokładności sygnatury czasowej, dzięki czemu dla każdej sygnatury czasowej pojawia się wiele urządzeń z tym samym modelem.

Inne rozwiązania to:

  • Nie projektowanie tabel, które wyraźnie łączą informacje umożliwiające identyfikację osób z identyfikatorami wyświetlania reklam. W pierwszym przykładzie powyżej oznaczałoby to, że w tabeli 01 nie uwzględniono kolumny account_id.

  • Segregowanie i monitorowanie list kontroli dostępu dla użytkowników lub ról, które mają dostęp zarówno do danych kluczowych identyfikatora wyświetlania reklam, jak i do informacji umożliwiających identyfikację osób. Dzięki ścisłej kontroli nad możliwością jednoczesnego dostępu do obu źródeł (np. przez złączenie tabel) zmniejszasz ryzyko powiązania identyfikatora wyświetlania reklam z informacjami umożliwiającymi identyfikację. Ogólnie rzecz biorąc, kontrolowanie dostępu oznacza wykonywanie następujących czynności:

    1. Zachowaj rozłączanie list kontroli dostępu (ACL) dla danych powiązanych z identyfikatorem reklamodawcy i informacji umożliwiających identyfikację, aby zminimalizować liczbę osób lub ról, które znajdują się na obu listach kontroli dostępu.
    2. Zaimplementuj logowanie i kontrolę dostępu, aby wykrywać wyjątki od tej reguły i nimi zarządzać.

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 identyfikowania instancji aplikacji na urządzeniu jest użycie identyfikatora instalacji Firebase (FID). Jest to zalecane rozwiązanie w większości przypadków, które nie są reklamami. Dostęp do tego identyfikatora ma tylko instancja aplikacji, dla której został on udostępniony. Identyfikator można (względnie) można zresetować, ponieważ pozostaje on stosowany tylko wtedy, gdy aplikacja jest zainstalowana.

W efekcie identyfikatory sprzętowe o zakresie na poziomie urządzenia mają lepsze właściwości ochrony prywatności niż identyfikatory sprzętu, których nie można zresetować. Więcej informacji znajdziesz w dokumentacji interfejsu API firebase.installations.

W sytuacjach, gdy FID nie jest praktyczny, możesz też użyć niestandardowych, unikalnych globalnie identyfikatorów (GUID), aby jednoznacznie identyfikować instancję aplikacji. Najprostszym sposobem jest wygenerowanie własnego identyfikatora GUID przy użyciu następującego kodu:

Kotlin

var uniqueID = UUID.randomUUID().toString()

Java

String uniqueID = UUID.randomUUID().toString();

Jest on unikalny globalnie, więc może służyć do identyfikowania konkretnej instancji aplikacji. Aby uniknąć problemów związanych z łączeniem identyfikatora w różnych aplikacjach, przechowuj identyfikatory GUID w pamięci wewnętrznej, a nie w pamięci zewnętrznej (współdzielonej). Więcej informacji znajdziesz na stronie Omówienie danych i miejsca na pliki.

Nie działa z adresami MAC

Adresy MAC są globalnie unikalne, nie mogą być resetowane przez użytkownika i nie ulegną zmianie po przywróceniu ustawień fabrycznych. Z tego względu, aby chronić prywatność użytkowników, na urządzeniach z Androidem w wersji 6 i nowszych dostęp do adresów MAC jest ograniczony do aplikacji systemowych. Aplikacje innych firm nie mają do nich dostępu.

Zmiany w dostępności adresów MAC w Androidzie 11

W aplikacjach kierowanych na Androida 11 i nowsze wersje randomizacja MAC sieci Passpoint jest wykonywana na profilu Passpoint. Powoduje to wygenerowanie unikalnego adresu MAC na podstawie tych pól:

  • Pełna i jednoznaczna nazwa domeny (FQDN)
  • Obszar
  • Dane logowania na podstawie danych logowania używanych w profilu Passpoint:
    • User Credentials (Dane logowania użytkownika): nazwa użytkownika
    • Dane logowania certyfikatu: certyfikat 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. Widoczne są tylko interfejsy sieciowe z adresem IP. Wpływa to na metody getifaddrs() i NetworkInterface.getHardwareAddress(), a także na wysyłanie RTM_GETLINK wiadomości Netlink.

Oto lista elementów, na które wpływa ta zmiana w przypadku aplikacji:

  • 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 z kategorii RTM_GETLINK.

Pamiętaj, że większość deweloperów powinna używać interfejsów API wyższego poziomu ConnectivityManager, a nie interfejsów API niższego poziomu, takich jak NetworkInterface, getifaddrs() czy gniazda 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ą funkcji ConnectivityManager.registerNetworkCallback() i wywołając powiązane z nią połączenie LinkProperties.getRoutes().

Cechy identyfikatorów

System operacyjny Android oferuje szereg identyfikatorów o odmiennych cechach działania. Który identyfikator należy zastosować w danej sytuacji. Te cechy wiążą się jednak z ochroną prywatności, dlatego ważne jest, by zrozumieć, jak te cechy wzajemnie się ze sobą oddziałują.

Zakres

Zakres identyfikatora określa, które systemy mają do niego dostęp. Zakres identyfikatora Androida może mieć 3 rodzaje:

  • Pojedyncza aplikacja: identyfikator jest wewnętrzny w aplikacji i nie jest dostę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 przyznany identyfikatorowi, tym większe ryzyko, że będzie on używany do śledzenia. I odwrotnie – jeśli identyfikator jest dostępny tylko dla jednej instancji aplikacji, nie można go wykorzystać do śledzenia urządzenia w ramach różnych transakcji w różnych aplikacjach.

Resetowanie i trwałość

Resetowanie i trwałość określają okres ważności identyfikatora i wyjaśniają, jak można go zresetować. Typowe wywołania resetowania to: resetowanie w aplikacji, resetowanie w ustawieniach systemu, resetowanie podczas uruchamiania i resetowanie po instalacji. Identyfikatory Androida mogą mieć różne okresy ważności, ale są zwykle związane ze sposobem ich resetowania:

  • Tylko sesja: nowy identyfikator jest używany za każdym razem, gdy użytkownik ponownie uruchomi aplikację.
  • Zainstaluj-resetowany: nowy identyfikator jest używany za każdym razem, gdy użytkownik odinstalowuje i ponownie instaluje aplikację.
  • Przywracanie do ustawień fabrycznych: nowy identyfikator jest używany za każdym razem, gdy użytkownik resetuje urządzenie do ustawień fabrycznych.
  • FDR: identyfikator może zostać przywrócony do ustawień fabrycznych.

Możliwość resetowania umożliwia użytkownikom utworzenie nowego identyfikatora, który nie będzie powiązany z żadnymi istniejącymi informacjami w profilu. Im dłużej i bardziej wiarygodnie będzie istnieć identyfikator (np. taki, który nie istnieje po przywróceniu ustawień fabrycznych), tym większe ryzyko, że użytkownik będzie podlegać długoterminowemu śledzeniu. Jeśli identyfikator zostanie zresetowany po ponownym zainstalowaniu aplikacji, zmniejszy to trwałość i będzie można go zresetować, nawet jeśli nie ma wyraźnej kontroli użytkownika umożliwiającej zresetowanie go z poziomu aplikacji lub ustawień systemu.

Wyjątkowość

Niepowtarzalność określa prawdopodobieństwo kolizji, czyli że w powiązanym zakresie istnieją identyczne identyfikatory. Na najwyższym poziomie unikalny identyfikator globalny nigdy nie dochodzi do kolizji, nawet na innych urządzeniach czy w aplikacjach. W przeciwnym razie poziom unikalności zależy od entropii identyfikatora i źródła losowości użytych do jego utworzenia. Na przykład prawdopodobieństwo zderzenia jest znacznie większe w przypadku identyfikatorów losowych, które zawierają datę instalacji w kalendarzu (np. 2019-03-01), niż w przypadku identyfikatorów, które są zapoczątkowane uniksową sygnaturą czasową instalacji (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 niepowtarzalny identyfikator. Z drugiej strony im mniej unikalny identyfikator znajduje się w populacji, tym lepsza jest ochrona prywatności, ponieważ staje się mniej przydatny do śledzenia pojedynczego użytkownika.

Ochrona integralności i niewiarygodność

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 sfałszować lub odtworzyć. Możemy na przykład udowodnić, że dane urządzenie nie jest urządzeniem wirtualnym wykorzystywanym przez spamera. Identyfikatory trudne do sfałszowania skutkują też brakiem powtarzalności. Jeśli urządzenie podpisze wiadomość przy użyciu tajnego klucza, trudno jest twierdzić, że wiadomość została wysłana przez inną osobę. Brak odpowiedzialności to coś, czego potrzebuje użytkownik, np. przy uwierzytelnianiu płatności, lub właściwość niepożądana, na przykład gdy użytkownik wysyła wiadomość, której żałuje.

Typowe przypadki użycia i właściwy identyfikator

W tej sekcji znajdziesz alternatywy dla korzystania z identyfikatorów sprzętowych (np. IMEI). Odradzamy korzystanie z identyfikatorów sprzętu, ponieważ użytkownik nie może ich zresetować i są one ograniczone do urządzenia. W wielu przypadkach wystarczy identyfikator o zakresie na poziomie aplikacji.

Konta

Stan operatora

W takim przypadku aplikacja współpracuje z telefonem urządzenia i korzysta z funkcji wysyłania SMS-ów z wykorzystaniem konta operatora.

Zalecany identyfikator: IMEI, IMSI i wiersz 1.

Dlaczego ta rekomendacja?

Wykorzystanie identyfikatorów sprzętowych jest dopuszczalne, jeśli jest wymagane do działania operatora. Można na przykład użyć tych identyfikatorów do przełączania się między operatorami sieci komórkowych lub gniazdami SIM albo do wysyłania SMS-ów przez adres IP (wiersz 1) – konta użytkowników korzystające z karty SIM. Jednak w przypadku aplikacji bez uprawnień zalecamy logowanie się 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 identyfikatorów tych można używać tylko za pomocą uprawnień w czasie działania. Użytkownicy mogą wyłączyć te uprawnienia, więc aplikacja powinna traktować te wyjątki z uznaniem.

Stan subskrypcji mobilnej

W takim przypadku musisz powiązać funkcje aplikacji z określonymi subskrypcjami usług mobilnych na urządzeniu. Na przykład może być konieczne zweryfikowanie przez kartę SIM dostępu do pewnych funkcji premium aplikacji na podstawie subskrypcji mobilnych.

Zalecany identyfikator: interfejs API identyfikatora subskrypcji do identyfikowania kart SIM używanych na urządzeniu.

Identyfikator subskrypcji zawiera wartość indeksu (liczącą od 1) do jednoznacznej identyfikacji zainstalowanych kart SIM (w tym 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 przywrócone do ustawień fabrycznych. Może się jednak zdarzyć, że ta sama karta SIM będzie miała inny identyfikator subskrypcji na różnych urządzeniach lub różne karty SIM będą miały ten sam identyfikator na różnych urządzeniach.

Dlaczego ta rekomendacja?

Niektóre aplikacje mogą obecnie używać do tego celu identyfikatora ICC. Identyfikator ICC jest globalnie unikalny i nie można go zresetować, dlatego od wersji Androida 10 dostęp do niego jest ograniczony do aplikacji z uprawnieniami READ_PRIVILEGED_PHONE_STATE. Począwszy od Androida 11 system Android dodatkowo ogranicza dostęp do identyfikatora ICCID za pomocą interfejsu API getIccId(), niezależnie od docelowego poziomu interfejsu API aplikacji. Aplikacje, których to dotyczy, powinny zostać przeniesione, aby używały zamiast nich identyfikatora subskrypcji.

Logowanie jednokrotne

W tym przypadku aplikacja oferuje funkcję logowania jednokrotnego, która umożliwia użytkownikom powiązanie istniejącego konta z organizacją.

Zalecany identyfikator: konta zgodne z menedżerem konta, np. łączenie kont Google.

Dlaczego ta rekomendacja?

Połączenie z kontem Google pozwala użytkownikom powiązać istniejące konto Google użytkownika z Twoją aplikacją, zapewniając wygodny i bezpieczniejszy dostęp do produktów i usług organizacji. Dodatkowo możesz definiować niestandardowe zakresy protokołu OAuth, aby udostępniać tylko niezbędne dane, co zwiększa zaufanie użytkowników dzięki jasnemu określeniu sposobu wykorzystania tych danych.

Reklamy

Kierowanie

W tym przypadku aplikacja tworzy profil zainteresowań użytkownika, aby wyświetlać mu trafniejsze reklamy.

Zalecany identyfikator: jeśli aplikacja używa identyfikatora na potrzeby reklam oraz przesyłania lub publikowania do Google Play, musi on być identyfikatorem wyświetlania reklam.

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, w którym może być wymagany identyfikator dostępny w różnych aplikacjach Twojej organizacji. W takim przypadku najlepiej użyć identyfikatora wyświetlania reklam. Zgodnie z Polityką treści dla deweloperów w Google Play użycie identyfikatora wyświetlania reklam jest obowiązkowe, ponieważ użytkownik może go zresetować.

Niezależnie od tego, czy udostępniasz dane użytkownika w aplikacji, jeśli zbierasz je i wykorzystujesz do celów reklamowych, musisz zadeklarować cele reklamowe w sekcji Bezpieczeństwo danych na stronie Zawartość aplikacji w Konsoli Play.

Pomiary

W takim przypadku 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łające do instalacji z Google Play.

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, w którym może być wymagany identyfikator dostępny w różnych aplikacjach Twojej organizacji. W takim przypadku najlepiej użyć identyfikatora wyświetlania reklam. Jeśli używasz identyfikatora do wyświetlania reklam, musi on być identyfikatorem wyświetlania reklam, ponieważ użytkownik może go zresetować. Więcej informacji znajdziesz w Polityce treści dla deweloperów 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łające do instalacji z Google Play.

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, w którym może być wymagany identyfikator dostępny w różnych aplikacjach Twojej organizacji. W takim przypadku najlepiej użyć identyfikatora wyświetlania reklam. Zgodnie z Polityką treści dla deweloperów w Google Play użycie identyfikatora wyświetlania reklam jest obowiązkowe, ponieważ użytkownik może go zresetować.

Remarketing

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

Zalecany identyfikator: identyfikator wyświetlania reklam

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, w którym może być wymagany identyfikator dostępny w różnych aplikacjach Twojej organizacji. W takim przypadku najlepiej użyć identyfikatora wyświetlania reklam. Zgodnie z Polityką treści dla deweloperów w Google Play użycie identyfikatora wyświetlania reklam jest obowiązkowe, ponieważ użytkownik może go zresetować.

Analityka aplikacji

W takim przypadku aplikacja ocenia zachowanie użytkownika, aby określić:

  • Które z innych produktów lub aplikacji Twojej organizacji mogą być odpowiednie dla tego użytkownika.
  • Jak utrzymać zainteresowanie użytkowników aplikacją.
  • Sprawdzaj statystyki użytkowania i inne dane dotyczące niezalogowanych i anonimowych użytkowników.

Możliwe rozwiązania:

  • Identyfikator zestawu aplikacji: identyfikator zestawu aplikacji umożliwia analizowanie zachowania użytkownika w wielu aplikacjach należących do Twojej organizacji, o ile nie używasz ich do celów reklamowych. Jeśli kierujesz reklamy na urządzenia z Usługami Google Play, zalecamy użycie identyfikatora zestawu aplikacji.
  • Identyfikator Firebase (FID): identyfikator FID jest ograniczony do aplikacji, która go utworzyła, przez co nie można go używać do śledzenia 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 FID jest prosty: zapoznaj się z przewodnikiem instalacji Firebase.

Tworzenie aplikacji

Zgłaszanie awarii

W takim przypadku aplikacja zbiera dane dotyczące tego, kiedy i dlaczego powoduje ona awarię na urządzeniach użytkownika.

Zalecany identyfikator: FID lub identyfikator zestawu aplikacji

Dlaczego ta rekomendacja?

Identyfikator FID jest ograniczony do aplikacji, która ją tworzy, dlatego nie można go używać do śledzenia 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 FID jest prosty: zapoznaj się z przewodnikiem po instalacji Firebase. Identyfikator zestawu aplikacji umożliwia analizowanie zachowania użytkownika w różnych aplikacjach należących do Twojej organizacji, o ile nie wykorzystujesz danych użytkownika do celów reklamowych.

Raportowanie wyników

W takim przypadku aplikacja gromadzi dane o wydajności, takie jak czas wczytywania i wykorzystanie baterii, aby poprawić jej jakość.

Zalecany identyfikator: Monitorowanie wydajności Firebase

Dlaczego ta rekomendacja?

Dzięki monitorowaniu wydajności Firebase możesz skupić się na danych, które są dla Ciebie najważniejsze, i sprawdzać wpływ ostatniej zmiany w aplikacji.

Testowanie aplikacji

W takim przypadku na potrzeby testowania lub debugowania aplikacja ocenia wrażenia użytkownika z korzystania z niej.

Zalecany identyfikator: FID lub identyfikator zestawu aplikacji

Dlaczego ta rekomendacja?

Identyfikator FID jest ograniczony do aplikacji, która ją tworzy, dlatego nie można go używać do śledzenia 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 FID jest prosty: zapoznaj się z przewodnikiem po instalacji Firebase. Identyfikator zestawu aplikacji umożliwia analizowanie zachowania użytkownika w różnych aplikacjach należących do Twojej organizacji, o ile nie wykorzystujesz danych użytkownika do celów reklamowych.

Instalacja na różnych urządzeniach

W takim przypadku aplikacja musi zidentyfikować prawidłową instancję, gdy jest zainstalowana na wielu urządzeniach tego samego użytkownika.

Zalecany identyfikator: FID lub GUID

Dlaczego ta rekomendacja?

Identyfikator FID jest przeznaczony 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. Jest on resetowany po ponownym zainstalowaniu aplikacji. W rzadkich przypadkach, gdy identyfikator FID jest niewystarczający, można też użyć identyfikatora GUID.

Zabezpieczenia

Wykrywanie nadużyć

W tym przypadku próbujesz wykryć wiele fałszywych urządzeń atakujących usługi backendu.

Zalecany identyfikator: token integralności interfejsu Google Play Integrity API.

Dlaczego ta rekomendacja?

Aby sprawdzić, czy żądanie pochodzi z oryginalnego urządzenia z Androidem, a nie z emulatora lub innego kodu podszywającego się pod inne urządzenie, skorzystaj z interfejsu Google Play Integrity API.

oszustwo reklamowe,

W takim przypadku aplikacja sprawdza, czy wyświetlenia i działania użytkownika są autentyczne i możliwe do zweryfikowania.

Zalecany identyfikator: identyfikator wyświetlania reklam

Dlaczego ta rekomendacja?

Zgodnie z Polityką treści dla deweloperów w Google Play użycie identyfikatora wyświetlania reklam jest obowiązkowe, ponieważ użytkownik może go zresetować.

Zarządzanie prawami cyfrowymi (DRM)

W tym przypadku aplikacja chce chronić przed nieupoważnionym dostępem do własności intelektualnej lub treści płatnych.

Zalecany identyfikator: stosowanie FID lub GUID zmusza użytkownika do ponownej instalacji aplikacji, aby obejść limity treści, co zniechęca większości użytkowników. Jeśli to nie stanowi wystarczającej ochrony, Android udostępnia interfejs DRM, który umożliwia ograniczanie dostępu do treści. Obejmuje on identyfikatory poszczególnych plików APK i Widevine.

Preferencje użytkownika

W takim przypadku aplikacja zapisuje stan użytkownika na poziomie urządzenia, zwłaszcza w przypadku użytkowników, którzy nie są zalogowani. Możesz przenieść ten stan do innej aplikacji podpisanej tym samym kluczem na tym samym urządzeniu.

Zalecany identyfikator: FID lub GUID

Dlaczego ta rekomendacja?

Utrzymanie informacji w trakcie ponownej instalacji nie jest zalecane, ponieważ użytkownicy mogą chcieć zresetować swoje ustawienia przez ponowne zainstalowanie aplikacji.