Adding TrustedForm Consent Tags
Overview
The FCC has introduced new requirements that require lead generators to obtain consent for one advertiser at a time and ensure the websites are logically and topically related to calls/texts the consumer receives when using regulated technology. In order for advertisers who are purchasing leads to verify this in an automated fashion, the lead generator must add specific tags to elements of their lead form using HTML attributes. This document provides instructions to do so.
Implementation
Note that failure to include or tag elements correctly could result in TrustedForm certificates failing various checks/filters. Any misrepresentation of elements in order to circumvent protections that TrustedForm puts in place could result in a loss of service.Prerequisite
In order to take advantage of consent tagging the script must be fetched with a query parameter use_tagged_consent
equal to true. If this parameter is omitted or set to false the consent tags will not be used.
First visit the Issuing Certificates section of the TrustedForm application. If this is your first time implementing Certify on this page, follow the instructions and make sure to enable the “Use Consent Tags” script configuration. If you are updating an existing implementation then simply enable the “Use Consent Tags” script configuration, copy the updated Javascript Snippet and use it to replace the previous one.
Tags Required for 1:1 Consent Check
The following tags are required to implement the 1:1 consent check:
-
offer
-
submit
-
consent-language
Further, one (but not both) of the following tags must also be included:
-
consent-advertiser-name
-
consent-opted-advertiser-input-n
and its correspondingconsent-opted-advertiser-name-n
tag
data-tf-element-role
To tag elements of your lead form, add an attribute with the name data-tf-element-role
and the appropriate value specified below. If your form does not contain the element described in the description of the value then do not add it.
This tag can take any one of the following values:
- offer (required for 1:1 consent check)
The offer element is the highest level element. It should be a DOM element that completely captures the area where consent and any of its requirements are given. Pages with multiple marketing offers (e.g. attempts to sell different goods/services) should tag each one separately.
<div id="home-services-lead-gen" data-tf-element-role="offer">
<form>
…
</form>
</div>
or flattened
<div id="home-services-lead-gen" data-tf-element-role="offer">
<form>
…
</form>
</div>
<div id="insurance-lead-gen" data-tf-element-role="offer">
<form>
…
</form>
</div>
- submit (required for 1:1 consent check)
This attribute should be attached to the Submit button or other DOM element which requires a consumer action to create the lead. There must be exactly one submit for every offer element.
<form data-tf-element-role="offer">
By clicking Submit I grant consent.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
- submit-text
This attribute should be attached to the text label that identifies the name of the button or DOM element that will trigger the lead creation. The text inside this tag should be identical to the label on the submit element.
<form data-tf-element-role="offer">
By clicking <span data-tf-element-role="submit-text">Submit</span> I grant consent.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
- consent-language (required for 1:1 consent check)
This should be attached to an element containing or surrounding the text which describes everything the consumer is consenting to. There must be at least one consent language for every offer element.
<form data-tf-element-role="offer">
<label data-tf-element-role="consent-language">
<input type="checkbox" data-tf-element-role="consent-opt-in">
I grant consent.
</label>
<input type="submit" name="submit" data-tf-element-role="submit">
</form>
- consent-opt-in
This attribute indicates a control the consumer must select to acknowledge that consent is being granted. It should be opted out by default, forcing a consumer action to opt in. The attribute should be attached to an input element nested inside the consent language element or referred to through a for attribute. It is highly recommended that there is one of these for every consent-language element.
<form data-tf-element-role="offer">
<label data-tf-element-role="consent-language">
<input type="checkbox" data-tf-element-role="consent-opt-in">
I grant consent.
</label>
<input type="submit" name="submit" data-tf-element-role="submit">
</form>
<form data-tf-element-role="offer">
<input id="consent-id" type="checkbox" data-tf-element-role="consent-opt-in">
<label for="consent-id" data-tf-element-role="consent-language">
I grant consent.
</label>
<input type="submit" name="submit" data-tf-element-role="submit">
</form>
-
consent-advertiser-name
(required for 1:1 consent check if not using
consent-opted-advertiser-input-n
)
This attribute should be attached to the text identifying the name of the advertiser being granted consent to contact. This tag should be used when consent is only given to one advertiser to whom the consumer is always giving consent by submitting the form.
<form data-tf-element-role="offer">
By clicking Submit. I grant consent for
<span data-tf-element-role="consent-advertiser-name">Cogswell Cogs</span>
to contact me.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
-
consent-opted-advertiser-input-n
-
consent-opted-advertiser-name-n
-
These tags are required for 1:1 consent check if not using
consent-advertiser-name
These attributes should be attached to the text identifying the name of the advertiser optionally being granted consent to contact and the input used to indicate this . This tag should be used whenever the consumer must take an action to select the advertiser(s) being given consent to contact. Replace the character ‘n’ with a unique value for each advertiser listed. The value can be any string as long as it matches the value in the corresponding checkbox.
<form data-tf-element-role="offer">
By clicking Submit. I grant consent for the following firms to contact me:
<label data-tf-element-role="consent-opted-advertiser-name-1">
<input type="checkbox" data-tf-element-role="consent-opted-advertiser-input-1"/>
Cogswell Cogs
</label>
<label data-tf-element-role="consent-opted-advertiser-name-2">
<input type="checkbox" data-tf-element-role="consent-opted-advertiser-input-2"/>
Spacely Sprockets
</label>
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
- contact-method
This attribute indicates the methods by which the consumer consents to be contacted. This should be attached to an element containing or surrounding the text inside of the consent language that describes all possible methods by which the consumer consents to be contacted (e.g. phone, text, email)
<form data-tf-element-role="offer">
By clicking Submit I,
<span data-tf-element-role="consent-grantor-name">John Doe</span>
hereby grant consent to be contacted
<span data-tf-element-role="contact-method">by phone</span>
At
<span data-tf-element-role="consent-grantor-phone">631-555-1212</span> .
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
-
consent-grantor-name
-
consent-grantor-phone
-
consent-grantor-email
-
consent-grantor-addressThese attributes should be attached to any text based or input element specifying contact information of the person granting consent to be contacted.
<form data-tf-element-role="offer">
By clicking Submit I,
<span data-tf-element-role="consent-grantor-name">John Doe</span>
hereby grant consent to be contacted
<span data-tf-element-role="contact-method">by phone</span>
At
<span data-tf-element-role="consent-grantor-phone">631-555-1212</span> .
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
<form data-tf-element-role="offer">
<label for="name">Name:</label>
<input name="name" data-tf-element-role="consent-grantor-name">
<label for="phone">Phone:</label>
<input name="phone" data-tf-element-role="consent-grantor-phone">
By clicking Submit I, hereby grant consent to be contacted
<span data-tf-element-role="contact-method">by phone</span>
at the number above.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
-
consent-grantor-waived-dncThis should be attached to an element containing or surrounding the text inside of the consent language that specifically gives consent to call even if the number is found on a Do Not Call registry.
<form data-tf-element-role="offer">
By clicking Submit. I hereby grant consent to be contacted
<span data-tf-element-role="consent-grantor-waived-dnc">even if my phone number is listed on a Do Not Call Registry</span>.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
- consent-grantor-waived-purchase-condition This should be attached to an element containing or surrounding the text inside of the consent language where the consumer documents that they understand this contact does not oblige them to any purchases.
<form data-tf-element-role="offer">
By clicking Submit. I hereby grant consent to be contacted and
<span data-tf-element-role="consent-grantor-waived-purchase-condition">
I understand that my agreement to be contacted is not a condition of purchasing any property, goods or services</span>.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
- consent-grantor-waived-regulated-technologies This should be attached to an element containing or surrounding the text inside of the consent language that specifically gives consent to use regulated technologies (e.g. automated dialing systems, pre-recorded voice, artificial intelligence, SMS/MMS)
<form data-tf-element-role="offer">
By clicking Submit. I hereby grant consent to be contacted
<span data-tf-element-role="consent-grantor-waived-regulated-technologies">
and permit that contact to be from an automated calling system</span>.
<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>
Click here to view an interactive example of a form that has implemented consent tags correctly.