A vendor grant is a boolean value that is true
if an end-user has consented to all purposes assigned to a vendor. The vendor grant value is false
if one or more purposes have been disallowed by the end-user. Where the vendor grant has been set to false
, your organization should check which purposes have been rejected by the end-user.
In this article, we will cover how to request vendor grants for mobile CMP implementations.
The Sourcepoint Unified SDK for mobile devices provides the callback function onConsentReady
that allows your organization to read vendor grants. This command can be called as shown in the following example:
import ConsentViewController
// Sourcepoint stub file (CMP setup for iOS)
class ViewController: UIViewController {
@IBAction func onClearConsentTap(_ sender: Any) {
SPConsentManager.clearAllData()
}
@IBAction func onGDPRPrivacyManagerTap(_ sender: Any) {
consentManager.loadGDPRPrivacyManager(withId: "13111", tab: .Features)
}
@IBAction func onCCPAPrivacyManagerTap(_ sender: Any) {
consentManager.loadCCPAPrivacyManager(withId: "14967")
}
lazy var consentManager: SPConsentManager = { SPConsentManager(
accountId: 22,
propertyName: try! SPPropertyName("mobile.multicampaign.demo"),
campaignsEnv: .Public // optional - Public by default
campaigns: SPCampaigns(
gdpr: SPCampaign(), // optional
ccpa: SPCampaign(), // optional
ios14: SPCampaign() // optional
),
delegate: self
)}()
override func viewDidLoad() {
super.viewDidLoad()
consentManager.loadMessage()
}
}
// SPDelegate implementation
extension ViewController: SPDelegate {
// onConsentReady function
func onConsentReady(userData: SPUserData) {
print("onConsentReady:", userData)
}
func onError(error: SPError) {
print("Something went wrong: ", error)
}
}
// Sourcepoint stub file (CMP setup for Android)
public class MainActivityJava extends AppCompatActivity {
private final SpConfig cmpConfig = new SpConfigDataBuilder()
.addAccountId(22)
.addPropertyName("mobile.multicampaign.demo")
.addMessageLanguage(MessageLanguage.ENGLISH)
.addCampaign(CampaignType.GDPR, Arrays.asList(new TargetingParam("location", "EU")))
.addCampaign(CampaignType.CCPA, Arrays.asList(new TargetingParam("location", "US")))
.build();
private SpConsentLib spConsentLib = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spConsentLib = FactoryKt.makeConsentLib(
cmpConfig,
this,
new LocalClient()
);
}
@Override
protected void onResume() {
super.onResume();
spConsentLib.loadMessage();
}
@Override
protected void onDestroy() {
super.onDestroy();
spConsentLib.dispose();
}
// SpClient implementation
class LocalClient implements SpClient {
// onConsentReady function
@Override
public void onConsentReady(@NotNull SPConsents c) {
System.out.println("onConsentReady: " + c);
}
@Override
public void onError(@NotNull Throwable error) {
error.printStackTrace();
}
}
}
Within the JSON response, the grants
section in the response using the Unified SDK onConsentReady
function lists the consented purposes for each vendor. The consented purposes are listed as follows:
Parameter | Description |
vendorGrants[] |
A list of vendors in the vendor list. |
purposeGrants[] |
A list of purposes associated with a vendor. |
granted |
Status is Note: The |
applies |
Status is true if GDPR or CCPA applies to the end-user. |
euconsent |
The TCstring generated from the end-user's choice. |
onConsentReady:
gdpr: (
applies: true,
consents: (
UserConsents (
vendorGrants: [
"5e7ced57b8e05c47e418b73c": VendorGrant (
granted: true,
purposeGrants: [
"60925aa29ccb1d3420efac12": true,
"60925aa29ccb1d3420efac19": true,
"60925aa29ccb1d3420efabfe": true,
"60925aa29ccb1d3420efac36": true,
"60925aa29ccb1d3420efabf7": true,
"60925aa29ccb1d3420efac2e": true,
"60925aa29ccb1d3420efac0b": true,
"60925aa29ccb1d3420efac20": true,
"60925aa29ccb1d3420efac27": true,
"60925aa29ccb1d3420efac05": true
]
),
"5e37fc3e56a5e6614776722e": VendorGrant (
granted: true,
purposeGrants: [
"60925aa29ccb1d3420efac2e": true,
"60925aa29ccb1d3420efac36": true
]
),
"5f1aada6b8e05c306c0597d7": VendorGrant (
granted: true,
purposeGrants: [
"60925aa29ccb1d3420efac0b": true,
"60925aa29ccb1d3420efac19": true,
"60925aa29ccb1d3420efac36": true,
"60925aa29ccb1d3420efabf7": true,
"60925aa29ccb1d3420efabfe": true,
"60925aa29ccb1d3420efac12": true,
"60925aa29ccb1d3420efac2e": true,
"60925aa29ccb1d3420efac20": true,
"60925aa29ccb1d3420efac27": true
]
)
],
euconsent: CPKadSDPKadSDAGABCENBlCsAP_AAABAAAYgF5wAwA2gHTAXmANsAEANoAwyACAvMVABAXmSgBABtAXmUgAgLzCQAQF5joAIC8wA.YAAAAAAAAAAA
)
)
),
ccpa: nil
Comments
0 comments