Sprawdzone metody używania unikalnych identyfikatorów

Ten dokument zawiera wskazówki dotyczące wyboru odpowiednich identyfikatorów aplikacji na podstawie przypadku użycia.

Ogólne informacje o uprawnieniach na Androidzie znajdziesz w artykule Omówienie uprawnień. Szczegółowe sprawdzone metody dotyczące pracy z uprawnieniami na Androidzie znajdziesz w artykule Sprawdzone metody dotyczące uprawnień aplikacji.

Sprawdzone metody pracy z identyfikatorami na Androidzie

Aby chronić prywatność użytkowników, używaj najbardziej restrykcyjnego identyfikatora, który spełnia wymagania Twojej aplikacji. W szczególności postępuj zgodnie z tymi sprawdzonymi metodami:

  1. W miarę możliwości wybieraj identyfikatory, które użytkownik może zresetować. Większość przypadków użycia aplikacji można zrealizować nawet wtedy, gdy używa ona 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, bez ograniczania wymaganych funkcji.

    Android 10 (poziom interfejsu API 29) wprowadza ograniczenia dotyczące identyfikatorów, których nie można zresetować, w tym numeru IMEI i numeru seryjnego. Aby uzyskać dostęp do tych identyfikatorów, aplikacja musi być właścicielem urządzenia lub profilu, mieć specjalne uprawnienia operatora lub mieć READ_PRIVILEGED_PHONE_STATE uprawnienia uprzywilejowane.

  3. Identyfikatora reklam można używać tylko do profilowania użytkowników lub w przypadku reklam. Podczas korzystania 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ę, zrób to tylko za wyraźną zgodą użytkownika.

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

  5. W przypadku wszystkich innych zastosowań, z wyjątkiem zapobiegania oszustwom związanym z płatnościami i telefonią, w miarę możliwości używaj identyfikatora instalacji Firebase (FID) lub przechowywanego prywatnie identyfikatora GUID. W przypadku zdecydowanej większości zastosowań niezwiązanych z reklamami wystarczy FID lub GUID.

  6. Używaj interfejsów API odpowiednich do Twojego przypadku, aby zminimalizować ryzyko naruszenia prywatności. Używaj interfejsu DRM API do ochrony wartościowych treści i interfejsów Play Integrity API do ochrony przed nadużyciami. Interfejsy Play Integrity API to najprostszy sposób na sprawdzenie, czy urządzenie jest oryginalne, bez narażania prywatności użytkowników.

W pozostałych sekcjach tego przewodnika omówiono te zasady 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ć. Jest on odpowiedni w przypadku reklam. Korzystając z tego identyfikatora, musisz jednak pamiętać o kilku ważnych kwestiach:

Zawsze respektuj intencję użytkownika dotyczącą zresetowania identyfikatora wyświetlania reklam. Nie łącz resetów użytkownika za pomocą innego identyfikatora lub odcisku cyfrowego, aby powiązać ze sobą kolejne identyfikatory wyświetlania reklam bez zgody użytkownika. Zasady dotyczące treści deweloperów w Google Play stanowią:

„…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 z nią oznaczenia reklam spersonalizowanych. Identyfikatory reklamowe można konfigurować, ponieważ użytkownicy mogą ograniczyć ilość śledzenia powiązanego z identyfikatorem. Zawsze używaj metody AdvertisingIdClient.Info.isLimitAdTrackingEnabled(), aby mieć pewność, że nie ignorujesz życzeń użytkowników. Zasady dotyczące treści w Google Play dla deweloperów zawierają te informacje:

„…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 wszelkimi zasadami ochrony prywatności i bezpieczeństwa związanymi z używanymi przez Ciebie pakietami SDK, które dotyczą korzystania z identyfikatora wyświetlania reklam. Jeśli na przykład przekazujesz wartość true do metody enableAdvertisingIdCollection() z pakietu SDK Google Analytics, zapoznaj się ze wszystkimi obowiązującymi zasadami dotyczącymi pakietu SDK Analytics i ich przestrzegaj.

Pamiętaj też, że zasady dotyczące treści dla deweloperów w Google Play wymagają, aby identyfikator wyświetlania reklam „nie był powiązany z informacjami umożliwiającymi identyfikację ani z żadnym stałym identyfikatorem urządzenia (np. identyfikatorem SSAID, adresem MAC, numerem IMEI itp.)”.

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

