This guide is for existing Cookie Control v9 customers moving to Cookie Control Premium. It focuses purely on the changes required on your site — replacing your script tag, retiring your JavaScript configuration object, and moving each setting it contained into your Premium account instead.
For a conceptual comparison of the two products, see How it differs from v9 on the Premium overview page. This guide assumes you have decided to switch and picks up from there.
Your v9 script tag can stay live on your site while you set up Premium in parallel — creating a licence, running a site audit, and working through the configuration wizard does not affect your existing v9 installation. This means you can prepare everything below and only touch your site's code once, at the point you swap the script tag over. Keep your v9 configuration object open in a separate window while you go through this guide — you will be reading values out of it rather than editing it directly.
To begin, work through your old v9 configuration object section by section and recreate each part within the user area for your Premium licence.
In v9, you manually declared every cookie your site sets via the necessaryCookies and optionalCookies. In Premium, this list is populated for you: simply run a Site Audit against your domain and every detected cookie is added automatically to your Cookie Manager store.
Once the audit completes, use your v9 configuration as a reference guide:
Each entry defined within v9 as optionalCookies (its name, label, and description) should be recreated as a cookie category on the Consent Banner: Cookies page.
Category names, labels and descriptions, and the overall panel copy are all edited here rather than in a JavaScript object and by default two categories "Analytics" and "Marketing" are created for Premium licences.
Go through each optionalCookies entry and its onAccept / onRevoke callbacks and sort them into either:
If your v9 category was hand-rolled to call gtag('consent', 'update', ...), Meta's fbq, or Microsoft Clarity's consent API, you can likely delete that code entirely and enable the matching built-in integration instead.
Google Consent Mode v2, Meta Pixel and Microsoft Clarity can be enabled via Consent Banner: Integrations. For more information, please see the article Integrations to discover which platforms are available.
For any other third-party script you were loading manually inside onAccept, you have two options, covered in Script Blocking and Consent:
<script> tag, matching it to the category name you created above. Cookie Control Premium blocks and releases it automatically — no JavaScript needed.<!-- v9 -->
optionalCookies: [{
name: 'analytics',
onAccept: function(){ myAnalytics.enable(); },
onRevoke: function(){ myAnalytics.disable(); }
}]
<!-- Premium: mark the script as necessary so Cookie Control itself never blocks it -->
<script data-consent-necessary>
window.CookieControl.onConsentChange('analytics', {
onAccept: () => { myAnalytics.enable(); },
onRevoke: () => { myAnalytics.disable(); }
});
</script>Appearance properties like layout, position, and theme are now configurable via the Consent Banner.
The v9 branding object (colours, fonts, button styling) has been replaced with CSS variables. These can either be configured globally via the the Consent Banner: Styling tab, or if you need finer per page or tenant theming via window.CookieControlConfig
For further information, please see the Branding support article.
If your v9 site serves more than one language or region — using the locales property or per-region mode overrides — you can recreate each variant using the Languages and Countries section on the Consent Banner.
For further support, please see our Geolocations and Languages Guide.
All other v9 configuration properties should be identifiable from within the Consent Banner and easily altered with the graphical user interface provided.
Should you need help with any particular feature, please contact our Support Team.
On a staging or test environment, remove your v9 script reference and the JavaScript configuration object passed to CookieControl.load():
<!-- Remove: v9 script -->
<script src="https://cc.cdn.civiccomputing.com/9/cookieControl-9.x.min.js" type="text/javascript"></script>
<script>
CookieControl.load({
apiKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
product: 'XXX',
necessaryCookies: [ /* ... */ ],
optionalCookies: [ /* ... */ ],
// ...every other v9 setting
});
</script>Replace it with the single Premium script tag from your user area, ideally at the start of <head> section:
<!-- Add: Premium script -->
<script src="https://cc.cdn.civiccomputing.com/10/CookieControl-v10.x.min.js?id=?YOUR_API_KEY"></script>There is no configuration object to pass — the configuration set via the user area and discussed above in step 1 is retrieved automatically as part of the Premium licence check.
Before removing the v9 script tag from production, we recommend you check:
Once satisfied, replace the v9 script tag with the Premium one on your live site as described in Step 2.
Where each v9 configuration property ends up in Premium:
| v9 property | In Premium |
|---|---|
| apiKey, product | Query parameter on the single script tag |
| necessaryCookies, cookies | Cookie Manager: Cookies |
| optionalCookies (name/label/description/cookies) | Consent Banner categories |
| optionalCookies[].onAccept/onRevoke | Built-in integration, data-cmp-category attribute, or onConsentChange |
| mode, ccpaConfig | Consent Banner: Compliance |
| iabCMP, iabConfig | Consent Banner: Compliance / TCF |
| statement | Consent Banner: Compliance |
| initialState, layout, position, theme... | Consent Banner: Layout |
| branding | Consent Banner: Styling |
| locales, locale | Consent Banner: Geolocations |
| logConsent | User Area: Licences and Payment |
If you are unsure how something in your existing configuration maps across, please contact us and we can advise before you switch your script tag over.