Generate the User Ids Generate the User ID First things you’ll need are the UID ingredients. The Internal User ID (for each of your users), App ID, and Security Key. internalUserID = User123 appID = 1sJ57hgit securityKey = 838ab4b72d221a585af8b4be7a540234 Generate an md5 hash of the combined string using your programming language’s md5 function (using Python 3, it is in a library called hashlib). Then concatenate the first 10 characters of the md5 hash. Make sure the Checksum is lowercase. Generate an md5 hash of the combined string Concatenate the first 10 characters using hexdigest(:10) concat_input = internalUserID + appID + securityKey checksum = hashlib.md5(concat_input).hexdigest()[:10] Combine them all into one to create the PL UID. PL_UID = internalUserID + “-” + appID + “-” + checkSum Repeat this process for each of your users to create their User ID. Examples Here are examples of how to do this process using 3 different programming languages. Python #This Script Produces a PL User ID using Python import hashlib import sys endUserId = "User123" #insert internal user ID here applicationKey = "54dbf08d625158c6d7b055928d6ac0cc" #insert application key here applicationId = "9145" #insert App ID here. checkSum = hashlib.md5(endUserId + applicationId + applicationKey) userId = endUserId + "-" + applicationId + "-" + checkSum.hexdigest()[:10] print(userId) Ruby require 'digest' end_user_id = 'test_user' publisher_id = '1' security_key = '00000000000000000000000000000000' hash = Digest::MD5.hexdigest(end_user_id + publisher_id + publisher_security_key) user_id = "#{end_user_id}-#{publisher_id}-#{hash[0..9]}” C# System.Security.Cryptography; public class Program { public static void Main() { var endUserID = "User123"; //assuming a member id for their user to be 3. Make sure to change it for every user var publisherId = "9165"; var securityKey = "34101a01e1f305b39d16283d5dd05194"; var hash = CalculateMD5Hash(endUserID + publisherId + securityKey); var userId = endUserID + "-" + publisherId + "-" + hash.Substring(0, 10).ToLower(); var iFrameURL = "https://www.rapidoreach.com/offerwall/?userId=" + userId + "&dob=03-03-1979&sex=1"; //make sure to append the correct dob and sex for every user Console.WriteLine("Generated user id is :{0}", userId); Console.WriteLine("Generated iFrameURL is :{0}", iFrameURL); } public static string CalculateMD5Hash(string input) { // step 1, calculate MD5 hash from input MD5 md5 = System.Security.Cryptography.MD5.Create(); byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input); byte[] hash = md5.ComputeHash(inputBytes); // step 2, convert byte array to hex string StringBuilder sb = new StringBuilder(); for (int i = 0; i < hash.Length; i++) { sb.Append(hash[i].ToString("X2")); } return sb.ToString(); } }