[iOS] 1. consentmanager Integracja SDK
W tym dokumencie znajdziesz ogólne informacje na temat integracji naszego SDK z Twoim projektem. Więcej szczegółów znajdziesz w naszym Dokumentacja API dokumentacja.
1. Instalacja
consentmanager SDK to kompleksowe rozwiązanie do zarządzania zgodą użytkownika w aplikacjach mobilnych. Zaprojektowany do obsługi zgodności z GDPR, preferencji prywatności użytkownika i przejrzystości śledzenia reklam, ten SDK zapewnia bezproblemową integrację z platformami iOS i Android. Ponadto oferuje wtyczki/mostki wrapper dla React Native, Flutter i Unity, co czyni go wszechstronnym w różnych środowiskach programistycznych.
Kroki — opis wysokiego poziomu
-
Integracja i konfiguracja:
- Zintegruj pakiet SDK ze swoją aplikacją.
- Skonfiguruj ustawienia SDK zgodnie ze swoimi potrzebami.
-
Tworzenie instancji i wyświetlanie warstwy zgody:
- Podczas uruchamiania aplikacji utwórz instancję
CMPManager
klasa. Ta instancja będzie obsługiwać proces wyrażania zgody. - W razie potrzeby zestaw SDK automatycznie wyświetli ekran zgody.
- Podczas uruchamiania aplikacji utwórz instancję
-
Przetwarzanie danych zgody użytkownika:
- Po zebraniu zgód informacje są przechowywane i dostępne do zapytania za pośrednictwem różnych właściwości i metod udostępnianych przez nasz zestaw 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.0.0'
Następnie uruchomić:
pod install --repo-update
Opcja 2: Menedżer pakietów Swift
- Pobierz najnowszą wersję XCFramework z naszego Strona wydania GitHub.
- 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 wersji głównej. Jest to zalecana opcja, ponieważ dodaje aktualizacje, które nie mają istotnych zmian.
-Up to Next Minor
: Spowoduje to aktualizację pakietu do następnej wersji pomocniczej.
-Exact
: Spowoduje to zablokowanie pakietu w określonej wersji. Żadne aktualizacje nie zostaną zainstalowane. - Zaimportuj zestaw SDK, wstawiając na początku klas implementujących metody zestawu SDK wiersz poniżej:
import cm_sdk_ios_v3
- W ustawieniach celu przejdź do sekcji „Ogólne” > „Struktury, biblioteki i osadzone treści” i upewnij się, że struktura jest ustawiona na „Osadź i podpisz”.
1.2 Tworzenie instancji i wyświetlanie warstwy zgody
W ramach startu aplikacji (twój viewDidLoad
funkcja), musisz utworzyć instancję klasy CMPManager
. Musisz skonfigurować dwa obiekty, które zostaną przekazane do metody getInstance: UrlConfig
, który obsługuje konfigurację CMP, taką jak Code-ID i domyślny język, i ConsentLayerUIConfig
. który skonfiguruje wygląd WKWebView, który wyświetli warstwę zgody. Następnie przekażesz bieżącą ViewController
używając metody setPresentingViewController
i przypisz delegata, jak pokazano poniżej. W poniższym przykładzie możesz znaleźć oba przekazywane obiekty. checkWithServerAndOpenIfNecessary()
funkcja automatycznie pobierze niezbędne dane z naszego serwera i określi, czy ekran zgody musi zostać wyświetlony, czy nie. Jeśli tak, SDK automatycznie wyświetli ekran zgody w tym momencie, za pośrednictwem WKWebView
utworzony przez nasz zestaw SDK, który wyświetli warstwę zgody z tekstem i przyciskami zgodnie z konfiguracją CMP (wybraną za pomocą identyfikatora kodu CMP), zbierze dane i zapisze informacje o zgodzie w obszarze NSUserDefaults urządzenia, dzięki czemu aplikacja będzie mogła wyświetlać odpowiednie reklamy.
Należy pamiętać, że istotne jest zadeklarowanie i zainicjowanie CMPManager
SDK w viewDidLoad
metoda, w przeciwnym razie widok może nie być gotowy do użycia i SDK może się nie powieść. Upewnij się również, że używasz prawidłowych danych konfiguracyjnych. Dane konfiguracyjne można znaleźć w consentmanager konto na Menu > CMP > Pobierz kod dla aplikacji > Code-ID
Należy również pamiętać, że funkcjonalności związane z określeniem, 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 dotrze do naszego serwera, zdarzenie didReceiveError zwróci błąd limitu czasu, a zatem SDK nie będzie w stanie określić potrzeby zgody, ponieważ nie będzie w stanie wyświetlić warstwy zgody. Upewnij się, że Twoja logika to uwzględnia.
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.checkWithServerAndOpenIfNecessary { 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 zgody użytkowników
Sprawdzanie zgód użytkowników
Nasz SDK oferuje różne metody sprawdzania i pobierania informacji o zgodzie. Główne metody są wyświetlane w poniższym przykładzie:
// On the example below retrieved from our Demo App, we have some examples
// of how to check consents from the user, either accepted or rejected.
let hasConsent = CMPManager.shared.hasUserChoice() // checks if the user has already accepted/rejected consents
let hasPurposeC53 = CMPManager.shared.hasPurposeConsent(id: "c53") // checks if the user accepted the purpose "c53"
let hasVendorS2790 = CMPManager.shared.hasVendorConsent(id: "s2790") // checks if the user accepted the vendor "s2790"
Aby uzyskać więcej informacji na temat innych metod, zapoznaj się z naszą pełną wersją Dokumentacja 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 zadzwonić pod numer openConsentLayer()
cmpManager.openConsentLayer()
Ta metoda wyświetli warstwę zgody za pośrednictwem tej samej instancji WKWebView, która została utworzona w poprzednich krokach.
Importowanie/eksportowanie informacji o zgodzie do innych źródeł
W niektórych przypadkach aplikacja natywna może zawierać webviews w celu wyświetlania informacji, takich jak reklamy lub treści. Aby przesłać informacje o zgodzie z SDK do webview, możesz pobrać ciąg zgody za pomocą:
consentData = cmpManager.exportCMPInfo()
Spowoduje to wyeksportowanie informacji o zgodzie i wszystkich dalszych danych, które są potrzebne CMP. Następnie możesz przekazać te informacje do CMP, który znajduje się w Twoim widoku internetowym, dodając je do adresu URL, który jest wywoływany w widoku internetowym.
Jeśli w przeciwnym razie musisz zaimportować ciąg zgody za pomocą zestawu SDK, możesz skorzystać z poniższego przykładu:
let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)
Integracja z Apple Tracking Transparency (ATT)
Jeśli korzystasz ze śledzenia lub analityki w swojej aplikacji, zalecamy zapoznanie się z przewodnikiem Implementacja ATT tutaj.
Tworzenie niestandardowego układu
Aby utworzyć niestandardowy widok WKWebView, na przykład zmienić jego położenie lub tło, możesz zmienić 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
Podczas korzystania z naszego zestawu SDK dla systemu iOS może zaistnieć potrzeba debugowania lub analizowania informacji z dziennika w różnych celach. Dzienniki generowane przez nasz zestaw SDK są oznaczone jako „CMP”, co pozwala na łatwe filtrowanie i przeglądanie tylko odpowiednich dzienników. Aby uzyskać więcej informacji, zapoznaj się z w tej sekcji naszej dokumentacji.