Informacia
Treść

ConsentManager SDK RODO/CCPA dla Androida

Połączenia ConsentManager SDK dla aplikacji na Androida implementuje i zapewnia funkcjonalność informowania użytkownika o ochronie danych oraz pytania i zbierania zgody od użytkownika. Umożliwia programistom aplikacji łatwą integrację ConsentManager usługi do swojej aplikacji.

Obsługiwane standardy

Połączenia ConsentManager SDK RODO/CCPA dla systemu Android obsługuje następujące standardy branżowe:

  • IAB TCF v1
  • IAB TCF v2
  • IAB USPrywatność v1
  • ConsentManager niestandardowi dostawcy/cele
  • Tryb dodatkowej zgody Google (ciąg Google AC)

Jak to działa?

  1. Zintegruj SDK z aplikacją i skonfiguruj ustawienia SDK
  2. Gdy SDK zostanie zintegrowany z aplikacją, SDK udostępni funkcje dla programisty aplikacji w celu pobrania danych dotyczących zgody
  3. Gdy tylko aplikacja się uruchomi, SDK automatycznie pobierze informacje z ConsentManager serwery w celu przygotowania SDK do jego użycia.
  4. Zaleca się, aby przy starcie aplikacji tworzyła instancję klasy CMPConsentTool. Po utworzeniu SDK automatycznie wyświetli ekran zgody, jeśli to konieczne.
  5. Gdy aplikacja chce przetwarzać dane osobowe, powinna „zapytać” SDK, czy została wyrażona zgoda na konkretny cel i dostawcę.

Instalacja

Repozytorium na Bitbucket: https://bitbucket.org/consentmanager/android-consentmanager/src/master/

Gradle

Krok 1. Dodaj repozytorium jitpack do głównego pliku build.gradle na końcu repozytoriów:

allprojects {  
  repositories {    
    ...    
    maven { url 'https://jitpack.io' }  
  }
}

Krok 2. Dodaj zależność do swoich aplikacji build.gradle. (Aby zawsze uzyskać najnowszą wersję, użyj symbolu +, aby uzyskać najnowsze aktualizacje. Możesz na przykład zawsze pobierać najnowsze wersje dla drobnych aktualizacji do 1.x.+)

dependencies {
  implementation 'org.bitbucket.consentmanager:android-consentmanager:1.5.+'
}

Maven

Krok 1. Dodaj repozytorium jitpack do swojego build.gradle na końcu repozytoriów:

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

Krok 2. Dodaj zależność do swoich aplikacji build.gradle. (Aby zawsze mieć najnowszą wersję w maven, możesz użyć różnych metod, aby odrzucić zakres wersji. Możesz je sprawdzić tutaj )

    <dependency>
        <groupId>org.bitbucket.consentmanager</groupId>
        <artifactId>android-consentmanager</artifactId>
        <version>1.5.7</version>
    </dependency>

Korzystanie z biblioteki

Uprawnienia

Ten pakiet SDK wymaga następujących uprawnień, upewnij się, że dodałeś je do pliku AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Zainicjuj narzędzie zgody

Za pomocą aplikacji startowej (zazwyczaj funkcji viewDidAppear) musisz utworzyć instancję klasy CMPConsentTool. Spowoduje to automatyczne pobranie niezbędnych danych z naszego serwera i określenie, czy ekran akceptacji ma być wyświetlany, czy nie. Jeśli tak, SDK automatycznie wyświetli w tym momencie ekran zgody, zbierze dane i przekaże je do aplikacji. Instancję można następnie wykorzystać w celu uzyskania szczegółów zgody z SDK w celu wykorzystania jej w aplikacji.

Aby zainicjować ConsentTool, przejdź do wybranej klasy i utwórz instancję CMPConsentTool, jak pokazano poniżej:

//...
import net.consentmanager.sdk.CMPConsentTool;
//...
public class MainActivity extends AppCompatActivity {
    private CMPConsentTool consentTool;
    //...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
      //..
      consentTool = CMPConsentTool.createInstance(this, 123456, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "");
    }
//...
}

 

Aby utworzyć instancję CMPConsentTool, musisz skonfigurować instancję. Musisz podać CMP-ID, domenę serwera , nazwę aplikacji i język. CMP-ID i domenę serwera można znaleźć w swoim ConsentManager konto pod Menu > Pobierz kod. Nazwy aplikacji można użyć do rozróżnienia różnych aplikacji w ConsentManager raportowanie. Jako język możesz użyć pustego ciągu ("") do automatycznego wykrywania lub dwuliterowego kodu języka ("EN", "DE", "FR" itd.).

Wartości konfiguracyjne można wstawiać na różne sposoby:

a) Konfiguracja SDK przez CMPConfig

Dodaj następujące wiersze do swojego kodu:

val config = CMPConfig.apply { 
            serverDomain = CMP_DOMAIN
            appName = CMP_APP_NAME
            language = LANG
            id = APP_ID
        }
val consentTool = CMPConsentTool.createInstance(this, config);
b) Konfiguracja zestawu SDK za pomocą metody createInstance()

Dodaj następujący wiersz do swojego kodu:

consentTool = CMPConsentTool.createInstance(this, 1234567, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "EN");

Korzystanie z SDK

Aby sprawdzić, czy sprzedawca lub cel mają zgodę, możesz skorzystać z dwóch metod:

if(consentTool.hasPurposeConsent(this,"52",false))
{
    if(consentTool.hasVendorConsent(this,"s26", false))
    {
        //do something with data
    }
}

Obie metody hasPurposeConsent i hasVendorConsent wymagają dwóch parametrów:

  • id — ciąg identyfikatora dostawcy lub celu. Należy pamiętać, że identyfikatory dostawców mogą mieć różne formaty („123”, „s123” i „c123”), sprawdź dokładnie za pomocą Menu > Sprzedawcy i Menu > Cele w telefonie ConsentManager konto.
  • isIABVendor / isIABPurpose — jeśli dostawca lub cel jest dostawcą/celem zgodnym ze standardem IAB TCF, należy ustawić wartość prawda, w przeciwnym razie fałsz.

Pamiętaj: wszyscy dostawcy, którzy nie należą do IAB, mają identyfikatory zaczynające się od „s” lub „c” (np. „s123”); dostawcy należący do IAB mają identyfikatory, które nie zaczynają się od „s” lub „c”.

Ponowne otwieranie ekranu zgody

Aby umożliwić użytkownikowi zmianę wyborów, wystarczy zadzwonić openCmpConsentToolView():

consentTool.openCmpConsentToolView(this);

W niektórych przypadkach natywna aplikacja może zawierać widoki internetowe w celu wyświetlania pewnych rzeczy, takich jak reklamy lub treści. W celu przekazania informacji o zgodzie z SDK do webview prosimy o skorzystanie z funkcji:

String consentData = CMPConsentTool.exportCMPData(this);

Spowoduje to wyeksportowanie informacji o zgodzie i wszystkich dalszych danych wymaganych przez CMP. Następnie możesz przekazać te informacje do CMP w widoku sieciowym, dodając je do adresu URL wywoływanego w widoku sieciowym:

myWebView.loadURL("https://mywebsite.com/....#cmpimport=" + consentData);

Niestandardowe odbiorniki zdarzeń

Aby dodać dodatkową logikę procesu, możesz skorzystać z detektorów zdarzeń. Dostępne są następujące detektory zdarzeń:

Imię i nazwisko

Występuje

 

OnOpenCallback

Odbiornik zdarzenia po otwarciu CMP

OnCMPZamknijOddzwoń

Odbiornik zdarzenia, gdy CMP jest zamknięty

OnCMPNotOpenedOddzwonienie

Odbiornik zdarzenia, gdy nie trzeba otwierać CMP

Przy oddzwonieniu po błędzie

Listener for Event, gdy wystąpi błąd w procesie zarządzania zgodą.

Zgoda na import/eksport

Aby zaimportować lub wyeksportować zgodę możesz skorzystać z funkcji exportCMPData (kontekst kontekstu) i importCMPData (kontekst kontekstu, ciąg cmpData). Sprawdź poniższy przykład: 

ZgodaString, którą musisz przekazać, powinna być zakodowana w base64.

 

Diagram sekwencji CMP SDK

Cmp-Schemat-Sekwencji-(1).png

 


 

Przegląd interfejsu API: 

 
hasConsent(): Wartość logiczna

Opis: Sprawdza, czy użytkownik wyraził już zgodę.

Wartość zwracana: Zwraca true, jeśli użytkownik wyraził zgodę, w przeciwnym razie zwraca false.


getAllPurposes(kontekst: kontekst): Ciąg

Opis: Zwraca wszystkie cele jako ciąg znaków.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym mają zostać pobrane cele.

Powrót: Ciąg zawierający wszystkie cele.


getAllPurposeList(kontekst: kontekst): Lista

Opis: Zwraca wszystkie cele jako listę ciągów.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym mają zostać pobrane cele.

Powrót: Lista ciągów, gdzie każdy ciąg reprezentuje cel.


getAgreedPurposes (kontekst: kontekst): Ciąg

Opis: Zwraca cele, na które użytkownik wyraził zgodę jako ciąg znaków.

