Przegląd
Dla naszych klientów, którzy integrują nasz CMP SDK wraz z jednym z poniższych SDK innych firm, przygotowaliśmy ten dokument, w którym znajdziesz poszczególne przewodniki pokazujące, w jaki sposób zgody zebrane za pomocą naszego CMP SDK są przekazywane do tych SDK. Nasz CMP jest w pełni zgodny z TCF v2.2 i gromadzi dane dotyczące zgody DMA oraz przechowuje je w SharedPreferences. Niektóre z poniższych SDK mogą pobierać te dane automatycznie, a inne wymagają wprowadzenia kodu. Prosimy o zapoznanie się z poszczególnymi przypadkami użycia poniżej.
Ściśle przestrzegaj kolejności wywołań różnych SDK. Nasze SDK CMP musi uzyskać zgodę użytkowników przed wywołaniem jakiejkolwiek akcji w poniższych SDK stron trzecich.
W przypadku niektórych SDK od dostawców takich jak AppsFlyer, AdJust i Branch musisz albo (a) wywołać naszą updateThirdPartyConsent() , która automatycznie przekaże zebrane zgody do tych SDK poprzez introspekcję/refleksję, albo (b) użyć ich własnych metod i właściwości, aby zrobić to ręcznie. Jeśli korzystasz z naszego SDK CMP do automatycznego przekazywania danych dotyczących zgody, oto przykład implementacji:
import net.consentmanager.cm_sdk_android_v3.CMPManager
import net.consentmanager.cm_sdk_android_v3.CMPManagerDelegate
import net.consentmanager.cm_sdk_android_v3.ConsentLayerUIConfig
import net.consentmanager.cm_sdk_android_v3.UrlConfig
public class AppsflyerBasicApp extends Application {
@Override
public void onCreate() {
super.onCreate()
// Initialize your third-party SDK. Replace the code below by your respective third-party init code
// according to the instructions along this document
String yourClientToken = "YOUR-CLIENT-TOKEN"
YourThirdPartySdk yourThirdPartySdk = YourThirdPartySdk.getInstance()
yourThirdPartySdk.init(yourClientToken)
// Initializing our CMP SDK
val urlConfig = UrlConfig(
id = "YOUR_CODE_ID_HERE",
domain = "delivery.consentmanager.net",
language = "EN",
appName = "CMDemoAppKotlin"
)
cmpManager = CMPManager.getInstance(
context = this,
urlConfig = urlConfig,
webViewConfig = webViewConfig,
delegate = this
)
cmpManager.setActivity(this)
// Here our CMP SDK will automatically display the consent layer if there is no consent
// or the consent is expired. The didReceiveConsent() callback below will be triggered
// once user consent is collected, which happens right after the users accepts/rejects
// and all IAB TCF data is persisted to the SharedPreferences area
checkAndOpen()
}
override fun didReceiveConsent(consent: String, jsonObject: Map<String, Any>) {
Log.d("CMP DemoApp", "Consent Layer successfully received consent message.")
// Here we'll automatically handle the passing of the consent from our
// CMP SDK to the 3P SDK
cmpManager.updateThirdPartyConsent()
}
}
Aby uzyskać więcej informacji, przejdź do odpowiednich instrukcji stron trzecich poniżej.
AppsFlyer
Ten SDK wyszukuje ciąg TCF zapisany w SharedPreferences obszarze urządzenia, zapewniając automatyczny przepływ zgód zebranych na urządzeniu za pośrednictwem naszego SDK CMP do zdarzeń AppsFlyer. Aby przekazać dane dotyczące zgody do AppsFlyer, postępuj zgodnie z poniższymi instrukcjami:
- Zainicjuj SDK AppsFlyer i włącz gromadzenie danych TCF. W kodzie przedstawionym w sekcji Przegląd niniejszego dokumentu zastąp część dotyczącą inicjalizacji podmiotów zewnętrznych następującym fragmentem:
AppsFlyerLib.getInstance().init(<YOUR_DEV_KEY>, null, this);
AppsFlyerLib.enableTCFDataCollection(true);
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebujesz okna dialogowego dotyczącego zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy też dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W przykładzie w przeglądzie używamydidReceiveConsent()wywołania zwrotnego - Ostatni krok można wykonać na dwa sposoby: (a) możesz skorzystać z naszego fragmentu kodu z przeglądu lub (b) możesz zastąpić go metodą AppFlyer
start(). W tym drugim przypadku zastąp wiersz wewnątrz naszegodidReceiveMessagecallback na poniższy wiersz:
AppsFlyerLib.getInstance().start(this);
AdJust
Ten SDK nie pobiera danych dotyczących zgody przechowywanych w SharedPreferences obszarze urządzenia, więc masz dwa sposoby na osiągnięcie tego celu: (a) automatyczny, który będzie w całości obsługiwany przez nasz SDK CMP; oraz (b) ręczny, w którym wykorzystasz funkcje obu SDK, aby to osiągnąć. Postępuj zgodnie z poniższymi instrukcjami:
- Zainicjuj SDK AdJust
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebujesz okna dialogowego dotyczącego zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy też dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne w
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W poniższym przykładzie używamydidReceiveConsent()callback - Na koniec możesz albo (a) wywołać
updateThirdPartyConsent()z naszego CMP SDK, co automatycznie przekaże dane do SDK AdJust poprzez introspekcję/refleksję, albo zastąpić go poniższym kodem:
override fun didReceiveConsent(consent: String, jsonObject: Map<String, Any>) {
Log.d("CMP DemoApp", "Consent Layer successfully received consent message.")
// Retrieve Google Consent Mode data...
val consentData = cmpManager.getGoogleConsentModeStatus();
// ... and parse it to pass to AdJust SDK
val adStorageConsent = consentSettings["ad_storage"] == "granted" ? "1" : "0"
val adPersonalizationConsent = consentSettings["ad_personalization"] == "granted" ? "1" : "0"
val adjustThirdPartySharing = AdjustThirdPartySharing(true)
adjustThirdPartySharing.addGranularOption("google_dma", "eea", "1");
adjustThirdPartySharing.addGranularOption("google_dma", "ad_personalization", adPersonalizationConsent);
adjustThirdPartySharing.addGranularOption("google_dma", "ad_user_data", adStorageConsent);
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
}
Oddział
Ten SDK nie pobiera danych dotyczących zgody przechowywanych w SharedPreferences obszarze urządzenia, więc masz dwie możliwości osiągnięcia tego celu: (a) automatyczną, którą w całości obsłuży nasz CMP SDK; oraz (b) ręczną, w której wykorzystasz funkcje obu SDK, aby to osiągnąć.
- Zainicjuj gałąź przy użyciu tokenu aplikacji
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebujesz okna dialogowego dotyczącego zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy też dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W poniższym przykładzie używamydidReceiveConsent()callback - Na koniec możesz albo (a) wywołać
updateThirdPartyConsent()z naszego CMP SDK, co automatycznie przekaże dane do SDK AdJust poprzez introspekcję/refleksję, albo zastąpić go poniższym kodem:
override fun didReceiveConsent(consent: String, jsonObject: Map<String, Any>) {
Log.d("CMP DemoApp", "Consent Layer successfully received consent message.")
// Retrieve Google Consent Mode data...
val consentData = cmpManager.getGoogleConsentModeStatus();
// ... and parse it to pass to AdJust SDK
val adStorageConsent = consentSettings["ad_storage"] == "granted"
val adPersonalizationConsent = consentSettings["ad_personalization"] == "granted"
// Example for an EEA resident
Branch.getInstance().setDMAParamsForEEA(true,adPersonalizationConsent,adStorageConsent)
// Example for an non-EEA resident
Branch.getInstance().setDMAParamsForEEA(false,adPersonalizationConsent,adStorageConsent)
// For further information, check:
// https://help.branch.io/developers-hub/docs/ios-advanced-features#user-data
}
Kochava
Ten SDK wyszukuje ciąg TCF zapisany w SharedPreferences obszarze urządzenia, zapewniając automatyczny przepływ zgód zebranych na urządzeniu za pośrednictwem naszego SDK CMP do zdarzeń AppsFlyer. Aby przekazać dane dotyczące zgody do AppsFlyer, postępuj zgodnie z poniższymi instrukcjami:
- Zainicjuj SDK Kochava
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebujesz okna dialogowego dotyczącego zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy też dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W przykładzie w przeglądzie używamydidReceiveConsent()wywołania zwrotnego - Ostatni krok można wykonać na dwa sposoby: (a) możesz skorzystać z naszego fragmentu kodu z przeglądu lub (b) możesz zastąpić go metodą Kochavy
startWithAppGuid(). W tym drugim przypadku zastąp linię wewnątrz naszegodidReceiveMessagecallback na poniższy wiersz:
Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")
Liczba pojedyncza
Ten SDK wyszukuje ciąg TCF zapisany w SharedPreferences obszarze urządzenia, zapewniając automatyczny przepływ zgód zebranych na urządzeniu za pośrednictwem naszego SDK CMP do zdarzeń AppsFlyer. Aby przekazać dane dotyczące zgody do AppsFlyer, postępuj zgodnie z poniższymi instrukcjami:
- Zainicjuj SDK Singular
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebujesz okna dialogowego dotyczącego zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W przykładzie w przeglądzie używamydidReceiveConsent()wywołania zwrotnego - Ostatni krok można wykonać na dwa sposoby: (a) możesz skorzystać z naszego fragmentu kodu z przeglądu lub (b) możesz go zastąpić metodą Singular
trackingOptIn(). W tym drugim przypadku zastąp wiersz wewnątrz naszegodidReceiveMessagewywołania zwrotnego poniższą linią:
Singular.trackingOptIn();
AirBridge
Ten SDK wyszukuje ciąg TCF zapisany w SharedPreferences obszarze urządzenia, zapewniając automatyczny przepływ zgód zebranych na urządzeniu za pośrednictwem naszego SDK CMP do zdarzeń AppsFlyer. Aby przekazać dane dotyczące zgody do AppsFlyer, postępuj zgodnie z poniższymi instrukcjami:
- Zainicjuj SDK AirBridge
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebne jest okno dialogowe dotyczące zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy też dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W przykładzie w przeglądzie używamydidReceiveConsent()wywołania zwrotnego - Ostatni krok można wykonać na dwa sposoby: (a) możesz skorzystać z naszego fragmentu kodu z przeglądu lub (b) możesz zastąpić go metodą AirBridge
startTracking(). W tym drugim przypadku zastąp wiersz wewnątrz naszegodidReceiveMessagecallback na poniższy wiersz:
Airbridge.startTracking()
Tenjin
Ten SDK wyszukuje ciąg TCF zapisany w SharedPreferences obszarze urządzenia, zapewniając automatyczny przepływ zgód zebranych na urządzeniu za pośrednictwem naszego SDK CMP do zdarzeń AppsFlyer. Aby przekazać dane dotyczące zgody do AppsFlyer, postępuj zgodnie z poniższymi instrukcjami:
- Zainicjuj SDK Tenjin
- Zainicjuj nasze SDK CMP
- Skorzystaj z naszego CMP SDK, aby automatycznie zdecydować, czy w bieżącej sesji potrzebujesz okna dialogowego dotyczącego zgody.
- W razie potrzeby wyświetli się okno dialogowe zgody, aby zarejestrować wybory użytkownika, czy to akceptację wszystkich, odrzucenie wszystkich, czy też dostosowanie opcji.
- Uzyskaj potwierdzenie od dostawcy CMP, że użytkownik wyraził zgodę, a dane są dostępne
SharedPreferences. Istnieją różne sposoby, aby to zrobić za pomocą naszego SDK CMP. W przykładzie w przeglądzie używamydidReceiveConsent()wywołania zwrotnego - Ostatni krok można wykonać na dwa sposoby: (a) możesz skorzystać z naszego fragmentu kodu z przeglądu lub (b) możesz go zastąpić metodami Tenjin
optIn()/optOut().