TABLE-01
timestamp ad_id account_id clickid
TABLE-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, co stanowiłoby naruszenie Zasad programu dla deweloperów w Google Play dotyczących treści, gdyby użytkownicy nie wyrazili na to wyraźnej zgody.

Pamiętaj, że powiązania między identyfikatorem reklamodawcy a informacjami umożliwiającymi identyfikację nie zawsze są tak jednoznaczne. Możliwe jest występowanie „quasi-identyfikatorów” w tabelach kluczowanych na podstawie informacji umożliwiających identyfikację osób i identyfikatorów reklam, co również powoduje 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, jeśli zdarzenia kliknięcia są wystarczająco rzadkie, nadal można połączyć tabelę TABLE-01 z identyfikatorami reklamodawców z informacjami umożliwiającymi identyfikację osób w tabeli TABLE-02 za pomocą sygnatury czasowej zdarzenia i modelu urządzenia.

Chociaż często trudno jest zagwarantować, że w zbiorze danych nie ma takich quasi-identyfikatorów, możesz zapobiec najbardziej oczywistym zagrożeniom związanym z łączeniem, uogólniając w miarę możliwości unikalne dane. W powyższym przykładzie oznaczałoby to zmniejszenie dokładności sygnatury czasowej, tak aby w przypadku każdej sygnatury czasowej pojawiało się wiele urządzeń tego samego modelu.

Inne rozwiązania:

  • Nie projektuj 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 kolumna account_id nie jest uwzględniona w tabeli TABLE-01.

  • Rozdzielanie i monitorowanie list kontroli dostępu 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. Ścisła kontrola i audytowanie możliwości jednoczesnego dostępu do obu źródeł (np. przez łączenie tabel) zmniejsza ryzyko powiązania identyfikatora reklamowego z informacjami umożliwiającymi identyfikację. Ogólnie rzecz biorąc, kontrola dostępu polega na wykonywaniu tych czynności:

    1. Listy kontroli dostępu (ACL) do danych kluczowych identyfikatora reklamodawcy i informacji umożliwiających identyfikację powinny być rozłączne, aby zminimalizować liczbę osób lub ról, które znajdują się na obu listach.
    2. Wdróż logowanie dostępu i audytowanie, aby wykrywać i zarządzać wszelkimi wyjątkami od tej reguły.

Więcej informacji o odpowiedzialnym korzystaniu z identyfikatorów wyświetlania reklam znajdziesz w AdvertisingIdClient dokumentacji interfejsu API.

Praca z identyfikatorami FID i GUID

Najprostszym rozwiązaniem do identyfikowania instancji aplikacji działającej na urządzeniu jest użycie identyfikatora instalacji Firebase (FID). Jest to zalecane rozwiązanie w większości przypadków użycia niezwiązanych z reklamami. Dostęp do tego identyfikatora ma tylko instancja aplikacji, dla której został on udostępniony. Można go (stosunkowo) łatwo zresetować, ponieważ jest on przechowywany tylko tak długo, jak długo aplikacja jest zainstalowana.

Dzięki temu identyfikatory FID zapewniają lepszą ochronę prywatności niż identyfikatory sprzętowe, których nie można zresetować i które są ograniczone do urządzenia. Więcej informacji znajdziesz w firebase.installations dokumentacji interfejsu API.

W przypadkach, gdy identyfikator FID nie jest praktyczny, możesz też używać niestandardowych, globalnie unikalnych identyfikatorów (GUID), aby jednoznacznie identyfikować instancję 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 unikalny w skali globalnej, więc można go używać 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 zamiast w pamięci zewnętrznej (współdzielonej). Więcej informacji znajdziesz na stronie z omówieniem przechowywania danych i plików.

Nie pracuj z adresami MAC

Adresy MAC są globalnie unikalne, nie można ich zresetować i nie zmieniają się po przywróceniu ustawień fabrycznych. Z tych powodów, aby chronić prywatność użytkowników, w Androidzie 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 adresu MAC w Androidzie 11

