Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
BedrockMission!

Learn More

View all

Sign in to view all badges

Can Adobe Launch Encrypt or Obfuscate Values?

Avatar

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile
eham06
Level 4

03-04-2018

Can Adobe Launch take a value from the query string, encrypt or obfuscate that value and push the encrypted/obfuscated value to Adobe Analytics?

If so, how?

How would be decrypt/un-obfuscate those values stored in Adobe Analytics?

Thanks

Accepted Solutions (1)

Accepted Solutions (1)

Avatar

Avatar
Seeker
Employee
brandon_pack
Employee

Likes

30 likes

Total Posts

40 posts

Correct Reply

10 solutions
Top badges earned
Seeker
Unlock
Publish 1
Ignite 1
Give Back 3
View profile

Avatar
Seeker
Employee
brandon_pack
Employee

Likes

30 likes

Total Posts

40 posts

Correct Reply

10 solutions
Top badges earned
Seeker
Unlock
Publish 1
Ignite 1
Give Back 3
View profile
brandon_pack
Employee

17-04-2018

I'd also recommend you take a look at the SDI Toolkit Extension from Search Discovery.  They added functionality that might be of interest to you.  It is a one-way hash but will hash to consistent values.

Here is their description:

One Way Hash

Converts a data element to a consistent obfuscated string.

One way hashing is commonly used to obfuscate sensitive information for analytics purposes. Hashing an email address or a customer id will return the same obfuscated value every time for tracking purposes.

user@example.com => 4da3a5736c67e46036f26146662a6e9491176a63de36b49b7ed2c5b47b37e96e

Answers (12)

Answers (12)

Avatar

Avatar
Springboard
MVP
StewSchilling
MVP

Likes

339 likes

Total Posts

276 posts

Correct Reply

85 solutions
Top badges earned
Springboard
Bedrock
Validate 1
Establish
Contributor
View profile

Avatar
Springboard
MVP
StewSchilling
MVP

Likes

339 likes

Total Posts

276 posts

Correct Reply

85 solutions
Top badges earned
Springboard
Bedrock
Validate 1
Establish
Contributor
View profile
StewSchilling
MVP

24-05-2018

read.csv is actually an R function. It pulls in the file, /Users/Eric/Documents/R-Data-Files/custID.csv and puts it into a new data frame by the name, sampleCRMdata.

The file, custID.csv, can have as many columns as you want as long as it has one column with a header of "custID".

Avatar

Avatar
Springboard
MVP
StewSchilling
MVP

Likes

339 likes

Total Posts

276 posts

Correct Reply

85 solutions
Top badges earned
Springboard
Bedrock
Validate 1
Establish
Contributor
View profile

Avatar
Springboard
MVP
StewSchilling
MVP

Likes

339 likes

Total Posts

276 posts

Correct Reply

85 solutions
Top badges earned
Springboard
Bedrock
Validate 1
Establish
Contributor
View profile
StewSchilling
MVP

23-05-2018

Yes, The same hashing function (SHA256) can be used on the keys within your CRM so that you can make the connection between the hashed values in your analytics data and your customers in your CRM.

Here's how I would do it in R. Take note that I'm applying the same data normalization (force to lowercase & trim whitespace) as I do within the SDI Toolkit's one-way-hash.

#####THIS IS AN R Script

library("digest")

setwd("/Users/stewartschilling/R_Scripts/inputs")

sampleCRMdata<-read.csv(file="sampleData_custID.csv", header=TRUE)

sampleCRMdata$custIDHashed <- sapply( tolower( trimws( sampleCRMdata$custID ) ), digest, algo="sha256", serialize=FALSE)

#####HERE ENDS THE R SCRIPT

My advice to you would be to run a small sample of your CRM custId's and make sure that you get the same hashed output from both ends (Launch client-side and CRM server-side) before you go great guns with data collection (or in using the hash as an integration key in ECID service or AAM).

Avatar

Avatar
Seeker
Employee
brandon_pack
Employee

Likes

30 likes

Total Posts

40 posts

Correct Reply

10 solutions
Top badges earned
Seeker
Unlock
Publish 1
Ignite 1
Give Back 3
View profile

Avatar
Seeker
Employee
brandon_pack
Employee

Likes

30 likes

Total Posts

40 posts

Correct Reply

10 solutions
Top badges earned
Seeker
Unlock
Publish 1
Ignite 1
Give Back 3
View profile
brandon_pack
Employee

17-04-2018

