Info
Innehåll

Integrering av CMP API för appar

I vissa fall kan de befintliga SDK: erna inte användas och anpassade intergationer är nödvändiga. I det här fallet kan apputvecklare använda CMP API för appar för att manuellt integrera CMP i sin app.

arbetsflöde

CMP API för appar används i följande ordning:

  1. Appen kommer att fråga consentmanager server en gång per dag (första start av appen den här dagen). Den kommer att skicka den befintliga samtyckeinformationen och fråga consentmanager server oavsett om användaren behöver be om samtycke eller inte (igen).
  2. Beroende på svaret från consentmanager server kommer appen att visa tillståndsskiktet i en webbvy. Användaren kan informeras och göra sina val.
  3. När användaren är klar kommer webbvisningen att kommunicera detta till appen. Appen stänger webbvisningen och behandlar samtyckeinformationen.
  4. Appen kan sedan använda samtyckeinformation för sin egen databehandling.

1. Fråga consentmanager server

Som det första steget skickar appen en HTTP-begäran till:

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

Där följande makron ska ersättas av appen innan de skickas:

  • [consentmanager-server] - Server-domän (se Meny> Hämta kod> App SDK-inställningar)
  • [CMP-ID] - CMP-ID (se Meny> Hämta kod> App SDK-inställningar)
  • [Språk] - Språkkod för att visa meddelandet (t.ex. EN, FR, DE, ...)
  • [IDFA] - valfritt. IDFA för appen
  • [Appnamn] - valfritt. Appens namn för rapporteringsändamål
  • [Samtyckeinfo] - Samtyckeinformation mottagen från webbvyn (bas64-kodad version av samtycksdata)

Exempel på URL:

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

Svaret på denna begäran är en JSON-text som följande:

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

Fälten i svaret är som följer:

Fält Beskrivning
status

0 = Inget samtycke nödvändigt, webbvyn ska inte visas

1 = Samtycke nödvändigt, URL från fält url bör visas i webbvyn

2 = Fel uppstod, se message

regulation 0 = inga reglerinställningar, 1 = GDPR gäller, 2 = CCPA gäller, 3 = LGPD gäller, ...
message Felmeddelande som ska visas för utvecklaren.
url URL som ska visas i en webbvy

2. Visa webbvyn

Om samtalet till /delivery/appjson.php (se steg 1) resulterade i status = 1bör appen använda värdet från fältet url och öppna den i en webbvy (webbläsarfönster inbäddat i appen). URL: en visar en minimal HTML-sida som innehåller webbversionen av CMP-koden. Sidan innehåller också en "Skipp" -länk för att undvika problem med JavaScript-kompatibilitet.

För att visa CMP med alla funktioner bör webbvisningen tillhandahålla följande minimala funktioner:

  • HTML 5-support
  • CSS 3-stöd
  • JavaScript 1.2-stöd
  • DOM 3-support
  • Minimal upplösning på 300x300 pixlar (helst full bredd och min 80% höjd i stående läge)
  • Öppna / navigera till URL: er via https: protokoll (t.ex. sekretesspolicyer) genom att öppna ett nytt webbläsarfönster
  • Fånga när webbvyn försöker navigera till ett URN som börjar med protokollet "medgivande: //"

Appen bör inte tillåta användaren att hoppa över webbvyn på något annat sätt (t.ex. genom att inaktivera "tillbaka" -knappen eller liknande funktioner).

3. Behandling av samtyckeuppgifter

När användaren väl gjort sina val kommer CMP att ringa ett URN med protokollprefix samtycke: // följt av samtyckeinformation i base64-websafe kodad form. Exempel:

consent://Q083NU1KN084QXBEOEFmWlhDREVBOUNzQVBfQUFIX0FBQWlnR2t0Zl9YX2ZiMnZqLV81OTlfdDBlWTFmOV82M3Ytd3pqaGVOcy04TnlkX1hfTDRYdjJNeXZCMzZwcTRLdVI0a3UzYkJBUWR0SE9uY1RRbVJ3SWxWcVRMc2IwMk1yN05LSjdMRW1sc2JlMmRZR0g5dm45WFRfWktaNzBfX19fXzdfM19fX19fXzc3Xy1iXzRHa3RmX1hfZmIydmotXzU5OV90MGVZMWY5XzYzdi13empoZU5zLThOeWRfWF9MNFh2Mk15dkIzNnBxNEt1UjRrdTNiQkFRZHRIT25jVFFtUndJbFZxVExzYjAyTXI3TktKN0xFbWxzYmUyZFlHSDl2bjlYVF9aS1o3MF9fX19fN18zX19fX19fNzdfLWJfNENnS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRURBQWdMYUNRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFnb0FFQmJRYUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUhBQWdMYUVRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFoSUFFQmJRcUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUxBQWdMYUdRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFob0FFQmJRNkFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVBBQWdMYUlRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpSUFFQmJSS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVRBQWdMYUtRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpb0FFQmJRI18xXzE5XyNfczIxOF9jNTk3NV9zMjNfYzUxNDdfczdfYzUxNjNfczFfczI2X3MxMzVfczExMDRfczE0MDlfczkwNV9zMTRfYzQ0OTlfYzUxMzZfYzY5MjVfYzUzMzVfYzUzMzRfYzUxNThfYzUyMjNfYzUxMzVfczM0X3MzMF9VXyMxLS0tIzF-My4yOTUzLjI4NTguMTk4Ni4xMS4yMzYuMTUuMjg2Ni4xMjMyLjI3MTAuMjIuMjg5Mi4xNDk2LjI0NDEuMjE3Ni4zNS4xOTYwLjI0NjcuMTMzNi44MjcuMTUxNC4xNjQyLjI3MDIuMzU5LjI2MzIuMjgwMy44NS4yMjE0LjIyNzYuOTMyLjEyNDguNTcuMjE0MS4yMjcxLjE1MTcuMjY2Mi4xNDA5LjE0NTEuNTg3Ljk5MS4xODM0LjE1NDcuMTg1OC4xNzQxLjExNjcuMTk4Ny4xNzc2LjEwNjMuMjY5OS4yOTU3LjI2NjMuMjk3MS4yMDYyLjI3ODYuMjQ1My45ODcuMjkzNi4yMTYuNTk1LjI5MTAuNjIuMjYyMi4xNTMuMTU0LjIzMjAuMTY1LjE3OC4xMjI1LjI4NDcuMzE3Ljc3Ni4xODguNzk3LjUzNy4xMzI5LjMxNi4xOTUuNDkyLjg5LjIwOS4xMTAwLjI3MjcuMjAxNi45NTUuMjIxLjE3MDUuMTI5OC4yMjkuMjI5LjI1ODYuMjc3OS4yNTA2LjEyNzUuMTczNS4yNzA1LjEyNi4yNjM5LjExNzIuMjU1LjIyNTEuMjU5Ny40OC4yMjk1LjI3MS4xNzYwLjYyMS4yNzQuMjgwOC4xNjc0LjI2NjYuMTg4My4xNTk4LjE1NDIuMTczOS4yNjg5LjYwOS4xNDIzLjEyLjE1MDMuMjk3Mi4xNzMzLjI5NC4xOTA1LjI0MTMuNzIzLjExOTkuMzEzLjcyNS4xMDUyLjU5MC4xNzgwLjMxMC4zMDMuMTM0NC4zMzYuMjQ2NC4yMTIxLjEwNDcuMjI0Ny40MzIuMzQ4LjE4ODIuMTIxMi4yNzA0LjIyOTAuMjQzNy4zNjMuMjI5OS4yNzc4LjEwNjIuMjA3OS4zNzAuMTg5Mi4yODQzLjExNzEuMzg0LjEzNC4yODY4LjI3ODAuMTAyOC4yODMyLjM5OC43ODIuMzQwLjE3OTEuMjQxMC4yMDU5LjE2MS4yMTcwLjE1MjAuMjgxMC4yNjQ5Ljk3Ni4yMzExLjE0MTkuNDM4LjMxNC4yNzA5LjE2NTIuNDQzLjIzODIuMTA3Mi4yODcyLjIwMTIuMjkyOC4yNzA2LjQ1OS4yMjc4LjE4MDEuNjI0LjEzMTMuMjgwMi4yMzQ2Ljg2LjIxOTIuMTk4NS4xODc1LjE2ODQuMTkxMS4yMDc4LjE3OTQuMTI1LjE3MTYuMTIzNi44MTQuMTAyOS40NzkuMTI0MS4xOTU4LjkzMy4xOTQ1LjE2MjYuNTAzLjUxMC4xODMxLjI0ODEuMjc3Ny4yNTkuMjkwNS4yNTEyLjUyOC4xNTA5LjI2MjQuMTg3Mi4xNzIwLjgwLjI3NTguMjQyMi4yODI5

Appen kommer att fånga navigeringshändelsen, stänga webbvyn och bearbeta data enligt följande:

  1. Gör en websafe base64-avkodning:
    1. byt ut alla + med utrymme
    2. byt ut alla _ med /
    3. byt ut alla - med +
    4. lägg till = till slutet av strängen så att strängens längd kan delas med 4
    5. gör en base64-avkodning
    Ovanstående exempelsträng kommer att resultera i följande avkodade sträng:
    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. Dela upp data med #, du kommer att få fyra eller fler delar:
    1. Del: IAB TCF ConsentString (se https://iabeurope.eu/transparency-consent-framework/)
    2. Del: Syften ID (samtycke; Lista över ändamål ID separerade med _)
    3. Del: Leverantörs-ID (samtycke; Lista över leverantörs-ID åtskilda av _)
    4. Del: Googles ytterligare samtycke (se https://support.google.com/admanager/answer/9681920)
    5. Del: IAB USP Privacy String (se https://iabtechlab.com/standards/ccpa/)
    6. Del: Syften ID (legitimt intresse; Lista över ändamål ID åtskilda av _)
    7. Del: Leverantörs-ID (legitimt intresse; Lista över ändamål ID åtskilda av _)
    8. Del: Komprimerat anpassat ID-format (se Komprimerat anpassat ID-format)

  3. Avkoda varje del beroende på varje datadataformat.

Observera: Samtyckeinformation, vissa eller alla delar kan vara tomma (t.ex. om användarna trycker på hoppa-länken eller beroende på CMP-inställningar).

Glöm inte att lagra samtyckeinformation (websafe base64-kodad version som skickades från webbvyn till appen). Det behövs i steg 1 när du frågar om consentmanager servern.

Tillbaka till toppen