W aplikacjach kierowanych na Androida 11 lub nowszego randomizacja adresu MAC w przypadku sieci Passpoint odbywa się na podstawie profilu Passpoint, co 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 certyfikatu: certyfikat i typ certyfikatu
    • Dane logowania SIM: typ EAP i IMSI

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

Poniżej znajdziesz listę sposobów, w jakie ta zmiana wpłynie na aplikacje:

  • NetworkInterface.getHardwareAddress() zwraca wartość null dla każdego interfejsu.
  • Aplikacje nie mogą używać funkcji bind() na gniazdach NETLINK_ROUTE.
  • Polecenie ip nie zwraca informacji o interfejsach.
  • Aplikacje nie mogą wysyłać wiadomości w usłudze 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() czy gniazda Netlink. Na przykład aplikacja, która potrzebuje aktualnych informacji o bieżących trasach, może je uzyskać, nasłuchując zmian w sieci za pomocą ConnectivityManager.registerNetworkCallback() i wywołując powiązany z siecią LinkProperties.getRoutes().

Charakterystyka identyfikatora

System operacyjny Android oferuje kilka identyfikatorów o różnych cechach działania. Identyfikator, którego należy użyć, zależy od tego, jak poniższe cechy sprawdzają się w Twoim przypadku użycia. Te cechy mają jednak wpływ na prywatność, dlatego ważne jest, aby zrozumieć, jak one na siebie oddziałują.

Zakres

Zakres identyfikatora określa, które systemy mogą uzyskać do niego dostęp. Zakres identyfikatora Androida występuje zwykle w 3 wariantach:

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

Możliwość resetowania i trwałość

Możliwość resetowania i trwałość określają okres ważności identyfikatora i wyjaśniają, jak można go zresetować. Typowe przyczyny resetowania to: resetowanie w aplikacji, resetowanie w Ustawieniach systemu, resetowanie podczas uruchamiania i resetowanie podczas instalacji. Identyfikatory Androida mogą mieć różny okres ważności, ale zwykle zależy on od sposobu resetowania identyfikatora:

  • Tylko sesja: nowy identyfikator jest używany za każdym razem, gdy użytkownik ponownie uruchamia aplikację.
  • Resetowanie instalacji: za każdym razem, gdy użytkownik odinstaluje i ponownie zainstaluje aplikację, używany jest nowy identyfikator.
  • Resetowanie FDR: nowy identyfikator jest używany za każdym razem, gdy użytkownik przywraca ustawienia fabryczne urządzenia.
  • FDR-persistent: identyfikator przetrwa przywrócenie do ustawień fabrycznych.

Możliwość resetowania pozwala użytkownikom tworzyć nowe identyfikatory, które nie są powiązane z żadnymi informacjami o istniejącym profilu. Im dłużej i bardziej niezawodnie identyfikator jest zachowywany, np. po przywróceniu urządzenia do ustawień fabrycznych, tym większe jest ryzyko, że użytkownik będzie śledzony przez dłuższy czas. Jeśli identyfikator zostanie zresetowany po ponownym zainstalowaniu aplikacji, zmniejszy to jego trwałość i umożliwi zresetowanie identyfikatora, nawet jeśli użytkownik nie będzie miał możliwości zresetowania go w aplikacji lub w Ustawieniach systemu.

Unikalność

Unikalność określa prawdopodobieństwo kolizji, czyli występowania identycznych identyfikatorów w powiązanym zakresie. Na najwyższym poziomie identyfikator globalnie niepowtarzalny 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 większe w przypadku losowych identyfikatorów zainicjowanych datą instalacji (np. 2019-03-01) niż w przypadku identyfikatorów zainicjowanych sygnaturą czasową Unix instalacji (np. 1551414181).

Ogólnie rzecz biorąc, 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 danej populacji, tym większa jest ochrona prywatności, ponieważ jest on mniej przydatny do śledzenia poszczególnych użytkowników.

Ochrona integralności i niezaprzeczalność

Możesz użyć identyfikatora, który trudno jest sfałszować lub odtworzyć, aby udowodnić, że powiązane urządzenie lub konto ma określone właściwości. Możesz na przykład udowodnić, że urządzenie nie jest urządzeniem wirtualnym używanym przez spamera. Trudne do sfałszowania identyfikatory zapewniają też niezaprzeczalność. Jeśli urządzenie podpisze wiadomość kluczem tajnym, trudno będzie twierdzić, że wiadomość została wysłana z urządzenia innej osoby. Niezaprzeczalność może być pożądana przez użytkownika, np. podczas uwierzytelniania płatności, lub niepożądana, np. gdy wyśle wiadomość, której będzie żałować.

