Attributes
Rich, granular data allows for greater campaign optimization, enhanced targeting, better personalization capabilities, and higher spend efficiencies. For brands, more data also helps conversions to be more accurately attributed to the appropriate Rokt campaigns.
You can find the full list of predefined Rokt attributes in the sections below. You can also define any custom attributes to complement the standard integration.
Core attributes
Name | Attribute | Format | Payload example |
---|---|---|---|
john.smith@rokt.com | |||
Email (MD5) | emailmd5 | MD5 hash string | 238afb9e862add7d56bbc4181b80fa32 |
Email (SHA256) | emailsha256 | SHA256 hash string | |
Amount | amount | amount | 300.5 |
Currency | currency | 3-letter ISO currency code | USD |
Quantity | quantity | number | 2 |
Payment type | paymenttype | string | Credit Card, Paypal |
Credit Card BIN | ccbin | 6 digits | 372888 |
Margin | margin | amount | 10.5 |
Confirmation reference | confirmationref | string | XYZ123 |
First name | firstname | name | John |
Last name | lastname | name | Smith |
Mobile | mobile | mobile format without country code | 7327572923 |
Title | title | Mr/Mrs/Ms/Miss | Ms |
Gender | gender | M or F | F |
Date of birth | dob | yyyymmdd | 19831215 |
Age | age | integer | 33 |
Language | language | 2-letter ISO language code | en, nl, de, fr |
Experience | experience | string | |
Unit number | unitno | string | 101 |
Address line 1 | address1 | string | 123 Fake Street |
Address line 2 | address2 | string | Building A |
ZIP or postal code | zipcode | zipcode | 90210 |
City | city | string | New York |
State | state | state | NY |
Country | country | 2-letter ISO country code | us, au, nz, ca, gb, sg |
Conversion type | conversiontype | string | |
Rokt Tracking ID | rokttrackingid | string |
Food and beverage retail data
Name | Attribute | Format |
---|---|---|
Restaurant ID | restaurantid | string |
Delivery | delivery | boolean |
Restaurant name | restaurantname | string |
Delivery/pick-up address | deliveryaddress | string |
Cuisine | cuisine | string |
Delivery/pick-up time | deliverytime | time |
Delivery/pick-up date | deliverydate | date |
Restaurant ZIP or postal code | restaurantzipcode | zipcode |
Event ticketing data
Name | Attribute | Format | Payload example |
---|---|---|---|
Event name | eventname | string | John Smith featuring the Smiths: Live |
Event description | eventdescription | string | The most incredible show on earth. |
Event time | eventtime | time | 0800, 1930 |
Event ID | eventid | string | E017448281A |
Event date | eventdate | yyyymmdd | 20200822 |
Event venue | eventvenue | string | Austin Big Stadium |
Event city | eventcity | string | |
Event state | eventstate | state | |
Event ZIP or postal code | eventzipcode | zipcode | |
Event country | eventcountry | country | |
Event image URL | eventimage | url | |
Event URL | eventurl | url | |
Ticket URL | ticketurl | url | |
Number of tickets | notickets | number | |
Seat location(s) | seatlocation | string | |
Seat number | seatnumber | number | |
Primary artist ID | primaryartistid | string | |
Primary artist name | primaryartistname | string | |
Secondary artist ID | secondaryartistid | string | |
Secondary artist name | secondaryartistname | string | |
Promoter | promoter | string | |
Promoter ID | promoterid | string | |
Venue ID | venueid | string | |
Venue map URL | venuemap | url |
Media and entertainment data
Name | Attribute | Format |
---|---|---|
Section | section | string |
Section ID | sectionid | string |
Subsection | subsection | string |
Subsection ID | subsectionid | string |
Author name | author | string |
Author ID | authorid | string |
Subscriber | subscriber | string |
Subscription program | subscription | string |
Transactional/purchase Data
Name | Attribute | Format | Payload Example |
---|---|---|---|
Major category | majorcat | string | Electronics |
Major category ID | majorcatid | string | Cameras |
Minor category | minorcat | string | 10011 |
Minor category ID | minorcatid | string | 10 |
Customer type | customertype | guest / member | 10 |
Product name(s) | productname | string | |
Stock keeping unit (SKU) | sku | string | |
Shipping type | shippingtype | string |
Travel data
Name | Attribute | Format |
---|---|---|
Number of passengers | pax | number |
Travel class | travelclass | string |
Trip type | triptype | string |
Route | route | string |
Loyalty program | loyaltyprogram | string |
Loyalty program ID | loyaltyprogramid | string |
Loyalty tier | loyaltytier | string |
Carrier | carrier | string |
Booked hotel | bookedhotel | boolean |
Purchased insurance | purchasedinsurance | boolean |
Booked car | carbooked | boolean |
Excess baggage | excessbaggage | boolean |
Destination airport | destairport | string |
Destination city | destcity | string |
Departure airport | departairport | string |
Departure city | departcity | string |
Travel time | traveltime | time |
Travel date | traveldate | date |
Departure airport ZIP or postal code | departairportzipcode | zipcode |
Check-in URL | checkinurl | url |
Ticket URL | ticketurl | url |
Passenger name | passengername | name |
Fulfillment attributes
Personally identifiable information (PII) is often required by Rokt to fulfill campaign goals. For example, a customer's email address is considered PII and is essential for Rokt to deliver an email campaign. These pieces of information are known as fulfillment attributes. Rokt has designed a two-step data pass process so that you can safely pass fulfillment attributes to Rokt, ensuring security for the customer and maintaining the quality of their experience.
With the two-step data pass process, you can share hashed (SHA256) PII when the integration initiates. Then, once the customer has positively engaged and opted in to the Rokt offer, you share the raw PII. Disclosing hashed values at the initiation of the integration allows Rokt's systems to deliver on some of the expected functionalities (e.g., suppressing offers for returning customers) while still respecting privacy concerns.
The following code snippet shows basic integration of the two-step process:
import {
Rokt,
RoktEventManager
}
from "@rokt/react-native-sdk";
const roktEventManager = new NativeEventEmitter(RoktEventManager);
//Subscribe to FirstPositiveResponse event.
subscription = roktEventManager.addListener(
'FirstPositiveResponse',
(x) => {
console.log("Widget OnFirstPositiveEvent Callback");
// Send unhashed email on first positive response
fullfilmentAttributes = {
email: "j.smith@example.com"
};
Rokt.setFulfillmentAttributes(fullfilmentAttributes);
}
);
onExecuteHandler = () => {
attributes = {
"emailsha256": "238afb9e862add7d56bbc4181b80fa32",
"firstname": "Jenny",
"lastname": "Smith",
"mobile": "(323) 867-5309",
"postcode": "90210",
"country": "US"
};
Rokt.execute2Step("RoktExperience", attributes, null, () => console.log("Placement Loaded"));
}
// Remove subscription
componentWillUnmount() {
this.subscription.remove();
}
The above snippet assumes you supply the hashed variant of the email synchronously prior to call execute2step
method.
Ensure that the email is lowercased and trimmed of whitespace prior to hashing.
Additional encryption of PII in transit
Rokt values the security of your customers' personally identifiable information (PII) and utilizes best-in-class approaches in protecting it. We exclusively use the HTTPS protocol to communicate between the client application and the Rokt servers. HTTPS provides security by directing the protocol over a Transportation Layer Security (TLS) connection and ensuring the authenticity of all requests and responses, protecting the privacy and integrity of the exchanged data while in transit.
If you want an extra layer of security on your customers' PII, you can choose to encrypt the data prior to transfer, and Rokt can decrypt it on receipt.
Note: The encryption of PII is an advanced integration method and requires working collaboratively with the Rokt development team during implementation. It is more effort than a standard Rokt integration for your development team, including ongoing maintenance (e.g., yearly key rotation).
Overview
Rokt supports asymmetric key encryption (RSA/ECB/OAEPWithSHA-256AndMGF1Padding) for four data attributes designated as PII (first name, last name, email, and phone number).
You need to encrypt each attribute individually and transfer the encrypted values to Rokt, along with the Key ID referencing which encryption key is in use, and any non-PII attributes without encryption.
Rokt receives the encrypted data and decrypts it before sending the decrypted values back to the client. Rokt uses this in messaging presented to the customer to improve relevance, personalization, and performance.
Getting started
To get started, contact your Rokt account manager who can start the conversation between your development team and the Rokt development team.
Rokt generates and distributes the public/private key pairing. Together we will agree on the definition of the Key ID. You can indicate if you want the keys distributed in a particular way. Please provide the technology you use for your backend and frontend (e.g., Javascript) so that Rokt can test the encryption and decryption process prior to sending.
Implementation
Make a change to the standard Rokt PII attributes found in the Rokt Tag by adding Enc to the following key/value pairs:
- firstname
- lastname
- mobile
So the encrypted attributes would be:
- firstNameEnc
- lastNameEnc
- emailEnc
- mobileEnc
All other attributes should remain the same, as specified in the standard documentation or by your account manager. You should not attempt to encrypt any other attribute besides the four mentioned.
For each request/initialization:
- Use your public key to encrypt each PII attribute value individually
- Base64 encode each encrypted value
- Send the following to Rokt:
- Encrypted (and encoded) values with the above keys
- Non-PII key/value pairs as plain text
- Key ID for Rokt to identify the correct key for decryption
When you are ready, contact the Rokt team so that we can verify your implementation.
For more information, see our React Native encryption example.
Key rotation
Rokt supports key rotation on a yearly basis (or longer). Key rotation will need to be manually coordinated.