Class – KVAConsent

  • Class

    KVAConsent

    The class KVAConsent provides a means of managing user consent in relationship to GDPR.


    Overview

    Data sharing privacy laws such as GDPR require consent to be obtained before certain kinds of personal data may be calculated or gathered, kept in memory, persisted or retained in persistent storage, and/or shared with partners. During the natural lifecycle, there are times where partners may be added and cause the consent status to fall back to an unknown state. Later the user may again be prompted and the consent status may (or may not) again come to be known. All of this is predicated upon whether or not consent is required, which is governed by a variety of factors such as location and jurisdiction.


    Intelligent Consent Management (ICM)

    If you do not opt into Intelligent Consent Management (ICM), then the SDK behaves as if unaware of consent. It will send installs, device information, and host initiated events, under all circumstances. It is then your responsibility to only configure the tracker when the user has given consent (or it is not otherwise required). It is also your responsibility to invalidate the tracker when consent is denied.

    In contrast, when intelligent consent management is both enabled and configured within your Kochava dashboard, the SDK will indicate when the user should be prompted for consent. It will also not gather, persist, or transmit data which requires consent unless consent has been granted.


    Integration with ICM

     

    The basic steps to configure for Intelligent Consent Management are as follows:

    1. Turn it on.
    2. You may do this when configuring an instance of class KochavaTracker. In the dictionary trackerParametersDictionary, pass a value of true under the key constant kKVAParamConsentIntelligentManagementBoolKey.

       

      Sample Code:

       

    3. Configure didUpdateBlock to be called when the requirements for consent have been updated.
    4. You may do this immediately following the configuration of the tracker. Set var didUpdateBlock to a block of typedef KVAConsentDidUpdateBlock. This block may contain logic to enable and disable functionality within your app depending on the current status of consent. It may also check func shouldPromptBool() to determine if the user should be prompted for consent, where you may then implement your own user interface to prompt for consent using the information provided within the consent object. This function considers whether the user is subject to consent (EU/GDPR), if consent is granted, if a prompt should be re-made at this time, as well as a number of other factors.

       

      Sample Code:

       

      BEST PRACTICES: The didUpdateBlock will be called whenever an update occurs. You should be careful not to attempt to initiate a new prompt for consent if an existing prompt is already in progress.

       

    5. Notify the consent object as to the user’s response to consent.
      Whether the user responds to the prompt for consent, or simply dismisses the dialog, call func didPrompt(withDidGrantBoolNumber:) to let the system know.

       

      Sample Code:

    6.  

    7. Conditionally activate and deactivate functionality based on consent.
    8. At any time you may check if you have consent for various activities, using four purpose-specific methods: func mayCalculateBool(), func mayKeepBool(), func mayPersistBool(), and func mayShareBool().

       

      Sample Code:

       

      You may also simply check whether consent is currently granted.

       

      Sample Code:

       

      NOTE: There will be times when consent is not granted, but various activities may still be permitted. This includes, but is not limited to, when consent is not required.

    Symbols

    Prompting for Consent var descriptionString: String?

    A string containing a high level description concerning consent.

    func didPrompt(withDidGrantBoolNumber: NSNumber?)

    A function to be called when there has been a prompt for consent.

    var partnerArray: NSMutableArray?

    An array of instances of class KVAPartner.

    func shouldPromptBool() -> Bool

    Returns a boolean indicating if a prompt for consent should be made.

    func willPrompt()

    A function which may be called to notify that a prompt for consent will be made.

    Checking Consent Status var didUpdateBlock: KVAConsentDidUpdateBlock?

    A block which is called when there is an update to consent.

    func isGrantedBool() -> Bool

    Returns a boolean indicating if consent is granted.

    func isGrantedBoolNumber() -> NSNumber?

    Returns a boolean indicating if consent is granted, denied, or there is no response.

    func isGrantedDate() -> NSDate?

    Returns a date for when consent was granted.

    func mayCalculateBool() -> Bool

    Returns a boolean indicating if the app may calculate (or gather) data which may be subject to consent.

    func mayKeepBool() -> Bool

    Returns a boolean indicating if the app may keep (or retain in memory) data which may be subject to consent.

    func mayPersistBool() -> Bool

    Returns a boolean indicating if the app may persist (or retain in persistent storage) data which may be subject to consent.

    func mayShareBool() -> Bool

    Returns a boolean indicating if the app may share (or export) data which may be subject to consent.

    Miscellaneous var requiredBool: Bool

    A boolean indicating if consent is required.

    var requiredBoolNumber: NSNumber?

    A boolean indicating if consent is required, consent not required, or if it is not known whether or not consent is required.

    var responseBoolNumber: NSNumber?

    A boolean indicating the user’s response to a prompt for consent.

    var responseDate: NSDate?

    A date representing the last time the user did respond concerning consent.

    Relationships

    Inherits From NSObject

    See Also

    Related Symbols class KochavaTracker

    The class KochavaTracker provides an interface between a host application and Kochava’s Attribution and Analytics Servers. A tracker manages the exchange of data between these two entities, along with the associated tasks and network transactions.

  • Class

    KVAConsent

    The class KVAConsent provides a means of managing user consent in relationship to GDPR.


    Overview

    Data sharing privacy laws such as GDPR require consent to be obtained before certain kinds of personal data may be calculated or gathered, kept in memory, persisted or retained in persistent storage, and/or shared with partners. During the natural lifecycle, there are times where partners may be added and cause the consent status to fall back to an unknown state. Later the user may again be prompted and the consent status may (or may not) again come to be known. All of this is predicated upon whether or not consent is required, which is governed by a variety of factors such as location and jurisdiction.


    Intelligent Consent Management (ICM)

    If you do not opt into Intelligent Consent Management (ICM), then the SDK behaves as if unaware of consent. It will send installs, device information, and host initiated events, under all circumstances. It is then your responsibility to only configure the tracker when the user has given consent (or it is not otherwise required). It is also your responsibility to invalidate the tracker when consent is denied.

    In contrast, when intelligent consent management is both enabled and configured within your Kochava dashboard, the SDK will indicate when the user should be prompted for consent. It will also not gather, persist, or transmit data which requires consent unless consent has been granted.


    Integration with ICM

     

    The basic steps to configure for Intelligent Consent Management are as follows:

    1. Turn it on.
      You may do this when configuring an instance of class KochavaTracker. In the dictionary trackerParametersDictionary, pass a value of true under the key constant kKVAParamConsentIntelligentManagementBoolKey.

       

      Sample Code:

       

    2. Configure didUpdateBlock to be called when the requirements for consent have been updated.
      You may do this immediately following the configuration of the tracker. Set property didUpdateBlock to a block of typedef KVAConsentDidUpdateBlock. This block may contain logic to enable and disable functionality within your app depending on the current status of consent. It may also check instance method shouldPromptBool to determine if the user should be prompted for consent, where you may then implement your own user interface to prompt for consent using the information provided within the consent object. This method considers whether the user is subject to consent (EU/GDPR), if consent is granted, if a prompt should be re-made at this time, as well as a number of other factors.

       

      Sample Code:

       

      BEST PRACTICES: The didUpdateBlock will be called whenever an update occurs. You should be careful not to attempt to initiate a new prompt for consent if an existing prompt is already in progress.

    3.  

    4. Notify the consent object as to the user’s response to consent.
      Whether the user responds to the prompt for consent, or simply dismisses the dialog, call instance method didPromptWithDidGrantBoolNumber: to let the system know.

       

      Sample Code:

    5.  

    6. Conditionally activate and deactivate functionality based on consent.
    7. At any time you may check if you have consent for various activities, using four purpose-specific methods: instance method mayCalculateBool, instance method mayKeepBool, instance method mayPersistBool, and instance method mayShareBool.

       

      Sample Code:

       

      You may also simply check whether consent is currently granted.

       

      Sample Code:

       

      NOTE: There will be times when consent is not granted, but various activities may still be permitted. This includes, but is not limited to, when consent is not required.

    Symbols

    Prompting for Consent property descriptionString

    A string containing a high level description concerning consent.

    – (void)didPromptWithDidGrantBoolNumber:

    A method to be called when there has been a prompt for consent.

    property partnerArray

    An array of instances of class KVAPartner.

    – (BOOL)shouldPromptBool

    Returns a boolean indicating if a prompt for consent should be made.

    – (void)willPrompt

    A method which may be called to notify that a prompt for consent will be made.

    Checking Consent Status property didUpdateBlock

    A block which is called when there is an update to consent.

    – (BOOL)isGrantedBool

    Returns a boolean indicating if consent is granted.

    – (nullable NSNumber *)isGrantedBoolNumber

    Returns a boolean indicating if consent is granted, denied, or there is no response.

    – (nullable NSDate *)isGrantedDate

    Returns a date for when consent was granted.

    – (BOOL)mayCalculateBool

    Returns a boolean indicating if the app may calculate (or gather) data which may be subject to consent.

    – (BOOL)mayKeepBool

    Returns a boolean indicating if the app may keep (or retain in memory) data which may be subject to consent.

    – (BOOL)mayPersistBool

    Returns a boolean indicating if the app may persist (or retain in persistent storage) data which may be subject to consent.

    – (BOOL)mayShareBool

    Returns a boolean indicating if the app may share (or export) data which may be subject to consent.

    Miscellaneous property requiredBool

    A boolean indicating if consent is required

    property requiredBoolNumber

    A boolean indicating if consent is required, consent not required, or if it is not known whether or not consent is required.

    property responseBoolNumber

    A boolean indicating the user’s response to a prompt for consent.

    property responseDate

    A date representing the last time the user did respond concerning consent.

    Relationships

    Inherits From NSObject

    See Also

    Related Symbols class KochavaTracker

    The class KochavaTracker provides an interface between a host application and Kochava’s Attribution and Analytics Servers. A tracker manages the exchange of data between these two entities, along with the associated tasks and network transactions.

 
 

Last Modified: Jul 12, 2018 at 11:30 am