Typowe przypadki użycia i odpowiedni identyfikator

W tej sekcji znajdziesz alternatywne metody identyfikacji urządzeń, np. za pomocą numeru IMEI. Używanie identyfikatorów sprzętu jest odradzane, ponieważ użytkownik nie może ich zresetować i są one ograniczone do urządzenia. W wielu przypadkach wystarczy identyfikator w zakresie aplikacji.

Konta

Stan operatora

W takim przypadku aplikacja korzysta z funkcji telefonu i wysyłania wiadomości tekstowych na urządzeniu za pomocą konta operatora.

Zalecane identyfikatory: IMEI, IMSI i Line1

Dlaczego ta rekomendacja?

Korzystanie z identyfikatorów sprzętowych jest dopuszczalne, jeśli jest wymagane w przypadku 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 gniazdami kart SIM albo do dostarczania wiadomości SMS przez IP (w przypadku kont użytkowników opartych na karcie SIM w linii 1). 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 wersjach te identyfikatory można używać tylko za pomocą uprawnień w czasie działania. Użytkownicy mogą wyłączyć to uprawnienie, więc aplikacja powinna sobie radzić z tymi wyjątkami.

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 premium aplikacji na podstawie subskrypcji mobilnych na urządzeniu za pomocą karty SIM.

Zalecany identyfikator: Subscription ID API do identyfikowania kart SIM używanych na urządzeniu.

Identyfikator subskrypcji to wartość indeksu (zaczynająca się od 1), która jednoznacznie identyfikuje zainstalowane karty SIM (w tym fizyczne i elektroniczne) używane na urządzeniu. Dzięki temu identyfikatorowi aplikacja może powiązać swoje funkcje z różnymi informacjami o subskrypcji dla danej karty SIM. Ta wartość jest stała dla danej karty SIM, chyba że urządzenie zostanie zresetowane do ustawień fabrycznych. Może się jednak zdarzyć, że ta sama karta SIM ma inny identyfikator subskrypcji na różnych urządzeniach lub 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 ICCID 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 Android dodatkowo ograniczył dostęp do identyfikatora ICCID 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 tym przypadku aplikacja oferuje logowanie jednokrotne, które umożliwia użytkownikom powiązanie istniejącego konta z organizacją.

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

Dlaczego ta rekomendacja?

Łączenie kont Google umożliwia użytkownikom powiązanie istniejącego konta Google z Twoją aplikacją, co zapewnia bezproblemowy i bezpieczniejszy dostęp do produktów i usług Twojej organizacji. Dodatkowo możesz zdefiniować niestandardowe zakresy protokołu OAuth, aby udostępniać tylko niezbędne dane. Zwiększysz w ten sposób zaufanie użytkowników, ponieważ jasno określisz, w jaki sposób ich dane są wykorzystywane.

Reklamy

Kierowanie

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

Zalecany identyfikator: jeśli Twoja aplikacja używa identyfikatora do wyświetlania reklam i jest przesyłana do Google Play lub publikowana w tej usłudze, musi to być identyfikator wyświetlania reklam.

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, który może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji, więc użycie identyfikatora wyświetlania reklam jest najbardziej odpowiednim rozwiązaniem. Zgodnie z zasadami dotyczącymi treści w Google Play dla deweloperów używanie identyfikatora wyświetlania reklam jest obowiązkowe w przypadku zastosowań związanych z reklamami, 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 na potrzeby reklam, musisz zadeklarować te cele w sekcji Bezpieczeństwo danych na stronie Zawartość aplikacji w Konsoli Play.

Pomiary

W tym przypadku aplikacja tworzy profil użytkownika na podstawie jego zachowania w aplikacjach Twojej organizacji na tym samym urządzeniu.

Zalecany identyfikator: interfejsy Advertising ID API lub Play Install Referrer API

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, który może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji, więc 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: interfejsy Advertising ID API lub Play Install Referrer API

Dlaczego ta rekomendacja?

