Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

By default, PureSpectrum throttles survey traffic based on survey incidence, and number of completes remaining. If your survey is set up to use quotas, we will take those quotas into consideration, so that the number of people in progress will not exceed the number of completes remaining divided by the incidence rate.

Info

Example

“quota_throttling”:false

If there are 10 completes remaining, and the survey is converting at 10% IR, we will allow up to 100 respondents into the quota/survey at one time.

In the event that your survey requires more aggressive quota throttling, you may enable this setting via Buy API. By setting quota_throttling:true, we will override our default throttling ratio above so that for every complete remaining, we will only send one respondent.

Info

Aggressive Quota Throttling Example

“quota_throttling”:true

If there are 10 completes remaining, and the survey is converting at 10% IR, we will allow up to 10 respondents into the quota/survey at one time.

Use

To enable the more aggressive quota throttling, you may pass in “quota_throttling”:true in either the POST /surveys or PUT /surveys/:surveyId endpoints.

By default, “quota_throttling” is set to false.

The value of this parameter may be modified at any point when the project is in Draft, Live, or Paused statuses.

Important Considerations

  • I

...

We would only recommend setting “quota_throttling”:true in extreme circumstances. For most users, our default quota_throttling will provide a superior experience for the Respondent, the Supplier, and you as the Buyer.

It may make sense to use the more aggressive quota throttling if your survey platform has aggressive throttling rules, or if your survey platform does not set caps on quotas.

Note

We would recommend using the more aggressive quota throttling if your survey is programmed in Decipher. If you are already using the Decipher integration offered by PureSpectrum, you do not need to worry about toggling this setting, as it will happen automatically.

Request

...

POST (or PUT) $apihost/$basepath/surveys

...

Code Block
languagejson
{
    "live_url": "https://yoursurvey.com/survey123",
    "test_url": "https://yoursurvey.com/survey123/test=1",
    "survey_title": "Test Survey",
    "survey_category_code": 231,
    "survey_localization": "en_US",
    "completes_required": 32,
    "expected_ir": 1050,
    "expected_loi": 10,
    "offer_price": 10,
    "field_time": 99,
    "qualifications": [
        {
            "qualification_code": 211,
            "condition_codes": [
                "111",
                "112"
            ]
        }
    ],
    "quotas": [
        {
            "buyer_quota_id": "1",
            "required_count": 3,
            "criteria": [
                {
                    "qualification_code": 211,
                    "condition_codes": [
                        "111"
                    ]
                }
            ]
        },

        {
            "buyer_quota_id": "2",
            "required_count": 3,
            "criteria": [
                {
                    "qualification_code": 211,
                    "condition_codes": [
                        "112"
                    ]
                }
            ]
        }
    ],
    "qlc": {
        "enable": true,
        "multiple_quotas": {
            "enable": true
        }
    }
}quota_throttling": true
}


Result 

...


Response Code

201 if POST, 200 if PUT

...

Code Block
languagejson
{
    "click_balancing": 0,
    "estimated_clicks": 0,
    "ps_survey_status": 11,
    "offer_price": 10,
    "incl_excl": 0,
    "live_url": "https://yoursurvey.com/survey123",
    "test_url": "https://yoursurvey.com/survey123/test=1",
    "survey_title": "Test Survey",
    "survey_category_code": 231,
    "completes_required": 32,
    "field_time": 99,
    "billing_id": null,
    "buyer_message": null,
    "expected_loi": 10,
    "expected_ir": 1050,
    "ps_survey_id": 68463404596,
    "buyer_surveygroup_ref": null,
    "subscriber_emails": [],
    "qlc": {
        "enable": truefalse,
        "multiple_quotas": {
            "enable": truefalse,
            "count_by_quota": false,
            "compensate_by_quota": false
        }
    },
    "quota_throttling": falsetrue,
    "test_ps_survey_entry_link": "https://staging.spectrumsurveys.com/startsurvey?survey_id=68463404596&ps_redirect_test=1&bsec=a70mx8&supplier_id=23",
    "survey_localization": "en_US",
    "uniqueLinks": false,
    "qualifications": [
        {
            "condition_codes": [
                "111",
                "112"
            ],
            "qualification_code": 211
        }
    ],
    "quotas": [
        {
            "buyer_quota_id": "1",
            "ps_quota_id": "ba58ca72-5b4f-45d1-8bc1-6cf0e481a36b",
            "required_count": 3,
            "criteria": [
                {
                    "qualification_code": 211,
                    "condition_codes": [
                        "111"
                    ]
                }
            ]
        },
        {
            "buyer_quota_id": "2",
            "ps_quota_id": "f34610da-da3c-426c-9929-bc8e287f659f",
            "required_count": 3,
            "criteria": [
                {
                    "qualification_code": 211,
                    "condition_codes": [
                        "112"
                    ]
                }
            ]
        }
    ]
}

...

In the event a request enables QLC, but there are no quotas, the API will respond with HTTP status 400, and error code:

...

languagejson

...


}