Wiki

Clone wiki

madvertise-gdpr-cmp-ios / cmp_migrate

Migrate from TCF v1 to TCF v2

This documentation will go through all the steps required to migrate from TCF v1 to TCF v2.

We have made major changes to the library by changing the code from JAVA to Kotlin. It is advisable to delete the old installation and reinstall it from the first.

Step 1: Update SDK File

Make sure the latest SDK is used :

First you will need to add the framework to you project:

Using Cocoapods:

The MAdvertiseCMP framework is available through Cocoapods. see Using CocoaPods section.

Manually :

download the latest version of MAdvertiseCMP framework, add it to your project and make sure it s included in 'Embedded binaries' in the general tab of your project configuration.

You can find the file here :MAdvertiseCMP framework

Step 2: Configuration File

Update the configuration file as follows:

Add Resources :

English Config

  "VendorDetailSPPurposes": "Special Uses",
  "VendorDetailSPFeatures": "Special Features",
  "VendorDetailPolicy": "See the privacy policy",
  "ConsentToolPartnersFakeIAB": "Non-IAB Partners:",
  "ConsentToolPartnersIAB": "IAB Partners:",
  "VendorListGoogleAdsShow": "See List of Advertising Technology Suppliers",
  "VendorListGoogleAdsLabel": "Advertising technology providers",
  "LegitimateUses": "Legitimate \n Uses",

French Config

  "VendorDetailSPPurposes": "Usages spéciaux",
  "VendorDetailSPFeatures": "Fonctionnalités spéciales",
  "VendorDetailPolicy": "Voir la politique de confidentialité",
  "ConsentToolPartnersFakeIAB": "Partenaires ne faisant pas partis de l'IAB:",
  "ConsentToolPartnersIAB": "Partenaires faisant partis de l'IAB:",
  "VendorListGoogleAdsShow": "Voir la Liste des fournisseurs de technologies publicitaires",
  "VendorListGoogleAdsLabel": "Fournisseurs de technologies publicitaires",
  "LegitimateUses": "Usages \n Légitimes",

German Config

  "VendorDetailSPPurposes": "Besondere Verwendungszwecke",
  "VendorDetailSPFeatures": "Besondere Merkmale",
  "VendorDetailPolicy": "Siehe die Datenschutzrichtlinie",
  "ConsentToolPartnersFakeIAB": "Nicht IAB Partner:",
  "ConsentToolPartnersIAB": "IAB Partner:",
  "VendorListGoogleAdsShow": "Siehe Liste der Werbetechnologielieferanten",
  "VendorListGoogleAdsLabel": "Anbieter von Werbetechnologien",
  "LegitimateUses": "Legitime \n Verwendungen",
Italian Config

  "VendorDetailSPPurposes": "Usi speciali",
  "VendorDetailSPFeatures": "Caratteristiche speciali",
  "VendorDetailPolicy": "Vedi l'informativa sulla privacy",
  "ConsentToolPartnersFakeIAB": "Partner non IAB:",
  "ConsentToolPartnersIAB": "Partner IAB:",
  "VendorListGoogleAdsShow": "Vedi l'elenco dei fornitori di tecnologia pubblicitaria",
  "VendorListGoogleAdsLabel": "Fornitori di tecnologia pubblicitaria",
  "LegitimateUses": "Usi \n legittimi",

Edit Resources (Color Palette) :

 <key>consentToolColorPalette</key>
    <dict>
        <key>primaryBackground</key>
        <string>ffffff</string>
        <key>secondaryBackground</key>
        <string>7021FF</string>
        <key>primaryText</key>
        <string>000000</string>
        <key>secondaryText</key>
        <string>ffffff</string>
    </dict>

Remove all unused resources :

"AuthorizedVendors":[-10,-20,-30,-40,-50,-60,-70,25,12,11,28,27,15,10,31,32,45,52,91,69,81,40,49,45,49,52,68,76,71,79,91,66,82,50,21,153,114,128,129,195,190,92,193,93,130,77,200,226,225,92,124,115,126,213,192,234,245,254,258,36,42,21,368],
"ConsentManagementTitle": "Personnaliser",
"ConsentManagementSaveButtonTitle": "ENREGISTRER ET QUITTER",
"ConsentManagementValidateButtonTitle": "Je valide mes choix",
"ConsentManagementCancelButtonTitle": "Annuler",
"VendorEnabled": "Activé",
"VendorDisabled": "Désactivé",

