Md. Alamin

help businesses fix broken tracking

Simplifying User Data Hashing with SHA-256 Using One Variable ๐—ถ๐—ป ๐—š๐—ผ๐—ผ๐—ด๐—น๐—ฒ ๐—ง๐—ฎ๐—ด ๐— ๐—ฎ๐—ป๐—ฎ๐—ด๐—ฒ๐—ฟ

๐ŸŽฅ Watch the Full Video Video To Setup SHA-256 Using One Variable in GTM

๐Ÿ“Œ Create ONE Data Layer Variable (DLV) in GTM

GTM โ†’ Variables โ†’ New โ†’ Data Layer Variable

  • Name: DLV – user_data
  • Data Layer Variable Name: user_data
  • Data Layer Version: Version 2
  • Save

Now GTM can read the full object (email/phone/city/etc.) using one DLV.

function(){
  
  var obj={{- โญ• User_Data}};
  var KEY="email";

var v;if(KEY&&KEY!==""){v=getByPath(obj,KEY);}else{v=obj;}if(v===undefined||v===null||v==="")return undefined;v=(""+v).toLowerCase().trim();return sha256(v);function getByPath(o,path){if(!o||!path)return undefined;var parts=(""+path).split("."),cur=o;for(var i=0;i<parts.length;i++){if(!cur||cur[parts[i]]===undefined)return undefined;cur=cur[parts[i]];}return cur;}function sha256(r){if(!r)return;r=r.toString();var i,j,result="",words=[],bitLen=r.length*8;var H=sha256.h=sha256.h||[],K=sha256.k=sha256.k||[],kLen=K.length;var isComposite={};for(var candidate=2;kLen<64;candidate++){if(!isComposite[candidate]){for(i=0;i<313;i+=candidate)isComposite[i]=candidate;H[kLen]=(Math.pow(candidate,0.5)*Math.pow(2,32))|0;K[kLen++]=(Math.pow(candidate,1/3)*Math.pow(2,32))|0;}}r+="\x80";while(r.length%64-56)r+="\x00";for(i=0;i<r.length;i++){j=r.charCodeAt(i);if(j>>8)return;words[i>>2]|=j<<((3-i)%4)*8;}words[words.length]=(bitLen/Math.pow(2,32))|0;words[words.length]=bitLen;for(j=0;j<words.length;){var w=words.slice(j,j+=16);var old=H.slice(0,8);var a=old[0],b=old[1],c=old[2],d=old[3],e=old[4],f=old[5],g=old[6],h=old[7];for(i=0;i<64;i++){var w15=w[i-15],w2=w[i-2];var s0=(rotr(w15,7)^rotr(w15,18)^(w15>>>3))|0;var s1=(rotr(w2,17)^rotr(w2,19)^(w2>>>10))|0;w[i]=(i<16)?w[i]:(w[i-16]+s0+w[i-7]+s1)|0;var S1=(rotr(e,6)^rotr(e,11)^rotr(e,25))|0;var ch=(e&f)^(~e&g);var t1=(h+S1+ch+K[i]+w[i])|0;var S0=(rotr(a,2)^rotr(a,13)^rotr(a,22))|0;var maj=(a&b)^(a&c)^(b&c);var t2=(S0+maj)|0;h=g;g=f;f=e;e=(d+t1)|0;d=c;c=b;b=a;a=(t1+t2)|0;}H[0]=(H[0]+a)|0;H[1]=(H[1]+b)|0;H[2]=(H[2]+c)|0;H[3]=(H[3]+d)|0;H[4]=(H[4]+e)|0;H[5]=(H[5]+f)|0;H[6]=(H[6]+g)|0;H[7]=(H[7]+h)|0;}for(i=0;i<8;i++){for(j=3;j>=0;j--){var byte=(H[i]>>(j*8))&255;result+=(byte<16?"0":"")+byte.toString(16);}}return result;function rotr(x,n){return(x>>>n)|(x<<(32-n));}}}

Leave a Reply

Your email address will not be published. Required fields are marked *

Md. Alamin

help businesses fix broken tracking