parametry:

  • kontekst (typ: Kontekst): Kontekst, w którym należy pobrać uzgodnione cele.

Powrót: Ciąg zawierający cele, na które użytkownik wyraził zgodę.


getAgreedPurposeList(kontekst: kontekst): Lista

Opis: Zwraca listę celów, na które użytkownik wyraził zgodę.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista uzgodnionych celów.

Powrót: Lista wartości typu String reprezentujących cele, na które użytkownik wyraził zgodę.


getDisabledPurposes(kontekst: kontekst): lista

Opis: Zwraca listę celów, które są obecnie wyłączone.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista wyłączonych celów.

Powrót: Lista wartości ciągu reprezentujących cele, które są obecnie wyłączone.


getAllVendors(kontekst: kontekst): Ciąg

Opis: Zwraca ciąg zawierający listę wszystkich dostępnych dostawców.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista wszystkich dostawców.

Powrót: Ciąg zawierający listę wszystkich dostępnych dostawców.


getAllVendorsList(kontekst: kontekst): Lista

Opis: Zwraca listę wszystkich dostępnych dostawców.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista wszystkich dostawców.

Powrót: Lista wartości łańcuchowych reprezentujących wszystkich dostępnych dostawców.


getAgreedVendors (kontekst: kontekst): Ciąg

Opis: Zwraca ciąg znaków zawierający listę dostawców, z którymi użytkownik się zgodził.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista uzgodnionych dostawców.

Powrót: Ciąg zawierający listę dostawców, na których zgodził się użytkownik.


getAgreedVendorList(kontekst: kontekst): lista

Opis: Zwraca listę dostawców, których użytkownik zaakceptował.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista uzgodnionych dostawców.

Powrót: Lista wartości typu String reprezentujących dostawców, których użytkownik zaakceptował.


getDisabledVendors (kontekst: kontekst): Lista

Opis: Zwraca listę dostawców, którzy są obecnie wyłączeni.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym ma zostać pobrana lista wyłączonych dostawców.

Powrót: Lista wartości ciągów reprezentujących dostawców, którzy są obecnie wyłączeni.


enableVendorList (kontekst: kontekst, dostawcy: lista )

Opis: Włącza podaną listę dostawców.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym należy włączyć dostawców.
  • dostawcy (typ: Lista ): Lista wartości łańcuchowych reprezentujących dostawców, których należy włączyć.

Powrót: Żaden.


disableVendorList(kontekst: kontekst, dostawcy: lista )

Opis: Wyłącza podaną listę dostawców.

parametry:

  • kontekst (typ: kontekst): kontekst, w którym należy wyłączyć dostawców.
  • dostawcy (typ: Lista ): Lista wartości łańcuchowych reprezentujących dostawców do wyłączenia.

Powrót: Żaden.


odrzuć wszystko (kontekst: kontekst, onConsentReceivedCallback: OnConsentReceivedCallback)

Opis: Odrzuca wszelkie zgody na aplikację.

Parametry:

  • kontekst (typ: Kontekst): Kontekst, w którym zgoda jest odrzucana.
  • onConsentReceivedCallback (typ: OnConsentReceivedCallback): Funkcja wywołania zwrotnego, która jest wykonywana po odrzuceniu zgody.

Powrót Wartość: Brak


acceptAll (kontekst: kontekst, onConsentReceivedCallback: OnConsentReceivedCallback)

Opis: Akceptuje wszystkie zgody na aplikację.

Parametry:

  • kontekst (typ: Kontekst): Kontekst, w jakim zgoda jest akceptowana.
  • onConsentReceivedCallback (typ: OnConsentReceivedCallback): Funkcja wywołania zwrotnego, która jest wykonywana po zaakceptowaniu zgody.

Powrót Wartość: Brak


getUSPrivacyString(kontekst: kontekst): Ciąg

Opis: Zwraca ciąg znaków prywatności w USA.

Parametry:

  • kontekst (typ: kontekst): kontekst, w którym zwracany jest ciąg dotyczący prywatności w USA.

Powrót Wartość:

  • Ciąg reprezentujący ciąg dotyczący prywatności w USA.

hasVendorConsent(context: Context, id: String, checkConsent: Boolean = true): Boolean

Opis: Sprawdza, czy użytkownik udzielił zgody określonemu dostawcy.

Parametry:

  • kontekst (typ: kontekst): kontekst, w którym sprawdzana jest zgoda dostawcy.
  • id (typ: String): Identyfikator dostawcy.
  • checkConsent (typ: Boolean, opcjonalny): Określa, czy zgoda ma zostać sprawdzona. Wartość domyślna to prawda.

