Deployment testing and verification

In this article

A step-by-step guide to checking your Permutive deployment is correct

The Browser Extension

Permutive's Chrome extension allows you to validate your Permutive deployment. You can check what data is being collected, if there are any schema errors, what cohorts you belong to and if all ad requests are targeted.


Click here for instructions on installing and general use for the browser extension,

Confirming Event collection


Verifying basic deployment

Permutive SDK is downloaded:

1.    Open the “Elements” tab, and search for “”. Scroll up to check this is inside <head/> element. You will be looking for:

<script async src="<PROJECT_ID>-web.js"></script>

2.    Check this is downloaded asynchronously (has “async” inside the script)

Permutive main tag is in the header:

1.    Open the “Elements” tab, and search for “permutive”. You should find the main tag:

<!-- start Permutive -->
!function(n,e,i){if(!n){n=n||{},window.permutive=n,n.q=[],n.config=i||{},n.config.apiKey=e,n.config.environment=n.config.environment||"production";for(var o=["addon","identify","track","trigger","query","segment","segments","ready","on","once","user","consent"],r=0;r<o.length;r++){var t=o[r];n[t]=function(e){return function(){var,0);n.q.push({functionName:e,arguments:i})}}(t)}}}(window.permutive,"<WORKSPACE_API_KEY>",{});
window.googletag=window.googletag||{},window.googletag.cmd=window.googletag.cmd||[],window.googletag.cmd.push(function(){if(0===window.googletag.pubads().getTargeting("permutive").length){var g=window.localStorage.getItem("_pdfps");
var o=window.localStorage.getItem("permutive-id");
permutive.addon('web', {}); </script> <script async src="https://<ORGANIZATION_ID><WORKSPACE_ID>-web.js">
<!-- end Permutive -->

2.    Scroll up to check this is inside the <head/> element, and before the main Permutive tag is downloaded.

3.    If not present in “Elements”, search the whole website (Option+Command+F on Mac). Ensure this is called early, and before the main script loads

Permutive events are coming through

1.    Go to “Network” tab, and search for “permutive” 

2.    Every time you refresh a page, or go to a new page, you will see a new “Pageview” event coming through. You should also see a steady stream on “PageviewEngagement” events coming through

These will be highlighted in red if any schema errors are happening


3.    In the Permutive UI, check that Pageview events are coming in as expected.

Events contain expected properties (if applicable)

  • If custom properties are meant to be sent to Permutive, check these are included in permutive.addon(“web”, {}) you found on the page earlier, for example:
  permutive.addon('web', {
    page: {
      type: 'article',
      article: {
        id: '1234qwerty',
        type: 'kittens'
  • In network requests, make sure any relevant properties are passed through under “Pageview” event (that you found earlier). You can see everything that is passed through by expanding "properties"


Verifying DFP targeting

DFP cache snippet is in the header

This is very important to ensure targeting still happens even if for some reason Permutive script does not load before the DFP calls are made

1.    Search  for “_pdfps” (stands for Permutive DFP Storage). You should find this piece of code:


2.    Set a breakpoint. You can do this by clicking on the number of the line where the function is called (in the case below, by clicking on number "327"). A blue arrow will appear, indicating your break point. 


3.    Search for googletag.enableServices();  Set a break point on this too.

4.    Reload the page. Now the page will stop loading on both your break points. Make sure the Permutive script is executed first - ie that the _pdfps breakpoint is first.

5.    Remove the breakpoints by clicking on the blue arrows again

Permutive key-value pairs are attached to DFP calls (if DFP targeting is enabled)

  1. Search for ads?  in the “Network” tab
  2. Pick an ad request, scroll down, and find cust_params 
  3. Check if “permutive=” is appended, followed by cohorts.
  4. NB: ensure the appropriate DFP reactions are set up in the Permutive UI, as only cohorts with the DFP reactions enabled will be passed through to the DFP for targeting
Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request