A Customer Passed Parameter (CPP) is a data point created by (or currently available in) your app, which is captured by ForeSee code and sent with a survey submission. CPPs provide additional data for analysis without increasing the number of questions asked on the survey.



CPPs cannot contain white space.

Using CPPs

The client can define CPPs in two ways:

  1. In foresee_configuration.json - The JSON configuration supports a cppParameters key containing a collection of key-value pairs. For example:
"cppParameters": {
    "AppVersion": "<YOUR APP VERSION>"
  1. In code via the SDK - The client can use [ForeSee setCPPValue:forKey:] (and related methods) to dynamically add CPPs. This is useful when adding CPPs based on specific conditions. Full Documentation of these methods is available in the API documents.

Since version 3.4.3 of the SDK, CPPs are persisted between sessions. Although CPPs are removed when the repeatDays threshold is met, there may be other situations in which you want to erase a CPP. Use [ForeSee removeCPPValueForKey:] to dynamically remove the CPP for a specific key.

Default CPPs

By default, the SDK automatically captures and sends the following device related CPPs with the survey:

  • model_name
    The model name of the device (e.g. iPhone, iPad)
  • brand_name
    The brand name of the device (e.g. Apple).
  • browser
    The version of Safari.
  • os
    The device's operating system (e.g. iOS).
  • os_version
    The operating system version (e.g. 7.1.2).
  • is_tablet
    ‘True’, if the device is an iPad.
  • resolution_width
    Screen width in pixels.
  • resolution_height
    Screen height in pixels.
  • screen_width
    Screen width in millimeters.
  • screen_height
    Screen height in millimeters.
  • locale
    The device's locale (e.g. en_US).
  • dual_orientation
    ‘True’, if the device supports dual orientation (always 'true' on iOS devices).
  • language
    The device's language (e.g. en).
  • client_version
    The value of CFBundleShortVersionString in the client app's plist.
  • client_build_num
    The value of CFBundleVersion in the client app's plist.
  • platform
    Device model information (e.g. x86_64).
  • pointing_method
    Always 'touchscreen' on iOS devices.
  • notification_type
    Type of survey invitation
  • product_type
    Always 'in-app' on iOS devices.