Powrót Wartość:

  • true , jeśli użytkownik wyraził zgodę na dostawcę, w przeciwnym razie false .

hasPurposeConsent(context: Context, id: String, isIABPurpose: Boolean, checkConsent: Boolean = true): Boolean

Opis: Sprawdza, czy użytkownik wyraził zgodę na określony cel.

Parametry:

  • kontekst (typ: Kontekst): Kontekst, w którym sprawdzana jest zgoda na cel.
  • id (typ: String): Identyfikator celu.
  • isIABPurpose (typ: Boolean): Określa, czy cel jest celem IAB.
  • checkConsent (typ: Boolean, opcjonalny): Określa, czy zgoda ma zostać sprawdzona. Wartość domyślna to prawda.

Powrót Wartość:

  • true , jeśli użytkownik wyraził zgodę na ten cel, false w przeciwnym razie.

getGoogleACString(kontekst: kontekst): Ciąg

Opis: Zwraca identyfikator reklamowy Google.

Parametry:

  • kontekst (typ: kontekst): kontekst, w którym zwracany jest identyfikator wyświetlania reklam Google.

Powrót Wartość:

  • Ciąg reprezentujący identyfikator wyświetlania reklam Google.

getLastConsentString(kontekst: kontekst): Ciąg

Opis: Zwraca ostatni ciąg zgody.

Parametry:

  • kontekst (typ: kontekst): kontekst, w którym zwracany jest ostatni ciąg zgody.

Powrót Wartość:

  • Ciąg reprezentujący ostatni ciąg zgody.

exportConsentString(): Ciąg

Opis: Eksportuje ciąg zgody.

Parametry: żaden

Powrót Wartość:

  • Ciąg reprezentujący ciąg zgody.

getCalledLast(kontekst: kontekst): Data?

Opis: Zwraca datę ostatniego wywołania zgody.

Parametry:

  • kontekst (typ: kontekst): kontekst, w którym zwracana jest data ostatniego połączenia.

Powrót Wartość:

  • Data reprezentująca datę ostatniego wywołania lub wartość null, jeśli nie znaleziono daty.

o nazwie ThisDay (kontekst: kontekst): wartość logiczna

Opis: Sprawdza, czy zgoda została wywołana tego samego dnia.

Parametry:

  • kontekst (typ: kontekst): kontekst, w którym wykonywane jest sprawdzanie.

Powrót Wartość:


Wspólne preferencje

SDK ustawi wartości wspólnych preferencji dla IAB TCF v1, IAB TCF v2, IAB USPrivacy i Google AC String. Te wartości można odczytać za pomocą następującego kodu:

Context mContext = getApplicationContext();

SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);

SharedPreferences.OnSharedPreferenceChangeListener mListener;

mListener = new SharedPreferences.OnSharedPreferenceChangeListener() {

            public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
                        if (key.equals([Specific Consent Key])) {
                                   // Update Consent settings
                                   }
                        }
            };
mPreferences.registerOnSharedPreferenceChangeListener(mListener);

 

Zdefiniowano następujące klucze:

IAB TCF v1  
IABConsent_CMPPresent Boolean: Ustaw na true, jeśli CMP implementujący tę specyfikację jest obecny w aplikacji. Idealnie ustawione przez Wydawcę tak szybko, jak to możliwe, ale można je również ustawić alternatywnie przez CMP.
IABConsent_SubjectToGDPR String 1 – (podlega RODO), 0 – (nie podlega RODO), zero – nieoznaczony (domyślnie przed inicjalizacją). Zgodność z doradztwem IAB OpenRTB RODO. Zdecydowaliśmy się być String, aby mieć status niezainicjowany.
IABConsent_ConsentString String: Ciąg zgody
IABConsent_ParsedPurposeConsents String (od „0” i „1”), gdzie znak na pozycji N wskazuje status zgody na cel o identyfikatorze N zgodnie z definicją na globalnej liście dostawców. Wyrażono ciąg zgody, aby umożliwić proste sprawdzenie. Pierwszy znak od lewej to Cel 1, ...
IABConsent_ParsedVendorConsents String (od „0” i „1”), gdzie znak na pozycji N wskazuje stan zgody na identyfikator dostawcy N zgodnie z definicją na globalnej liście dostawców. Wyrażono ciąg zgody, aby umożliwić proste sprawdzenie. Pierwsza postać od lewej to Dostawca 1, ... 
IAB TCF v2  
IABTCF_CmpSdkID Number: identyfikator liczby całkowitej bez znaku pakietu CMP SDK
IABTCF_CmpSdkVersion Number: liczba całkowita bez znaku numeru wersji pakietu CMP SDK
IABTCF_PolicyVersion Number: Liczba całkowita bez znaku reprezentująca wersję TCF, której dotyczą te zgody.
IABTCF_gdprApplies Number:

1 RODO obowiązuje w obecnym kontekście

0 - RODO nie nie zastosować w obecnym kontekście

Nieoprawny - nieokreślony (domyślnie przed inicjalizacją)

IABTCF_PublisherCC String: Dwuliterowy kod ISO 3166-1 alfa-2 - Domyślna: AA (nieznany)
IABTCF_PurposeOneTreatment Number:

0 - brak specjalnego traktowania celu pierwszego

1 - cel jeden nie został ujawniony

Usuń ustawienie domyślne - 0

Sprzedawcy mogą używać tej wartości do określenia, czy wymagana jest zgoda na cel jeden.

IABTCF_UseNonStandardStacks Number:

1 - CMP użył niestandardowego stosu

0 - CMP nie używał niestandardowego stosu

IABTCF_TCString String: W pełni zakodowany ciąg TC
IABTCF_VendorConsents Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status zgody na identyfikator dostawcy n + 1; false i true odpowiednio. np. '1' w indeksie 0 jest zgoda true dla identyfikatora dostawcy 1
IABTCF_VendorLegitimateInterests Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status prawnie uzasadnionego interesu dla identyfikatora dostawcy n + 1; false i true odpowiednio. np. '1' w indeksie 0 czy istnieje uzasadniony interes? true dla identyfikatora dostawcy 1
IABTCF_PurposeConsents Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status zgody na identyfikator celu n + 1; false i true odpowiednio. np. '1' w indeksie 0 jest zgoda true dla identyfikatora celu 1
IABTCF_PurposeLegitimateInterests Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status prawnie uzasadnionego interesu dla celu identyfikacji n + 1; false i true odpowiednio. np. '1' w indeksie 0 czy istnieje uzasadniony interes? true dla identyfikatora celu 1
IABTCF_SpecialFeaturesOptIns Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status zgody na specjalny identyfikator funkcji n + 1; false i true odpowiednio. np. '1' w indeksie 0 jest zaakceptowany true dla specjalnego identyfikatora funkcji 1
IABTCF_PublisherRestrictions{ID} String ['0','1', or '2']: Wartość na pozycji n - gdzie nindeksowanie zaczyna się o 0 – wskazuje typ ograniczenia wydawcy (0-2) dla dostawcy n + 1; (zobacz Typy ograniczeń wydawców). np. '2' w indeksie 0 to typ ograniczenia 2 dla identyfikatora dostawcy 1. {ID} odnosi się do identyfikatora celu.
IABTCF_PublisherConsent Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status zgody na cel dla identyfikatora celu n + 1 dla wydawcy, ponieważ odpowiadają one celom globalnej listy dostawców; false i true odpowiednio. np. '1' w indeksie 0 jest zgoda true dla identyfikatora celu 1
IABTCF_PublisherLegitimateInterests Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status uzasadnionego interesu celu dla identyfikatora celu n + 1 dla wydawcy, ponieważ odpowiadają one celom globalnej listy dostawców; false i true odpowiednio. np. '1' w indeksie 0 czy istnieje uzasadniony interes? true dla identyfikatora celu 1
IABTCF_PublisherCustomPurposesConsents Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status zgody na cel dla niestandardowego identyfikatora celu wydawcy n + 1 dla wydawcy; false i true odpowiednio. np. '1' w indeksie 0 jest zgoda true dla niestandardowego identyfikatora celu 1
IABTCF_PublisherCustomPurposesLegitimateInterests Binary String: the '0' or '1' na stanowisku n - gdzie nindeksowanie zaczyna się o 0 – wskazuje status uzasadnionego interesu celu dla niestandardowego identyfikatora celu wydawcy n + 1 dla wydawcy; false i true odpowiednio. np. '1' w indeksie 0 czy istnieje uzasadniony interes? true dla niestandardowego identyfikatora celu 1
IAB USPrywatność  
IABUSPrivacy_String String: jest zgodny z zaleceniem IAB OpenRTB CCPA. String koduje wszystkie wybory i informacje.
Ciąg Google AC  
IABTCF_AddtlConsent

String: jest zgodny ze specyfikacją techniczną trybu dodatkowej zgody Google. 

(Wycofane) Dynamiczne blokowanie treści za pomocą elementu zastępczego webView

