Skip to content

FAQs

FAQs

Frequently Asked Questions

For project_exclusions and category_exclusions, what activity excludes a respondent from participating in the opportunity?

When a respondent starts or completes a client survey in an exclusion project or category. The following disposions and statuses will exclude a respondent from the opportunity.

  • Complete
    • Disposition 1 , Status any
  • Client Disqualification
    • Disposition 2, Status 2
  • Client Over Quota
    • Disposition 3 , Status 2
  • Dropout
    • The respondent started the client survey but for some reason (connection error, closed the window, etc) didn’t reach a Dynata conclusion.

Should I pass in repondents’ age, postal code, and gender as direct attributes?

No. Use the birth_date, postal_code , and gender query parameters/properties to set these values.

Warning!

Passing age, postal code, and gender as direct attributes can cause unforeseen issues, as these attributes are reserved for use elsewhere in our system.

When using the inbound redirect URL:

Pass in the following as query parameters:

  • birth_date
  • postal_code
  • gender

When using our API endpoint:

Use the following properties in the JSON request body.

  • birth_date
  • postal_code
  • gender properties in the /put-respondent endpoint.

Is an OpenAPI Specification available for the REX services?

Yes.

Do you require whitelisting IPs?

No, we do not implement rate-limiting for authenticated users.

Can I send traffic to paused or closed opportunities?

No, only send traffic to opportunities that are open. Never closed or paused.

Can an opportunity have two completely different sets of qualifications?

Yes. filters and quotas can contain different qualifying criteria.

Can we send a respondent into a survey targeting only on age and gender, without a postal code, unless the survey is targeting on location?

Yes, you can send postal_code later when it is a requirement of the study being targeted.

Can a respondent take more than one survey associated with the same project ID?

No. Any opportunities belonging to the same project_id has an implicit mutual participation exclusion.

How do I get Buyer ID/Client ID?

You can request this from the Dynata team.

Do you only expose inventory that we perfectly match?

No, all partners see all available inventory regardless of attribute mapping. This allows their systems to properly yield manage.

What is a group_id?

A group_id is a property on each opportunity. It’s the project quota group ID associated with the opportunity.

Where can I find the category mappings?

We can share a .csv file with all the category mappings.

Why can’t I see more than ten opportunities?

If you are using Postman/Insomnia, and do not pass in a value for limit then the limit with default to only ten opportunities displayed.

What is the negate property and what does it do?

Negate is a property on every cell that’s on an opportunity. If it is set to false it means include these values, and if it set to true it means exclude these values.

How do we register a respondent?

You can pre-register respondents through the /put-respondent endpoint, or using the optional query parameters appended to the Inbound.

Useful Tip

If you use the /put-respondent endpoint to register respondents before sending them into our platform, there is no need to provide those parameters again on the inbound.

How do we generate a valid entry link for a user?

Use the links.live property value from a given opportunity. This value is the base of your entry link.

From there, you will need to add any additional query parameters as necessary: such query parameters may include the above respondent properties, any data that is proprietary to you, such as a transaction identifier, as well as the necessary components of the signature.

Once you have constructed your full URL, you will need to sign it using the methodology described here

Important

We need a minimum of genderbirth_date, and postal_code provided at or before the time of the respondent’s first attempt/entry in our system.

How do we handle the “to” and “from” values in the range object for cells?

null value assigned to the to and/or from properties of a range indicates a range without an upper and/or lower-bound. However, in the case of age, we can apply some sane defaults.

For instance, age cannot be negative, and the upper-bound can be interpreted by your system as it deems reasonable. Commonly, you will see the lack of an upper-bound when our PMs define a target like “greater than 18 years old” in our project management system. A missing lower-bound may be possible if a PM defines “less than 30 years old”, but it is safe to assume reasonable bounds on age.

What is the expectation for expiration timestamp?

We recommend at least 10 seconds, but you can extend that duration within reason if you’re concerned about latency.

Do we support any non-binary gender options?

Not currently.

How long does suspended status last?

Suspended status is permanent until advised otherwise.

How often should we call the opportunities endpoint?

Ideally, every 5 seconds to get the freshest data possible.

I couldn’t find Age codes in the codelist. How do we handle that?

Age is a literal value in cell definitions. To provide an Age value for a respondent, you’ll need to provide the birth_date.

Are we allowed to send respondents to different surveys that belong to the same project, or should we only send a respondent once a project?

Only send a respondent once per project.

What’s does the opportunity’s evaluation property mean?

The evaluation represents how the quota counts are tracked.

  • COMPLETE - The quota counts track survey completes.
  • STARTS - The quota counts track survey starts,

    STARTS are very rare


Context

What is stored in the context / where do we get it?

The ctx refers to the opportunity live link used for the inbound. The ctx parameter in the live link contains opportunity data.


Signatures

Try it out!

A signing string must be a SHA256 hash digest of the request body. If you would like to check your values, try our interactive signer here.

How do we generate a valid signature?

  • First we must get the signing string. To create the signing string we must run the request body through a SHA256 hashing function (all whitespace and newlines included). The resulting digest must be converted to a lowercase hexidecimal string.

  • Second we must obtain the other pieces used to generate the signature from the request headers: dynata-expiration, dynata-access-key (the outbound redirect access key provided to you). Then you need to create the signature using the pieces from above, and your secret key which was provided to you along with your access key.