"consentToolWithLocationColorPalette": {
    "primaryBackground": "ffffff",
    "secondaryBackground": "7E56E5",
    "primaryText": "000000",
    "secondaryText": "ffffff"
},

  "ConsentToolAcceptButtonTitle": "J’accepte tout",
  "ConsentToolRefuseButtonTitle": "Je refuse tout",
  "ConsentToolSettingsButtonTitle": "Je personnalise mes choix",
  "ConsentToolTitle": "VOS PREFERENCES\nSUR LES DONNEES",
  "ConsentToolText": "<style>p{color:#[TEXT_COLOR];} a{color:#[TEXT_COLOR];}</style><p><a href=\"http://madvertise.com/fr/tc/politique-de-confidentialite\" >[PUBLISHER_NAME]</a> vous informe que lors de l’utilisation de notre application, , nous vous demandons d'exprimer vos choix sur les traitements de vos données de géolocalisation : l’identifiant publicitaire, la longitude et la latitude de votre terminal mobile. La collecte de vos données, si vous y consentez, est réalisée par le logiciel publicitaire « SDK media » de notre partenaire <a href=\"http://madvertise.com/en/gdpr\" >Madvertise</a> ainsi que par son outil de ciblage publicitaire « SDK data ».<br/>Le logiciel publicitaire nous permet de programmer et diffuser des publicités sur les espaces publicitaires de notre application. Si vous cliquez sur « J’accepte tout» vos données sont alors également réutilisées par d’autres partenaires publicitaires intervenant dans la chaîne de programmation (Achat-Vente) des espaces publicitaires de notre application. Vous avez la possibilité de choisir en cliquant sur «  Je valide mes choix » quels sont partenaires publicitaires que vous autorisez à réutiliser vos données et dans quels buts.<br/>L’'outil de ciblage publicitaire collecte également vos données et nous les transmettons à nos partenaires commerciaux qui en analysant votre comportement à l’égard des publicités géadaptéess nous permettent de vous adresser en fonction de l’endroit où vous trouver des messages publicitaires ou des offres promotionnelles sur des produits ou services proposés par les clients (enseignes de petites et grandes distributions) de <a onclick=\"consentManager.showVendorList();\" >nos partenaires commerciaux</a>.<br/>En cliquant sur « J’accepte tout », vous acceptez que vos données soient également utilisées par nos partenaires commerciaux.<br/>En cliquant sur « Je valide mes choix », vous avez bien évidemment la possibilité de choisir pour quelles finalités vous autorisez la collecte et traitement de vos données et les partenaires commerciaux autorisés à y avoir accès.En cliquant sur « Je refuse tout », ni <a href=\"http://madvertise.com/fr/tc/politique-de-confidentialite\" >[PUBLISHER_NAME]</a>, ni ses partenaires ne peuvent accéder et utiliser vos données et les publicités affichées le sont de façon aléatoire sans aucun rapport avec vos comportements et/ou vos déplacements.<br/>Vous pouvez à tout moment retirer votre consentement en exerçant vos droits (accéder, modifier, changer d’avis).<p/>",

Step 3: Edit Initialize Method

Update the initialize method as follows:

The configure method takes the following parameters:

  • the App Id of your application.
  • the Consent Tool Configuration object.
  • the publisherCC value (corresponds to the country code (Two-letter) of the country in which the publisher's business entity is established like "FR", "DE", "IT"...).
#!objective-c

        // Configure the CMPConsentManager shared instance.
         CMPLanguage *cmpLanguage = [[CMPLanguage alloc]initWithString:@"fr"];
         [CMPConsentManager.sharedInstance configure:@"MAdvertiseCMPSettingsTCFV2_config_fr" language:cmpLanguage appId:Your_APP_ID publisherCC:@"FR"];
         CMPConsentManager.sharedInstance.delegate = self;


#!swift

     CMPConsentManager.shared.delegate = self

        // Configure the CMPConsentManager shared instance.
        let cmpLanguage = CMPLanguage(string: "fr") ?? CMPLanguage.DEFAULT_LANGUAGE
        CMPConsentManager.shared.configure("MAdvertiseCMPSettingsTCFV2_config_fr", language: cmpLanguage, appId: "APPid", publisherCC: "FR")

Step 4: Edit tcfConsentStringDidChange Method

Remove dePrecated consentStringDidChange:(CMPConsentString *)newConsentString :

#!objective-c

-(void)consentStringDidChange:(CMPConsentString *)newConsentString {
    NSLog(@" Consent String did change : %@", newConsentString.consentString);
}



#!swift

func consentStringDidChange(_ newConsentString: CMPConsentString) {
    print("consent string did change")
}

Use this Method :

#!objective-c

-(void)tcfConsentStringDidChange:(TCFString *)newTcfConsentString {
    NSLog(@"------> tcfConsentStringDidChange : %@", newTcfConsentString.tcfString);

}


#!swift

func tcfConsentStringDidChange(_ newTcfConsentString: TCFString) {

    }

Updated