CheatSweep can be configured to prevent or allow respondents who arrive with already-seen cookie signatures. However, in some cases, managers will need to configure CheatSweep to let certain segments bypass the duplicate checking.
Two ways to specify which respondents to allow
Because of the way CheatSweep runs, only these approaches to specifying your panels and segments will work. See below for why it is not simply a matter of referencing a survey variable.
Use the $panel
variable
This is perhaps the most common and straightforward way to bypass duplicate checking for certain panels. The system automatically builds a $panel
variable that you can use. Reference this variable with the allow_dup
tag to indicate which panels should be allowed to have duplicate visits.
allow dup: anyChecked($panel, 99, 152)
Use a reference to pre-populated data
Sometimes all respondent IDs are known before fielding. Use the Add Data tool to preload these IDs. Include a column header of "id" for the IDs and another column with the arbitrary field name you intend to reference. For example, you might add a field called "wave". To reference the wave field with allow_dup
, be sure to define the field before the enable cheatsweep
widget. Also, when creating the variable in the source code, use lowercase letters for the question ID and the preservecase:y
and leadingq:n
tags.
wave. wave variable
preservecase: y
leadingq: n
type: radio
invisible: y
3. Allow
enable cheatsweep
allow_dup: anyChecked($wave,3) # assumes you've preloaded the records with this field populated
Why can't I simply reference a survey variable?
CheatSweep dupe-detection runs twice:
- When we first see a respondent, before they've stored any data, we check for a duplicated isid. This is our browser fingerprint test. If we find a duplicate isid then we immediately term the respondent.
- CheatSweep regularly sweeps respondents looking for duplicate IP addresses and uses that information to score the respondents.
The allow_dup
tag affects both, but the Survey Programmer must be careful how they define the tag.
Given the above, can you deduce why this wouldn't work?
allow_dup: anyChecked($QPANEL,99) # NO!
"QPANEL" is presumably a user-defined variable that isn't visible when the 1st sweeping is performed. Before CheatSweep knows what QPANEL value the respondent has, it has already discarded the record.
Examples
Allowing duplicates for a specified country.
In the following scenario, the client has requested that duplicate ID protection be disabled for China only. The URL-based QCOUNTRY variable is modified by adding csentrycal: y
to it, allowing the variable be read before the duplicate IP checker is enabled thusly.
setlist: COUNTRIES
1. United States
2. Canada
3. United Kingdom
4. France
5. Germany
6. China
7. Japan
8. Brazil
COUNTRY. VAR | Country
csentrycalc: y
translate: n
ap: n
invisible: y
chapter: S
type: radio
optsfrom: COUNTRIES
99. None Passed
cvalue: url_param('c') || 99
termif: $testmode == 0 and anyChecked($QCOUNTRY,99)
termtext: QCOUNTRY | No country passed
enable cheatsweep
allow dup: anyChecked($QCOUNTRY, 6)
Comments
0 comments
Please sign in to leave a comment.