Jest to przypadek użycia związany z reklamami, który może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji, więc użycie identyfikatora wyświetlania reklam jest najbardziej odpowiednim rozwiązaniem. Zgodnie z zasadami dotyczącymi treści w Google Play dla deweloperów używanie identyfikatora wyświetlania reklam jest obowiązkowe w przypadku zastosowań związanych z reklamami, 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?

Jest to przypadek użycia związany z reklamami, który może wymagać identyfikatora dostępnego w różnych aplikacjach organizacji, więc użycie identyfikatora wyświetlania reklam jest najbardziej odpowiednim rozwiązaniem. Zgodnie z zasadami dotyczącymi treści w Google Play dla deweloperów używanie identyfikatora wyświetlania reklam jest obowiązkowe w przypadku zastosowań związanych z reklamami, 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 usługi lub aplikacje Twojej organizacji mogą być odpowiednie dla użytkownika.
  • Jak zachęcić użytkowników do korzystania z aplikacji.
  • Pomiar statystyk użytkowania i analiz dotyczących użytkowników, którzy nie są zalogowani lub są anonimowi.

Możliwe rozwiązania:

  • Identyfikator zestawu aplikacji: identyfikator zestawu aplikacji umożliwia analizowanie zachowań użytkowników w różnych aplikacjach należących do Twojej organizacji, o ile nie używasz danych użytkowników do celów reklamowych. Jeśli kierujesz reklamy na urządzenia z usługami Google Play, zalecamy używanie 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. Więcej informacji znajdziesz w przewodniku po instalacjach Firebase.

Tworzenie aplikacji

Zgłaszanie awarii

W tym przypadku aplikacja zbiera dane o tym, kiedy i dlaczego ulega awarii na urządzeniach użytkowników.

Zalecany identyfikator: FID lub identyfikator zestawu aplikacji

Dlaczego ta rekomendacja?

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 instalacji Firebase jest prosty. Więcej informacji znajdziesz w przewodniku po instalacjach 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 pomóc w poprawie jakości aplikacji.

Zalecany identyfikator: Monitorowanie wydajności Firebase

Dlaczego ta rekomendacja?

Usługa Firebase Performance Monitoring pomaga skupić się na najważniejszych dla Ciebie danych i sprawdzić wpływ ostatniej zmiany w aplikacji.

Testowanie aplikacji

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

Zalecany identyfikator: FID lub identyfikator zestawu aplikacji

Dlaczego ta rekomendacja?

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 instalacji Firebase jest prosty. Więcej informacji znajdziesz w przewodniku po instalacjach 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 rozpoznawać prawidłową 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 w tym celu. Jego zakres jest ograniczony do aplikacji, dzięki czemu 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 FID jest niewystarczający, możesz też użyć identyfikatora GUID.

Bezpieczeństwo

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, użyj interfejsu Google Play Integrity API.

oszustwo reklamowe,

W tym przypadku aplikacja sprawdza, czy wyświetlenia i działania użytkownika w aplikacji są autentyczne i można je zweryfikować.

Zalecany identyfikator: identyfikator wyświetlania reklam

Dlaczego ta rekomendacja?

Zgodnie z zasadami dotyczącymi treści w programie dla deweloperów w Google Play używanie identyfikatora wyświetlania reklam jest obowiązkowe w przypadku reklam, ponieważ użytkownik może go zresetować.

Zarządzanie prawami cyfrowymi (DRM)

W tym przypadku aplikacja ma chronić przed nieuczciwym dostępem do własności intelektualnej lub treści płatnych.

Zalecany identyfikator: użycie identyfikatora FID lub GUID zmusza użytkownika do ponownego zainstalowania aplikacji w celu obejścia limitów treści, co jest wystarczającym utrudnieniem, aby zniechęcić większość osób. Jeśli to nie wystarczy, Android udostępnia interfejs DRM API, który może ograniczać dostęp do treści. Zawiera on identyfikator 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 aplikacjipodpisanej tym samym kluczem na tym samym urządzeniu.

Zalecany identyfikator: FID lub GUID

Dlaczego ta rekomendacja?

Utrzymywanie informacji po ponownej instalacji nie jest zalecane, ponieważ użytkownicy mogą chcieć zresetować swoje preferencje, ponownie instalując aplikację.