W tym dokumencie znajdziesz ogólne informacje na temat integracji naszego SDK z Twoim projektem. Aby uzyskać więcej szczegółów, zapoznaj się z naszą dokumentacją API Reference. Wszystkie poniższe fragmenty kodu zostały zaczerpnięte z naszej aplikacji demonstracyjnej.
1. Instalacja
consentmanager SDK to kompleksowe rozwiązanie do zarządzania zgodą użytkownika w aplikacjach mobilnych. Zaprojektowany z myślą o zgodności z RODO, preferencjach użytkowników dotyczących prywatności oraz przejrzystości śledzenia reklam, ten SDK zapewnia płynną integrację z platformami iOS i Android. Dodatkowo oferuje wtyczki/mostki dla React Native, Flutter i Unity, dzięki czemu jest wszechstronny w różnych środowiskach programistycznych.
Kroki – ogólny opis
-
Integracja i konfiguracja:
- Zintegruj SDK ze swoją aplikacją.
- Skonfiguruj ustawienia SDK zgodnie ze swoimi potrzebami.
-
Tworzenie instancji i wyświetlanie warstwy zgody:
- Po uruchomieniu aplikacji utwórz instancję klasy
CMPManagerklasy. Instancja ta będzie obsługiwać proces uzyskiwania zgody. - W razie potrzeby SDK automatycznie wyświetli ekran zgody.
- Po uruchomieniu aplikacji utwórz instancję klasy
-
Przetwarzanie danych dotyczących zgody użytkownika:
- Po zebraniu zgód informacje są przechowywane i dostępne do wyszukiwania za pomocą różnych właściwości i metod udostępnianych przez nasz SDK. Będziesz mieć informacje o odrzuconych lub zaakceptowanych zgodach, dostawcach i celach.
1.1 Integracja i konfiguracja
Opcja 1: CocoaPods
Dodaj następujący wiersz do pliku Podfile:
pod 'cm-sdk-ios-v3', '3.2.0'
Następnie uruchom:
pod install --repo-update
Opcja 2: Swift Package Manager
- Pobierz najnowszą wersję XCFramework z naszej strony z wydaniami na GitHubie.
- W XCode przejdź do menu
File>Add Package Dependency. - Dodaj powyżej adres URL repozytorium SDK
- SPM pobierze teraz repozytorium i poprosi o wybranie wersji.
Możesz dodać pakiet, wybierając regułę wersji
:Up to Next Major: Spowoduje to aktualizację pakietu do następnej głównej wersji. Jest to zalecana opcja, ponieważ dodaje aktualizacje, które nie zawierają zmian powodujących
niekompatybilność.Up to Next Minor: Spowoduje to aktualizację pakietu do następnej wersji
drugorzędnej.Exact: Spowoduje to zablokowanie pakietu na konkretnej wersji. Żadne aktualizacje nie zostaną zainstalowane. - Zaimportuj SDK, wstawiając na początku klas implementujących metody SDK poniższą linię:
import cm_sdk_ios_v3
- W ustawieniach docelowego serwisu przejdź do „Ogólne” > „Frameworki, biblioteki i treści osadzone” i upewnij się, że framework jest ustawiony na „Osadź i podpisz”.
1.2 Tworzenie instancji i wyświetlanie warstwy zgody
W ramach funkcji app-start (twojej viewDidLoad funkcji) musisz utworzyć instancję klasy CMPManager. Musisz skonfigurować dwa obiekty, które zostaną przekazane do metody getInstance: UrlConfig, która obsługuje konfigurację CMP, taką jak identyfikator kodu i domyślny język, oraz ConsentLayerUIConfig, która skonfiguruje wygląd WKWebView, w którym wyświetlona zostanie warstwa zgody. Następnie przekażesz bieżącą ViewController za pomocą metody setPresentingViewControlleri przypisać delegata, jak pokazano poniżej. W poniższym przykładzie można znaleźć oba przekazywane obiekty. Funkcja checkWithServerAndOpenIfNecessary() Funkcja automatycznie pobierze niezbędne dane z naszego serwera i ustali, czy ekran zgody musi zostać wyświetlony, czy nie. Jeśli tak, SDK automatycznie wyświetli w tym momencie ekran zgody za pośrednictwem WKWebView utworzonego przez nasz SDK, który wyświetli warstwę zgody z tekstem i przyciskami zgodnie z konfiguracjami CMP (wybranymi za pomocą identyfikatora Code-ID danego CMP), zbierze dane i zapisze informacje o zgodzie w obszarze NSUserDefaults urządzenia, dzięki czemu aplikacja będzie mogła odpowiednio wyświetlać reklamy ukierunkowane.
Pamiętaj, że kluczowe znaczenie ma zadeklarowanie i zainicjowanie CMPManager SDK w viewDidLoad , w przeciwnym razie widok może nie być gotowy do użycia, a SDK może nie działać. Upewnij się również, że używasz prawidłowych danych konfiguracyjnych. Dane konfiguracyjne można znaleźć na koncie ConsentManager w Menu > CMP > Pobierz kod dla aplikacji > ID kodu
Należy również pamiętać, że funkcje związane z ustalaniem, czy zgoda jest potrzebna, czy nie, a także wyświetlanie warstwy zgody, zależą od niezawodnego połączenia sieciowego. Jeśli nie ma dostępnego połączenia lub jeśli mechanizm ponownej próby nie zdoła połączyć się z naszym serwerem, zdarzenie didReceiveError zwróci błąd przekroczenia limitu czasu, a zatem SDK nie będzie w stanie w ogóle ustalić konieczności uzyskania zgody, ponieważ nie będzie w stanie wyświetlić warstwy zgody. Proszę upewnić się, że logika uwzględnia ten fakt.
Przykład:
import cm_sdk_ios_v3
class YourViewController: UIViewController, CMPManagerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let cmpManager = CMPManager.shared
cmpManager.setUrlConfig(UrlConfig(
id: "your_id_here", // example: a000aaaaa1a
domain: "your_domain_here", // usually, delivery.consentmanager.net
language: "your_language_here", // example: DE
appName: "Your App Name")) // example: testApp
cmpManager.setWebViewConfig(ConsentLayerUIConfig(
position: .fullScreen,
backgroundStyle: .dimmed(.black, 0.5),
cornerRadius: 5,
respectsSafeArea: true,
allowsOrientationChanges: true))
cmpManager.setPresentingViewController(self)
cmpManager.delegate = self
cmpManager.checkAndOpen { error in
if let error = error {
print("Error initializing consent: (error)")
} else {
print("ConsentManager initialized and consent received and stored on the device's NSUserDefaults.")
}
}
}
1.3 Przetwarzanie danych dotyczących zgody użytkowników
Sprawdzanie zgód użytkowników
Nasz SDK oferuje ujednolicony sposób sprawdzania i pobierania informacji o zgodzie, getUserStatus():
let status = CMPManager.shared.getUserStatus()
var message = "Status: (status.status)nn"
message += "Vendors:n"
for (vendorId, state) in status.vendors {
message += "- (vendorId): (state)n"
}
message += "nPurposes:n"
for (purposeId, state) in status.purposes {
message += "- (purposeId): (state)n"
}
message += "nTCF: (status.tcf)n"
message += "Additional Consent: (status.addtlConsent)n"
message += "Regulation: (status.regulation)"
print(message)
Więcej informacji na temat innych metod znajdziesz w naszej pełnej dokumentacji API.
Ponowne otwarcie warstwy zgody w celu sprawdzenia wyborów użytkowników
Aby umożliwić użytkownikowi sprawdzenie lub zmianę swoich wyborów, wystarczy po prostu wywołać openConsentLayer()
cmpManager.forceOpen()
Ta metoda wyświetli warstwę zgody za pośrednictwem tej samej instancji WKWebView utworzonej w poprzednich krokach.
Importowanie/eksportowanie informacji o zgodzie do innych źródeł
W niektórych przypadkach aplikacja natywna może zawierać widoki internetowe w celu wyświetlania informacji, takich jak reklamy lub treści. Aby przesłać informacje o zgodzie z SDK do widoku internetowego, możesz pobrać ciąg znaków zgody za pomocą:
consentData = cmpManager.exportCMPInfo()
Spowoduje to wyeksportowanie informacji o zgodzie oraz wszystkich dalszych danych potrzebnych CMP. Następnie możesz przekazać te informacje do CMP znajdującego się w Twoim widoku internetowym, dodając je do adresu URL wywoływanego w tym widoku.
Jeśli natomiast musisz zaimportować ciąg tekstowy zgody za pomocą SDK, możesz skorzystać z poniższego przykładu:
let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)
Integracja z Apple Tracking Transparency (ATT)
Jeśli w swojej aplikacji korzystasz z narzędzi do śledzenia lub analityki, zalecamy zapoznanie się z przewodnikiem dotyczącym wdrażania ATT, dostępnym tutaj.
Tworzenie niestandardowego układu
Aby stworzyć spersonalizowany widok WKWebView, na przykład zmieniając jego położenie lub tło, możesz zmodyfikować konfigurację przekazaną do obiektu ConsentLayerUIConfig w następujący sposób:
ConsentLayerUIConfig(
position: .halfScreenTop,
backgroundStyle: .dimmed(.grey, 0.75),
cornerRadius: 20,
respectsSafeArea: false,
allowsOrientationChanges: true)
Logowanie
Korzystając z naszego SDK dla iOS, możesz potrzebować debugowania lub analizy informacji z logów w różnych celach. Logi generowane przez nasze SDK są oznaczone tagiem „CMP”, co pozwala łatwo filtrować i wyświetlać tylko te logi, które są istotne. Więcej informacji znajdziesz w tej sekcji naszej dokumentacji.