Ta funkcja jest przestarzała i zostanie usunięta w przyszłości. Powodem wycofania jest to, że dzięki włączaniu i wyłączaniu interfejsów API dostawcy i celu nie ma już potrzeby tworzenia symbolu zastępczego. Możesz dodać własny interfejs użytkownika i własną logikę biznesową oraz dynamicznie aktywować i dezaktywować dostawców. Zamiast korzystać z tej funkcji, należy użyć metody włączListaDostawców() i wyłączListDostawców() funkcje do zarządzania, którzy dostawcy są włączani lub wyłączani, i tworzyć własny interfejs użytkownika, aby wyświetlać te informacje użytkownikowi.

Symbol zastępczy viewObject można zaimplementować, aby uzyskać funkcjonalność dynamicznego blokowania treści tutaj.Możesz utworzyć widok za pomocą następującej metody: 

CMPPlaceholder placeholderView = CMPConsentTool.createPlaceholder(getApplicationContext(),CMPPlaceholderParams
                        .ofVendor("${vendorId}"), new CMPPlaceholderEventListener() {
                        
                    @Override
                    public void vendorAccepted(WebView view) {
                    	//... Actions to trigger if Consent is accepted
                        // Like showing Youtube Video View
                    	}
                    });

Z obiektem opakowującym CMPPlaceholderParams możesz również przekazać parametry opcjonalne, takie jak teksty niestandardowe lub opcjonalny obraz podglądu. Funkcje konstruktora nazywają się setCustomplaceholder(String headline, String mainText, String checkboxText, String buttonText)setOptionalImageUrl(String imageUrl).

Wymagana logika biznesowa, gdy chcesz pokazać widok i nie musi być stosowana przez dewelopera. Możesz przekazać wymagane warunki i akcje, używając wywołań zwrotnych EvenListener z CMPPlaceholderEventlistener. Należy wdrożyć następujące wymagane wydarzenie:

