Info
Inhalt

Integration der CMP-API für Apps

In einigen Fällen können die vorhandenen SDKs nicht verwendet werden, und benutzerdefinierte Intergationen sind erforderlich. In diesem Fall können App-Entwickler die CMP-API für Apps verwenden, um das CMP manuell in ihre App zu integrieren.

Arbeitsablauf

Die CMP-API für Apps wird in der folgenden Reihenfolge verwendet:

  1. Die App fragt das ab consentmanager Server einmal pro Tag (erster Start der App an diesem Tag). Es sendet die vorhandenen Einwilligungsinformationen und fragt die consentmanager Server, ob der Benutzer (erneut) um Zustimmung gebeten werden muss oder nicht.
  2. Abhängig von der Antwort von der consentmanager Server zeigt die App die Zustimmungsschicht in einer Webansicht an. Der Benutzer kann sich informieren und seine Wahl treffen.
  3. Wenn der Benutzer fertig ist, teilt die Webansicht dies der App mit. Die App schließt die Webansicht und verarbeitet die Einwilligungsinformationen.
  4. Die App kann die Einwilligungsinformationen dann für ihre eigene Datenverarbeitung verwenden.

1. Abfragen der consentmanager Server

Als ersten Schritt sendet die App eine HTTP-Anfrage an:

https://[consentmanager-server]/delivery/appjson.php?id=[CMP-ID]&l=[Language]&idfa=[IDFA]&appname=[Appname]&consent=[Consent-Info]

Wo die folgenden Makros vor dem Senden durch die App ersetzt werden sollen:

  • [consentmanager-server] - Server-Domain (siehe Menü> Code abrufen> App SDK-Einstellungen)
  • [CMP-ID] - ID des CMP (siehe Menü> Code abrufen> App SDK-Einstellungen)
  • [Sprache] - Sprachcode zur Anzeige der Nachricht (zB EN, FR, DE, ...)
  • [IDFA] - optional. IDFA der App
  • [Appname] - optional. Name der App für Berichtszwecke
  • [Zustimmungsinfo] - Zustimmungsinformationen, wie sie von der Webansicht empfangen wurden (base64-codierte Version der Zustimmungsdaten)

Beispiel-URL:

https://consentmanager.mgr.consensu.org/delivery/appjson.php?id=123456&l=FR&appname=my%20App&consent=Qxc2j2J8aN....

Die Antwort auf diese Anfrage ist ein JSON-Text wie der folgende:

{
 "status":1, 
 "regulation":1, 
 "message":"", 
 "url":"https://consentmanager.mgr.consensu.org/delivery/appcmp.php?id=123456&consent=&appname=my%20App&l=FR"
 }

Die Felder in der Antwort lauten wie folgt:

Feld Beschreibung
status

0 = Keine Einwilligung erforderlich, Webview sollte nicht angezeigt werden

1 = Zustimmung erforderlich, URL aus Feld url sollte in der Webansicht angezeigt werden

2 = Fehler aufgetreten, siehe message

regulation 0 = keine Regelungseinstellungen, 1 = GDPR gilt, 2 = CCPA gilt, 3 = LGPD gilt, ...
message Fehlermeldung, die dem Entwickler angezeigt werden soll.
url URL, die in einer Webansicht angezeigt werden soll

2. Anzeigen der Webansicht

Wenn der Aufruf von /delivery/appjson.php (siehe Schritt 1) ​​dazu führte status = 1sollte die App den Wert aus Feld verwenden url und öffnen Sie es in einer Webansicht (in die App eingebettetes Browserfenster). Die URL zeigt eine minimale HTML-Seite an, die die Webversion des CMP-Codes enthält. Die Seite enthält auch einen "Skipp" -Link, um Probleme mit der JavaScript-Kompatibilität zu vermeiden.

Um das CMP mit allen Funktionen anzuzeigen, sollte die Webansicht die folgenden minimalen Funktionen bieten:

  • HTML 5-Unterstützung
  • CSS 3-Unterstützung
  • JavaScript 1.2-Unterstützung
  • DOM 3-Unterstützung
  • Minimale Auflösung von 300 x 300 Pixel (vorzugsweise volle Breite und minimale 80% Höhe im Hochformat)
  • Öffnen / Navigieren zu URLs über das https: -Protokoll (z. B. Datenschutzrichtlinien) durch Öffnen eines neuen Browserfensters
  • Erfassen, wenn die Webansicht versucht, zu einem URN zu navigieren, beginnend mit dem Protokoll "Zustimmung: //"

Die App sollte dem Benutzer nicht erlauben, die Webansicht auf andere Weise zu überspringen (z. B. durch Deaktivieren der Schaltfläche "Zurück" oder ähnlicher Funktionen).

3. Verarbeitung der Einwilligungsdaten

Sobald der Benutzer seine Auswahl getroffen hat, ruft der CMP eine URN mit Protokollpräfix-Einwilligung auf: // gefolgt von den Einwilligungsinformationen in base64-websafe-codierter Form. Beispiel:

consent://Q083NU1KN084QXBEOEFmWlhDREVBOUNzQVBfQUFIX0FBQWlnR2t0Zl9YX2ZiMnZqLV81OTlfdDBlWTFmOV82M3Ytd3pqaGVOcy04TnlkX1hfTDRYdjJNeXZCMzZwcTRLdVI0a3UzYkJBUWR0SE9uY1RRbVJ3SWxWcVRMc2IwMk1yN05LSjdMRW1sc2JlMmRZR0g5dm45WFRfWktaNzBfX19fXzdfM19fX19fXzc3Xy1iXzRHa3RmX1hfZmIydmotXzU5OV90MGVZMWY5XzYzdi13empoZU5zLThOeWRfWF9MNFh2Mk15dkIzNnBxNEt1UjRrdTNiQkFRZHRIT25jVFFtUndJbFZxVExzYjAyTXI3TktKN0xFbWxzYmUyZFlHSDl2bjlYVF9aS1o3MF9fX19fN18zX19fX19fNzdfLWJfNENnS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRURBQWdMYUNRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFnb0FFQmJRYUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUhBQWdMYUVRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFoSUFFQmJRcUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUxBQWdMYUdRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFob0FFQmJRNkFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVBBQWdMYUlRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpSUFFQmJSS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVRBQWdMYUtRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpb0FFQmJRI18xXzE5XyNfczIxOF9jNTk3NV9zMjNfYzUxNDdfczdfYzUxNjNfczFfczI2X3MxMzVfczExMDRfczE0MDlfczkwNV9zMTRfYzQ0OTlfYzUxMzZfYzY5MjVfYzUzMzVfYzUzMzRfYzUxNThfYzUyMjNfYzUxMzVfczM0X3MzMF9VXyMxLS0tIzF-My4yOTUzLjI4NTguMTk4Ni4xMS4yMzYuMTUuMjg2Ni4xMjMyLjI3MTAuMjIuMjg5Mi4xNDk2LjI0NDEuMjE3Ni4zNS4xOTYwLjI0NjcuMTMzNi44MjcuMTUxNC4xNjQyLjI3MDIuMzU5LjI2MzIuMjgwMy44NS4yMjE0LjIyNzYuOTMyLjEyNDguNTcuMjE0MS4yMjcxLjE1MTcuMjY2Mi4xNDA5LjE0NTEuNTg3Ljk5MS4xODM0LjE1NDcuMTg1OC4xNzQxLjExNjcuMTk4Ny4xNzc2LjEwNjMuMjY5OS4yOTU3LjI2NjMuMjk3MS4yMDYyLjI3ODYuMjQ1My45ODcuMjkzNi4yMTYuNTk1LjI5MTAuNjIuMjYyMi4xNTMuMTU0LjIzMjAuMTY1LjE3OC4xMjI1LjI4NDcuMzE3Ljc3Ni4xODguNzk3LjUzNy4xMzI5LjMxNi4xOTUuNDkyLjg5LjIwOS4xMTAwLjI3MjcuMjAxNi45NTUuMjIxLjE3MDUuMTI5OC4yMjkuMjI5LjI1ODYuMjc3OS4yNTA2LjEyNzUuMTczNS4yNzA1LjEyNi4yNjM5LjExNzIuMjU1LjIyNTEuMjU5Ny40OC4yMjk1LjI3MS4xNzYwLjYyMS4yNzQuMjgwOC4xNjc0LjI2NjYuMTg4My4xNTk4LjE1NDIuMTczOS4yNjg5LjYwOS4xNDIzLjEyLjE1MDMuMjk3Mi4xNzMzLjI5NC4xOTA1LjI0MTMuNzIzLjExOTkuMzEzLjcyNS4xMDUyLjU5MC4xNzgwLjMxMC4zMDMuMTM0NC4zMzYuMjQ2NC4yMTIxLjEwNDcuMjI0Ny40MzIuMzQ4LjE4ODIuMTIxMi4yNzA0LjIyOTAuMjQzNy4zNjMuMjI5OS4yNzc4LjEwNjIuMjA3OS4zNzAuMTg5Mi4yODQzLjExNzEuMzg0LjEzNC4yODY4LjI3ODAuMTAyOC4yODMyLjM5OC43ODIuMzQwLjE3OTEuMjQxMC4yMDU5LjE2MS4yMTcwLjE1MjAuMjgxMC4yNjQ5Ljk3Ni4yMzExLjE0MTkuNDM4LjMxNC4yNzA5LjE2NTIuNDQzLjIzODIuMTA3Mi4yODcyLjIwMTIuMjkyOC4yNzA2LjQ1OS4yMjc4LjE4MDEuNjI0LjEzMTMuMjgwMi4yMzQ2Ljg2LjIxOTIuMTk4NS4xODc1LjE2ODQuMTkxMS4yMDc4LjE3OTQuMTI1LjE3MTYuMTIzNi44MTQuMTAyOS40NzkuMTI0MS4xOTU4LjkzMy4xOTQ1LjE2MjYuNTAzLjUxMC4xODMxLjI0ODEuMjc3Ny4yNTkuMjkwNS4yNTEyLjUyOC4xNTA5LjI2MjQuMTg3Mi4xNzIwLjgwLjI3NTguMjQyMi4yODI5

