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.

script config

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 corresponding consent-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.

Click here to view an interactive example of a form that has implemented consent tags correctly.

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.

Copy
Copied
<div id="home-services-lead-gen" data-tf-element-role="offer">
    <form></form>
</div>

or flattened

Copy
Copied
<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.

Copy
Copied
<form data-tf-element-role="offer">
  By clicking Submit I grant consent.

<input type="submit" name="submit" data-tf-element-role="submit"/>
</form>

submit only

  • 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.

Copy
Copied
<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>

submit only

  • 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.

Copy
Copied
<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>

opt in only

  • 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.

nestedflat
Copy
Copied
<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>
Copy
Copied
<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>

opt in only

  • 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.

Warning: when adding consent-advertiser-name to a parent element, any visible text found inside it or any child elements will be considered part of the advertiser name. This will affect the outcome of the Verify request.

Copy
Copied
<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>

advertiser name only

  • 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.

Warning: when adding consent-opted-advertiser-name-n to a parent element, any visible text found inside it or any child elements will be considered part of the advertiser name. This will affect the outcome of the Verify request.

Copy
Copied
<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>

enum names

  • 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)

Copy
Copied
<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>

contact method

  • consent-grantor-name
  • consent-grantor-phone
  • consent-grantor-email
  • consent-grantor-address
    These attributes should be attached to any text based or input element specifying contact information of the person granting consent to be contacted.
Copy
Copied
<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>

contact method

Copy
Copied
<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>

field names

  • consent-grantor-waived-dnc
    This 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.
Copy
Copied
<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>

waive dnc

  • 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.
Copy
Copied
<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>

waive purchase

  • 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)
Copy
Copied
<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>

waive calling tech

Click here to view an interactive example of a form that has implemented consent tags correctly.