Wymagany: vendorAccepted(CMPPlaceholderView view) { // Your logic }

Opcjonalny: errorOccurred(String message) { // Error handling }

 

Omówienie interfejsu API (starsze wersje)

API

parametry Zwroty

Opis

 

openCmpConsentToolView(

Kontekst kontekstowy

)

kontekst: Kontekst aplikacji unieważnić  Wyświetla widok modalny z internetowym widokiem zgody. Jeśli Zgodność zostanie zaakceptowana lub odrzucona, zostanie wywołana funkcja zamknięcia. Możesz zastąpić tę funkcję zamykania własną. Dlatego zaimplementuj OnCloseCallback i dodaj to jako parametr. @apiNote Interfejs użytkownika -> przykład: Otwórz warstwę za pomocą akcji przycisku
       

openCmpConsentToolView(

kontekst kontekstowy,

Oddzwoń zwrotny OnClose

)

kontekst: Kontekst aplikacji

 

oddzwonić: OnCloseCallback, który powinien być wywoływany, gdy widok sieciowy jest zamykany przez akcję

 

unieważnić Wyświetla widok modalny z internetowym widokiem zgody. Jeśli Zgodność zostanie zaakceptowana lub odrzucona, zostanie wywołana funkcja zamknięcia. Możesz zastąpić tę funkcję zamykania własną. Dlatego zaimplementuj OnCloseCallback i nadaj go tej funkcji. Ta metoda nie wyśle ​​ponownie żądania do serwera permissionTool. Użyje ostatniego stanu. Jeśli chcesz tylko ponownie otworzyć narzędzie do wyrażania zgody, jeśli serwer poda status odpowiedzi == 1, użyj metody checkAndProceedConsentUpdate @apiNote Interfejs użytkownika -> przykład: akcja Otwórz warstwę za pomocą przycisku

setCloseCmpConsentToolViewListener(

Oddzwoń zwrotny OnClose

)

oddzwonić: OnCloseCallback, który powinien być wywoływany, gdy widok sieciowy jest zamykany przez akcję unieważnić Ustawia słuchacza. Jeśli Zgodność zostanie zaakceptowana lub odrzucona, funkcja ta zostanie wywołana. Możesz zastąpić tę funkcję zamykania własną. Dlatego zaimplementuj OnCloseCallback i dodaj to jako parametr.
       
       

setCustomCmpConsentToolViewAction(

CustomOpenActionCallback customAction

)

Akcja niestandardowa: Akcja niestandardowa, która powinna zostać wywołana, oprócz pokazania narzędzia zgody unieważnić Ustawia akcję niestandardową na odpowiedź serwera.

setErrorDialogCmpConsentToolViewListener(

Oddzwoń zwrotny OnErrorDialog

)

oddzwonić: OnOpenCallback, który powinien zostać wywołany, gdy widok zostanie otwarty. unieważnić Ustawia słuchacza. Jeśli widok zgodności zostanie otwarty, ta funkcja zostanie wywołana. Możesz zastąpić tę otwartą funkcję własną. Dlatego zaimplementuj OnOpenCallback i dodaj to jako parametr.

setNetworkErrorExceptionListener(

Oddzwonienie zwrotne w przypadku wyjątku sieci

)

oddzwonić: OnErrorNetworkCallback, który należy wywołać. unieważnić Ustawia odbiornik, który jest wywoływany, jeśli wystąpi błąd sieci.

setOnCMPNotOpenedOddzwonienie(

Oddzwoń zwrotny OnCMPNotOpened

)

oddzwonić: Akcja cmpNotOpenedCallback, która zostanie wywołana unieważnić Ustawia akcję, gdy osoba udzielająca zgody nie zamierza się otworzyć

setOpenCmpConsentToolViewListener(

kontekst kontekstowy,

Przycisk gdprButton

)

kontekst: Następnie kontekst aplikacji

przycisk gdpr: Przycisk, do którego należy dodać openCmpConsentToolViewListener

unieważnić Ustawia słuchacza na dany przycisk, jeśli przycisk zostanie kliknięty, zostanie wyświetlony widok modalny z widokiem internetowym zgody. Jeśli Zgodność zostanie zaakceptowana lub odrzucona, zostanie wywołana funkcja zamknięcia. Możesz zastąpić tę funkcję zamykania własną. Dlatego zaimplementuj OnCloseCallback i dodaj to jako inny parametr. Jeśli parametr nie jest ustawiony, ale do dodania detektora do zdarzenia zamknięcia użyto setCloseCmpConsentToolViewListener, zostanie on użyty.

setOpenCmpConsentToolViewListener(

kontekst kontekstowy,

Przycisk gdprPrzycisk,

Oddzwoń zwrotny OnClose

)

kontekst: Kontekst aplikacji

przycisk gdpr: Przycisk, do którego należy dodać openCmpConsentToolViewListener

 

oddzwonić: OnCloseCallback, który powinien być wywoływany, gdy widok sieciowy jest zamykany przez akcję

unieważnić Ustawia słuchacza na dany przycisk, jeśli przycisk zostanie kliknięty, zostanie wyświetlony widok modalny z widokiem internetowym zgody. Jeśli Zgodność zostanie zaakceptowana lub odrzucona, zostanie wywołana funkcja zamknięcia. Możesz zastąpić tę funkcję zamykania własną. Dlatego zaimplementuj OnCloseCallback i dodaj to jako ostatni parametr.

setOpenCmpConsentToolViewListener(

Oddzwoń zwrotny OnClose

)

oddzwonić: OnCloseCallback, który powinien być wywoływany, gdy widok sieciowy jest zamykany przez akcję

unieważnić Ustawia słuchacza. Jeśli widok zgodności zostanie otwarty, ta funkcja zostanie wywołana. Możesz zastąpić tę otwartą funkcję własną. Dlatego zaimplementuj OnOpenCallback i dodaj to jako parametr.

setOpenPlaceHolderViewListener(

kontekst kontekstowy,

przycisk guzika,

Sprzedawca ciągów

)

kontekst: Kontekst aplikacji

przycisk: przycisk akcji do tworzenia widoku zastępczego

sprzedawca: Sprzedawca przypisany do symbolu zastępczego

unieważnić Otwiera widok zastępczy po kliknięciu przycisku dla przypisanego dostawcy 
 

 

   

nazwanyTenDzień(

Kontekst)

kontekst: Kontekst aplikacji

boolean: jeśli z serwerem skontaktowano się już tego dnia Zwraca, jeśli tego dnia kontaktowano się już z serwerem.

clearAllValues(kontekst kontekstu)

kontekst: Kontekst aplikacji

unieważnić Resetuje dane zgody

utwórz symbol zastępczy (

kontekst kontekstowy, 

CMPPlaceholderParams cmpPlaceholderParams, 

CmpPlaceholderEventListener cmpPlaceholderEventListener)

kontekst: Kontekst aplikacji

cmpPlaceholderParams: 

przypisz wymagane parametry zastępcze

cmpPlaceholderEventListener: Interfejs EventListener dla niestandardowych funkcji procesu

Cmp Placeholder: UIView symbolu zastępczego Tworzy widok zastępczy do dynamicznego blokowania treści

exportCMPData (kontekst kontekstu)

kontekst: Kontekst aplikacji

sznur: ciąg zgody Funkcja eksportu, którą można wywołać, aby wyeksportować pełny ciąg zgody wygenerowany przez ConsentWebView i zapisany we wspólnych preferencjach tego urządzenia.

getCalledLast (kontekst kontekstu)

kontekst: Kontekst aplikacji

Data: Data ostatniego połączenia z serwerem Podaje informacje o ostatniej dacie kontaktu z serwerem

getConfig()

 

Konfiguracja CMP:

Obiekt CMPConfig

Zwraca CMPConfig, który jest aktualnie ustawiony

pobierz GoogleACString()

kontekst: Kontekst aplikacji

sznur: Prywatność w USA Ciąg dostawców, który został ustawiony przez consentmanager

Zwraca US Privacy String, który został ustawiony przez consentmanager

uzyskac instancje()

 

Narzędzie CMPConsent:

Zainicjowana pojedyncza chwila consentmanager

Zwraca Narzędzie CMPConsent. Jeśli nie zainicjalizowałeś Narzędzie CMPConsent wcześniej zostanie zgłoszony wyjątek CMPConsentToolInitialisation.

getInstanceUnsafe()

 

Narzędzie CMPConsent:

zainicjowany singleton Instant of the consent Managerlub null.

Zwraca Narzędzie CMPConsentlub null, jeśli nie został zainicjowany. Ta metoda jest niebezpieczna, ponieważ może prowadzić do wyjątków zerowego wskaźnika, ale jeśli masz pewność, że narzędzie ConsentTool zostało wcześniej zainicjowane, możesz użyć tej metody bez konieczności wyłapywania błędu. Zalecamy zapisanie zwróconego obiektu z metody createInstant, aby użyć metod consentManager.

pobierzLastConsentString(

Kontekst)

kontekst: Kontekst aplikacji

sznur

Ostatni zestaw zgody

Zwraca ostatnią wyrażoną zgodę, przedstawioną w base64 przez consentManager

getPurposes (kontekst kontekstu)

kontekst: Kontekst aplikacji

sznur: Ciąg celów, który został ustalony consentmanager

Zwraca cele String, który został ustawiony przez consentmanager

getUSPrivacyString (kontekst kontekstu)

kontekst: Kontekst aplikacji

sznur: Amerykański łańcuch prywatności dostawców, który został ustalony consentmanager

Zwraca US Privacy String, który został ustawiony przez consentmanager

getVendorsString (kontekst kontekstu)

kontekst: Kontekst aplikacji

sznur: Ciąg dostawców, który został ustalony consentmanager

Zwraca ciąg dostawcy, który został ustawiony przez consentmanager

hasPurposeConsent (kontekst kontekstu,

Identyfikator ciągu,

wartość logiczna to IABCel)

kontekst: kontekst aplikacji

id: identyfikator celu

isIABPcel: Jeśli cel jest określony przez standard IAB (V1/V2)

boolean

Jeśli cel ma zgodę na ustawianie plików cookies

Zwraca, jeśli cel (id) ma uprawnienia do ustawiania plików cookie.

Uwaga: Identyfikator celu jest taki sam, jak pokazano na liście celów i może mieć przedrostek, taki jak C

ma zgodę dostawcy (

kontekst kontekstowy,

Identyfikator ciągu,

wartość logiczna isIABVendor)

kontekst: Kontekst aplikacji

id: identyfikator sprzedawcy

isIABDostawca: jeśli dostawca jest ustawiony przez standard IAB (V1/V2)

boolean: Jeśli Sprzedawca ma Zgodę na ustawianie plików cookie.

Zwraca, jeśli Sprzedawca (id) ma uprawnienia do ustawiania plików cookies

 

Uwaga: Identyfikator dostawcy jest taki sam, jak pokazano na liście dostawców i może mieć przedrostek, taki jak C, S.

importujDane CMP(

kontekst kontekstowy, 

Ciąg cmpData

)

kontekst: Kontekst aplikacji

cmpDane: Ciąg, który zostanie ustawiony. ZgodaString powinna być przekazana jako zakodowana base64 

boolean

Jeśli import się powiódł lub wystąpiły błędy w ciągu?

Metoda importu, którą można wywołać w celu zaimportowania pełnej zgodyString wygenerowanej przez ConsentWebView do Shared Preferences tego urządzenia.

Akceptacja potrzeb (kontekst kontekstu)

kontekst: Kontekst aplikacji

boolean: jeśli użytkownik musi wyrazić zgodę

Zwraca, jeśli użytkownik musi wyrazić zgodę, ponieważ nie robił tego w przeszłości lub ponieważ serwer zgody zwrócił, że wymagana jest nowa zgoda

NeedServerUpdate (kontekst kontekstu)

kontekst: Kontekst aplikacji

boolean: Jeśli consentmanager wymaga aktualizacji

Jeśli ustawienia CMPSettings muszą zostać zaktualizowane z serwera, ponieważ nie było ich w tym dniu.

 

 

 

 

 

 

Powrót do góry