Die App erfasst das Navigationsereignis, schließt die Webansicht und verarbeitet die Daten wie folgt:

  1. Führen Sie eine websichere Base64-Dekodierung durch:
    1. Ersetzen Sie alle + mit Raum
    2. Ersetzen Sie alle _ mit /
    3. Ersetzen Sie alle - mit +
    4. hinzufügen = bis zum Ende der Zeichenfolge, so dass die Länge der Zeichenfolge um 4 geteilt werden kann
    5. Führen Sie eine Base64-Decodierung durch
    Die obige Beispielzeichenfolge führt zu der folgenden dekodierten Zeichenfolge:
    CO75MJ7O8ApD8AfZXCDEA9CsAP_AAH_AAAigGktf_X_fb2vj-_599_t0eY1f9_63v-wzjheNs-8Nyd_X_L4Xv2MyvB36pq4KuR4ku3bBAQdtHOncTQmRwIlVqTLsb02Mr7NKJ7LEmlsbe2dYGH9vn9XT_ZKZ70_____7_3______77_-b_4Gktf_X_fb2vj-_599_t0eY1f9_63v-wzjheNs-8Nyd_X_L4Xv2MyvB36pq4KuR4ku3bBAQdtHOncTQmRwIlVqTLsb02Mr7NKJ7LEmlsbe2dYGH9vn9XT_ZKZ70_____7_3______77_-b_4CgKAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEDAAgLaCQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQgoAEBbQaAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEHAAgLaEQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQhIAEBbQqAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaELAAgLaGQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQhoAEBbQ6AYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEPAAgLaIQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQiIAEBbRKAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaETAAgLaKQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQioAEBbQ#_1_19_#_s218_c5975_s23_c5147_s7_c5163_s1_s26_s135_s1104_s1409_s905_s14_c4499_c5136_c6925_c5335_c5334_c5158_c5223_c5135_s34_s30_U_#1---#1~3.2953.2858.1986.11.236.15.2866.1232.2710.22.2892.1496.2441.2176.35.1960.2467.1336.827.1514.1642.2702.359.2632.2803.85.2214.2276.932.1248.57.2141.2271.1517.2662.1409.1451.587.991.1834.1547.1858.1741.1167.1987.1776.1063.2699.2957.2663.2971.2062.2786.2453.987.2936.216.595.2910.62.2622.153.154.2320.165.178.1225.2847.317.776.188.797.537.1329.316.195.492.89.209.1100.2727.2016.955.221.1705.1298.229.229.2586.2779.2506.1275.1735.2705.126.2639.1172.255.2251.2597.48.2295.271.1760.621.274.2808.1674.2666.1883.1598.1542.1739.2689.609.1423.12.1503.2972.1733.294.1905.2413.723.1199.313.725.1052.590.1780.310.303.1344.336.2464.2121.1047.2247.432.348.1882.1212.2704.2290.2437.363.2299.2778.1062.2079.370.1892.2843.1171.384.134.2868.2780.1028.2832.398.782.340.1791.2410.2059.161.2170.1520.2810.2649.976.2311.1419.438.314.2709.1652.443.2382.1072.2872.2012.2928.2706.459.2278.1801.624.1313.2802.2346.86.2192.1985.1875.1684.1911.2078.1794.125.1716.1236.814.1029.479.1241.1958.933.1945.1626.503.510.1831.2481.2777.259.2905.2512.528.1509.2624.1872.1720.80.2758.2422.2829
  2. Teilen Sie die Daten durch # auf, Sie erhalten 4 oder mehr Teile:
    1. Teil: IAB TCF ConsentString (siehe https://iabeurope.eu/transparency-consent-framework/)
    2. Teil: Zweck-IDs (Zustimmung; Liste der Zweck-IDs getrennt durch _)
    3. Teil: Lieferanten-IDs (Zustimmung; Liste der Lieferanten-IDs getrennt durch _)
    4. Teil: Zusätzliche Zustimmungszeichenfolge von Google (siehe https://support.google.com/admanager/answer/9681920)
    5. Teil: IAB USP Privacy String (siehe https://iabtechlab.com/standards/ccpa/)
    6. Teil: Zweck IDs (berechtigtes Interesse; Liste der Zweck IDs getrennt durch _)
    7. Teil: Lieferanten-IDs (berechtigtes Interesse; Liste der Zweck-IDs getrennt durch _)
    8. Teil: Format der komprimierten benutzerdefinierten IDs (siehe Format für komprimierte benutzerdefinierte IDs)

  3. Dekodieren Sie jedes Teil abhängig vom Datenformat jedes Teils.

Bitte beachten Sie: Die Einwilligungsinformationen, einige oder alle Teile können leer sein (z. B. wenn der Benutzer den Skipp-Link drückt oder abhängig von den CMP-Einstellungen).

Vergessen Sie nicht, die Einwilligungsinformationen zu speichern (websafe base64-codierte Version, die von der Webansicht an die App gesendet wurde). Es wird in Schritt 1 in benötigt, wenn das abgefragt wird consentmanager Server.

Nach oben