Not sure exactly of the specifics that you mean by running it locally, but according to their documentation it is using a 64 character SHA-265 hash (https://www.searchdiscovery.com/blog/sdi-toolkit-extension-for-launch-by-adobe/ ) which can be implemented in almost any language of your preference and even some in Excel VB Script if search for it.   Haven't tried any of these but there are a number of free ones out there (ex: GitHub - Caligatio/jsSHA: A JavaScript implementation of the complete Secure Hash Standard family (S...  Some perform better than others:  test ) or some lanaguage have them built in like PHP: hash - Manual.  The algorythm is the same so as long as it's implmented correctly, white space is trimmed, etc. the IDs should hash to the same value as the one you implment through the Launch extension.

Avatar

Avatar
Boost 5
Level 2
chrisa38599900
Level 2

Likes

5 likes

Total Posts

4 posts

Correct Reply

0 solutions
Top badges earned
Boost 5
Boost 3
Boost 1
View profile

Avatar
Boost 5
Level 2
chrisa38599900
Level 2

Likes

5 likes

Total Posts

4 posts

Correct Reply

0 solutions
Top badges earned
Boost 5
Boost 3
Boost 1
View profile
chrisa38599900
Level 2

17-04-2018

I think the main problem is that you have the value in the querystring. Even if you obfuscate the values sent in the analytics payload, the plaintext version will still be sent in the referrer. We had a similar issue with email addresses in plaintext in URLs. The only surefire solution is to stop putting PII in URLs.

Avatar

Avatar
Boost 5
Level 4
dustins79436056
Level 4

Likes

47 likes

Total Posts

13 posts

Correct Reply

2 solutions
Top badges earned
Boost 5
Boost 3
Boost 25
Boost 10
Boost 1
View profile

Avatar
Boost 5
Level 4
dustins79436056
Level 4

Likes

47 likes

Total Posts

13 posts

Correct Reply

2 solutions
Top badges earned
Boost 5
Boost 3
Boost 25
Boost 10
Boost 1
View profile
dustins79436056
Level 4

17-04-2018

You can base64 encode using the JS methods btoa() (encode) and atob() (decode).

Base64 encoding and decoding - Web APIs | MDN

Avatar

Avatar
Springboard
MVP
StewSchilling
MVP

Likes

339 likes

Total Posts

276 posts

Correct Reply

85 solutions
Top badges earned
Springboard
Bedrock
Validate 1
Establish
Contributor
View profile

Avatar
Springboard
MVP
StewSchilling
MVP

Likes

339 likes

Total Posts

276 posts

Correct Reply

85 solutions
Top badges earned
Springboard
Bedrock
Validate 1
Establish
Contributor
View profile
StewSchilling
MVP

24-05-2018

Glad to hear it!  Thanks for the follow-up.

-Stew

Avatar

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile
eham06
Level 4

24-05-2018

This worked! Thanks again...

Avatar

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile
eham06
Level 4

23-05-2018

I had not thought about using R.  Thanks for the tip...

I have the following set up...

   custID.csv contains 1 column, 2 rows, 1 ID in each row.

   read.csv is a blank file.

  When I run your code, I get the following.  Error message in bold.

> library("digest")

>

> setwd("/Users/Eric/Documents/R-Data-Files")

>

> sampleCRMdata<-read.csv(file="custID.csv", header=TRUE)

>

> sampleCRMdata$custIDHashed <- sapply( tolower( trimws( sampleCRMdata$custID ) ), digest, algo="sha256", serialize=FALSE)

Error in `$<-.data.frame`(`*tmp*`, custIDHashed, value = list()) :

  replacement has 0 rows, data has 1

Do you have any recommendations?

Thanks

Avatar

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile
eham06
Level 4

17-04-2018

Brandon... Thank you... I think this is the solution that we need! 🙂

One quick question.  Is there a way for me to run this One Way Hash locally on my system on all of my IDs?

Avatar

Avatar
Validate 1000
Community Manager
jantzen_belliston-Adobe
Community Manager

Likes

337 likes

Total Posts

2,286 posts

Correct Reply

815 solutions
Top badges earned
Validate 1000
Springboard
Validate 500
Validate 250
Validate 100
View profile

Avatar
Validate 1000
Community Manager
jantzen_belliston-Adobe
Community Manager

Likes

337 likes

Total Posts

2,286 posts

Correct Reply

815 solutions
Top badges earned
Validate 1000
Springboard
Validate 500
Validate 250
Validate 100
View profile
jantzen_belliston-Adobe
Community Manager

17-04-2018

I'm sure there are plenty of way to obfuscate the userID with custom JavaScript within Launch. However, I'm not aware of a way to de-obfuscate these values once they reach Analytics.

Avatar

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile

Avatar
Validate 10
Level 4
eham06
Level 4

Likes

44 likes

Total Posts

46 posts

Correct Reply

2 solutions
Top badges earned
Validate 10
Validate 1
Boost 5
Boost 3
Boost 25
View profile
eham06
Level 4

17-04-2018

We have customer user IDs.  These customer user IDs are exposed as plain text in the URL string. It's our company policy not to store plain text customer user IDs in 3rd party tools such as Adobe Analytics.  We are allowed to store these customer user IDs as obfuscated/encrypted values.  I am looking for a way to use Adobe Launch to obfuscate or encrypt these values and push to Adobe Analytics.

Thanks

Avatar

Avatar
Validate 1000
Community Manager
jantzen_belliston-Adobe
Community Manager

Likes

337 likes

Total Posts

2,286 posts

Correct Reply

815 solutions
Top badges earned
Validate 1000
Springboard
Validate 500
Validate 250
Validate 100
View profile

Avatar
Validate 1000
Community Manager
jantzen_belliston-Adobe
Community Manager

Likes

337 likes

Total Posts

2,286 posts

Correct Reply

815 solutions
Top badges earned
Validate 1000
Springboard
Validate 500
Validate 250
Validate 100
View profile
jantzen_belliston-Adobe
Community Manager

16-04-2018

I'm not aware of any feature to encrypt/decrypt values between Launch and Adobe Analytics. Can you tell me more about your use case?