SlideShare uma empresa Scribd logo
1 de 49
Avoiding the Slog of Real-time
      Data Distribution

                             Eric Lunt
                            Glue 2012
Eric Lunt (@elunt)
CTO, BrightTag (@BrightTag)

Backchannel: #glueslog




                              2
Minimizing
 Avoiding the Slog of Real-time
       Data Distribution or at
                        ,
Least Understanding Why It’s
    a Slog to Begin With



                                  3
The Players
                           Brokered
   Site Owner     Vendor              Publisher
                           Vendors




   Site Visitor


                                                  4
What kind of data?


  Site Owner                          Vendor



                     ?
                     Analytics
                   Ad Networks
                  Social/Sharing
               Retargeting Networks


                                               5
What kind of data?


  Site Owner




                     6
How does the data get shared?

              I would like to use your
                  services please.


                                  Great! All we need to get
                                 started is some data about
                                      your site visitors.


             Okay, how do we do that?


                                  Just add these tags to your site.




                                                                      7
How does data get shared?

                     Tags = HTML Fragments

<script src="http://vendy    <img height="1" width="1"    <iframe width="1"
corp.com/tag.js"></script>   src="http://vendycorp.com/   height="1" frameborder="0"
<script>                     tag?id=1234">                scrolling="no"
  vendy.id=1234;                                          marginheight="0"
  fireTag();                                              marginwidth="0"
</script>                                                 topmargin="0"
                                                          leftmargin="0"
                                                          src="http://vendycorp.com/
                                                          tag?id=1234"></iframe>



        JavaScript                Image “Beacon”                   IFrame




                                                                                       8
Meanwhile, inside Shoemart…
             Oh, benevolent mighty IT
              group, we need to add
              these tags to our site.


                                             No.


                     Why not?


                                   It'll slow the site down.


             But this tag will increase
            our ROI CPM SEO B2B WTF
                       BBQ!


                                   My bonus is based on site
                                        performance.




                                                               9
Meanwhile, inside Shoemart…

             Here's an email from VP
              of marketing saying we
            need to add it. And here's
            the email from the vendor
              with the tag code. And
                 some spring rolls.



                              Okay, our next build is in
                             two weeks. We'll try to get
                                     it in there.




                                                           10
Meanwhile, inside Shoemart…




            Three weeks later…




                                 11
Meanwhile, inside Shoemart…

                          Okay, we pushed your tag.



               Victory!




                                                      12
Meanwhile, inside Shoemart…




             24 hours later…




                               13
Meanwhile, inside Shoemart…
          Wait, none of these
          reports make sense.
            What's wrong?
                                    We need to change the tag.


          You didn't implement
          the tag correctly. The            Okay, our next build is in
        segment id should use a            two weeks. We'll try to get
        pipe delimiter instead of                  it in there.
         colons, you're not URI
          encoding the product
        name, and the revenue
         should be an integer in
                pennies.




                                                                         14
What are the problems with tags?

• Can slow the site down




                                   15
What are the problems with tags?

           We've all heard the stat…


  Every 100ms increase in latency means
   losing a BILLION dollars in revenue!*



                *Not true in all cases


                                           16
What are the problems with tags?

• Can slow the site down
  – <script> tag blocks the rendering thread
  – Most vendor tags use the <script> tag
  – Many vendors have lousy JavaScript

                                  I HATE tags!




                                                 17
What can we do about slow tags?

 Understand client performance at an intimate level




                   READ THESE BOOKS!

                                                      18
What can we do about slow tags?

        Move the tags to the bottom of the page

 <html>                           <html>
 <head>                           <head>
 ...                 Bad          ...
 <script src=                     </head>
 "http://vendycorp.com/tag.js">   <body>
 </script>                        ...
 </head>                          <script src=
 <body>                           "http://vendycorp.com/tag.js">
 ...                              </script>
 </body>                          </body>

                                                   Better




                                                                   19
What can we do about slow tags?

              Make tags asynchronous or post-load
            Evolution of the Google Analytics markup:

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js'
type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try{
var pageTracker = _gat._getTracker("UA-xxxxxx-x");
pageTracker._trackPageview();
} catch(err) {}</script>



                                         Old Blocking Markup




                                                                                              20
What can we do about slow tags?

                Make tags asynchronous or post-load
              Evolution of the Google Analytics markup:
<script type="text/javascript">

 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-XXXXX-X']);
 _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-
analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>



                                         New Async Markup



                                                                                                   21
What can we do about slow tags?

          Make tags asynchronous or post-load

 <script src=
 "http://vendycorp.com/tag.js">
 </script>
                                                        Better

                  <script>
                  (function() {
                    var s = document.createElement('script');
                    s.type = 'text/javascript';
                    s.async = true;
                    s.src = 'http://vendycorp.com/tag.js';
                    var me = document.getElementsByTagName('script')[0];
                    me.parentNode.insertBefore(s, me);
                  })();
                  </script>



                                                                           22
What can we do about slow tags?

       Make tags asynchronous or post-load
          Or use a JS loader like LABjs:

    <script>
    $LAB.script('http://vendycorp.com/tag.js');
    </script>




                                                  23
SIDEBAR
What can we do about slow tags?
                 Don't do this:


           Make tags asynchronous or post-load
  <script type="text/javascript">
  var prot = (("https:" == document.location.protocol) ? "https:" : "http:");
  new Image().src = prot+'//vendycorp.com/img.cgi?id=123';
  </script>   Or use a JS loader like LABjs:

       <script>                   Do this:
       $LAB.script('http://vendycorp.com/tag.js');
       </script>
  <script type="text/javascript">
  new Image().src = '//vendycorp.com/img.cgi?id=123';
  </script>




                                                                                24
What can we do about slow tags?

      Make tags asynchronous or post-load
            What are the problems?

            document.write()
           Listening for DOM events




                                            25
What are the problems with tags?

• Can slow the site down
• Incomplete data collection
• Data integrity




                                   26
What are the problems with tags?

• Data integrity
                                                          Report For Shoemark
                                                          SKU          Sales
                                                          123456       $82034.32
                                                          589483        90459.34




      Site Owner                                 Vendor


                   sku=123456
                   price=339.25
                   qty=1


                                      sku=123456
                                      price=339.25
                                      qty=1




                       Site Visitor
                                                                                   27
What are the problems with tags?

• Data integrity
                                                          Report For Shoemark
                                                          SKU          Sales
                                                          123456       $82034.32
                                                          589483        90459.34




      Site Owner                                 Vendor


                   sku=123456
                   price=339.25
                   qty=1


                                      sku=123456
                                      price=3392.50
                                      qty=10




                       Site Visitor
                                                                                   28
What are the problems with tags?

• Can slow the site down
• Incomplete data collection
• Data integrity




                                   29
Can we cut the browser out?

• Asynchronous server-side call, so no slowdown
• 100% data collection
• No chance for data manipulation



                       Site Owner   sku=123456
                                                   Vendor
                                    price=339.25
                                    qty=1




    Site Visitor


                                                            30
Can we cut the browser out?


                  So what's the problem?




                         Site Owner   sku=123456
                                                     Vendor
                                      price=339.25
                                      qty=1




   Site Visitor


                                                              31
Can we cut the browser out?

• Server-side integrations are much more difficult

• COOKIES!

                        Site Owner   sku=123456
                                                    Vendor
                                     price=339.25
                                     qty=1




    Site Visitor


                                                             32
Cookies are the real challenge
Site Owner                                                                     Publisher
                                         Vendor




                                                     Cookie:
         <script                                     name=Pat
                                                                             <script
         src="vendycorp.com">
                                                                src="vendycorp.com">



                           Set-Cookie:            "Hi Pat!"
                           name=Pat




                                         Later…
Site Visitor
                                                                                       33
Cookies are the real challenge

• No way to assert site visitor identity to the vendor
• Actually, there is a way…




                         Site Owner   sku=123456     Vendor
                                      price=339.25
                                      qty=1
                                      name=???




    Site Visitor


                                                              34
Cookie Sync

1. Establish the first-party id




                                  Site Owner


                    Set-Cookie:
                    id=shoe321



     Site Visitor


                                               35
Cookie Sync

1. Establish the first-party id
2. Check to see if we know the vendor id for visitor




                   Cookie:      Site Owner
                   id=shoe321
                                             Vendycorp id for id=shoe321?
                                             Nope




    Site Visitor


                                                                            36
Cookie Sync

1. Establish the first-party id
2. Check to see if we know the vendor id for visitor
3. Initiate a cookie sync to map identities
    302
    Location:
    http://vendycorp.com/sync?redir=http://shoemark.com/sync%3Fvendycorpid%3D%[[id]]



                                          Site Owner




     Site Visitor


                                                                                       37
Cookie Sync

1. Establish the first-party id
2. Check to see if we know the vendor id for visitor
3. Initiate a cookie sync to map identities



                   Cookie:
                                                                  Vendor
                   name=Pat




                       302
                       Location:
                       http://shoemark.com/sync?vendycorpid=Pat
    Site Visitor


                                                                           38
Cookie Sync

1. Establish the first-party id
2. Check to see if we know the vendor id for visitor
3. Initiate a cookie sync to map identities


                     Cookie:          Site Owner
                     id=shoe321
                                                   Vendycorp id for id=shoe321 is
                   http://shoemark.                "Pat"!
                   com/sync?
                   vendycorpid=Pat




    Site Visitor


                                                                                    39
Cookie Sync

1.   Establish the first-party id
2.   Check to see if we know the vendor id for visitor
3.   Initiate a cookie sync to map identities
4.   Now we can pass along the vendor id server-side

                     Cookie:      Site Owner   sku=123456     Vendor
                     id=shoe321                price=339.25
                                               qty=1
                                               name=Pat




      Site Visitor


                                                                       40
Cookie Sync

1.   Establish the first-party id
2.   Check to see if we know the vendor id for visitor
3.   Initiate a cookie sync to map identities
4.   Now we can pass along the vendor id server-side
5.   Repeat for each vendor!
                     Cookie:      Site Owner   sku=123456     Vendor
                     id=shoe321                price=339.25
                                               qty=1
                                               name=Pat




      Site Visitor


                                                                       41
Mo' cookies, mo' problems
Site Owner                                                                                Publisher
                                              Vendor




                                                             Cookie:
                                Cookie:                      name=Pat
         <script                name=Pat                     wants=boots
                                                                                        <script
         src="vendycorp.com">
                                                                           src="vendycorp.com">


                                Set-Cookie:        "Hi Pat! Here's an
                                wants=boots
                                                   ad for some boots!"




                                              Later…
Site Visitor
                                                                                                  42
So what can we do?

• Just accept it
   – Live with the problems
   – Pretend Safari doesn't exist




                                    43
No third-party cookies
Site Owner                                                                                 Publisher
                                              Vendor




                                                              Cookie:
                                Cookie:                       name=Pat
         <script                name=Pat                      wants=boots
                                                                                         <script
         src="vendycorp.com">
                                                                            src="vendycorp.com">


                                Set-Cookie:        "Hi stranger!"
                                wants=boots




Site Visitor
                                                                                                   44
So what can we do?

• Just accept it
   – Live with the problems
   – Pretend Safari doesn't exist
   – Ignore the EU cookie directive




                                      45
EU Cookies




             46
So what can we do?

• Just accept it
   – Live with the problems
   – Pretend Safari doesn't exist
   – Ignore the EU cookie directive
• Forge new paths
   – RTB (real-time bidding) is a fore-runner
   – Update user information outside the context of a HTTP
     transaction
   – Beyond the browser


                                                             47
So what can we do?

I actually don't have the answers, but wanted you to be
aware of all the moving parts, so the next time you see
some JavaScript that looks brain-dead and kicks off a
series of six 302 redirects to different domains that
piggyback in forty new tags, you have some context.

You don't have to like it, though.




                                                          48
Thank You!

Eric Lunt (@elunt)
CTO, BrightTag (@BrightTag)




                              49

Mais conteúdo relacionado

Destaque

数据结构回顾
数据结构回顾数据结构回顾
数据结构回顾Zehua HONG
 
τα άγνωστα μαθηματικά των βυζαντινών
τα  άγνωστα  μαθηματικά  των βυζαντινώντα  άγνωστα  μαθηματικά  των βυζαντινών
τα άγνωστα μαθηματικά των βυζαντινώνDr. Maria D. Chalkou
 
Body building at a young age
Body building at a young ageBody building at a young age
Body building at a young agetman16
 
Bodybuilding at a young age
Bodybuilding at a young ageBodybuilding at a young age
Bodybuilding at a young agetman16
 
Time Management - Basic Course
Time Management - Basic CourseTime Management - Basic Course
Time Management - Basic CourseCampeauLearning
 
Remo 120207071203-phpapp02
Remo 120207071203-phpapp02Remo 120207071203-phpapp02
Remo 120207071203-phpapp02KrisTian LoPez
 
Remo 120207071203-phpapp02
Remo 120207071203-phpapp02Remo 120207071203-phpapp02
Remo 120207071203-phpapp02KrisTian LoPez
 

Destaque (20)

News of the week 30.5.13 abp ananda
News of the week 30.5.13   abp anandaNews of the week 30.5.13   abp ananda
News of the week 30.5.13 abp ananda
 
数据结构回顾
数据结构回顾数据结构回顾
数据结构回顾
 
τα άγνωστα μαθηματικά των βυζαντινών
τα  άγνωστα  μαθηματικά  των βυζαντινώντα  άγνωστα  μαθηματικά  των βυζαντινών
τα άγνωστα μαθηματικά των βυζαντινών
 
Body building at a young age
Body building at a young ageBody building at a young age
Body building at a young age
 
News of the week 30.5.13 abp news
News of the week 30.5.13   abp newsNews of the week 30.5.13   abp news
News of the week 30.5.13 abp news
 
News of the week 6.6.13 abp news
News of the week 6.6.13   abp newsNews of the week 6.6.13   abp news
News of the week 6.6.13 abp news
 
Bodybuilding at a young age
Bodybuilding at a young ageBodybuilding at a young age
Bodybuilding at a young age
 
Time Mgt CMA (5 12)
Time Mgt   CMA (5 12)Time Mgt   CMA (5 12)
Time Mgt CMA (5 12)
 
Time Management - Basic Course
Time Management - Basic CourseTime Management - Basic Course
Time Management - Basic Course
 
Abp news research snapshot week 40 '12
Abp news research snapshot week 40 '12Abp news research snapshot week 40 '12
Abp news research snapshot week 40 '12
 
News of the week 30.1.13 abp news
News of the week 30.1.13   abp newsNews of the week 30.1.13   abp news
News of the week 30.1.13 abp news
 
News of the week 23.1.13 abp majha
News of the week 23.1.13   abp majhaNews of the week 23.1.13   abp majha
News of the week 23.1.13 abp majha
 
Abp majha research snapshot week 35'12
Abp majha research snapshot week 35'12Abp majha research snapshot week 35'12
Abp majha research snapshot week 35'12
 
Abp news research snapshot week 3212
Abp news research snapshot week 3212Abp news research snapshot week 3212
Abp news research snapshot week 3212
 
Abp majha research snapshot week 36'12
Abp majha research snapshot week 36'12Abp majha research snapshot week 36'12
Abp majha research snapshot week 36'12
 
Remo 120207071203-phpapp02
Remo 120207071203-phpapp02Remo 120207071203-phpapp02
Remo 120207071203-phpapp02
 
News of the week 16.1.13 abp news
News of the week 16.1.13  abp newsNews of the week 16.1.13  abp news
News of the week 16.1.13 abp news
 
Recruitment
RecruitmentRecruitment
Recruitment
 
Blakey t genology
Blakey t genologyBlakey t genology
Blakey t genology
 
Remo 120207071203-phpapp02
Remo 120207071203-phpapp02Remo 120207071203-phpapp02
Remo 120207071203-phpapp02
 

Semelhante a Avoiding the Slog of Real-time Data Distribution

11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSSOliver Brett
 
Play slots for real money
Play slots for real moneyPlay slots for real money
Play slots for real moneyRon Daulton
 
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Onely
 
Running a business on Web Scraped Data
Running a business on Web Scraped DataRunning a business on Web Scraped Data
Running a business on Web Scraped DataPierluigi Vinciguerra
 
Read This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docx
Read This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docxRead This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docx
Read This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docxsodhi3
 
Mongo DB at Coupons Inc.
Mongo DB at Coupons Inc.Mongo DB at Coupons Inc.
Mongo DB at Coupons Inc.MongoDB
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistMark Fayngersh
 
SearchLove London | Dave Sottimano, 'Using Data to Win Arguments'
SearchLove London | Dave Sottimano, 'Using Data to Win Arguments' SearchLove London | Dave Sottimano, 'Using Data to Win Arguments'
SearchLove London | Dave Sottimano, 'Using Data to Win Arguments' Distilled
 
On-Page SEO EXTREME - SEOZone Istanbul 2013
On-Page SEO EXTREME - SEOZone Istanbul 2013On-Page SEO EXTREME - SEOZone Istanbul 2013
On-Page SEO EXTREME - SEOZone Istanbul 2013Bastian Grimm
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorDan Taylor
 
All about google tag manager - Basics
All about google tag manager - Basics All about google tag manager - Basics
All about google tag manager - Basics Rob Levish
 
Vegas slots online. play casino online
Vegas slots online. play casino onlineVegas slots online. play casino online
Vegas slots online. play casino onlinekarlisamayin
 
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick StoxSMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stoxpatrickstox
 
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5Hamlet Batista
 
ICO Research Report - BET Token Issuance by DAO.Casino
ICO Research Report - BET Token Issuance by DAO.Casino ICO Research Report - BET Token Issuance by DAO.Casino
ICO Research Report - BET Token Issuance by DAO.Casino Token Rating
 
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019Onely
 
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019Onely
 

Semelhante a Avoiding the Slog of Real-time Data Distribution (20)

11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS11 Advanced Uses of Screaming Frog Nov 2019 DMSS
11 Advanced Uses of Screaming Frog Nov 2019 DMSS
 
Play slots for real money
Play slots for real moneyPlay slots for real money
Play slots for real money
 
Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript Deep crawl the chaotic landscape of JavaScript
Deep crawl the chaotic landscape of JavaScript
 
Running a business on Web Scraped Data
Running a business on Web Scraped DataRunning a business on Web Scraped Data
Running a business on Web Scraped Data
 
Read This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docx
Read This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docxRead This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docx
Read This FirstAnnielytics.com@AnnieCushingNOTES ABOUT THIS WORKBO.docx
 
Mongo DB at Coupons Inc.
Mongo DB at Coupons Inc.Mongo DB at Coupons Inc.
Mongo DB at Coupons Inc.
 
The State of Front-end At CrowdTwist
The State of Front-end At CrowdTwistThe State of Front-end At CrowdTwist
The State of Front-end At CrowdTwist
 
SearchLove London | Dave Sottimano, 'Using Data to Win Arguments'
SearchLove London | Dave Sottimano, 'Using Data to Win Arguments' SearchLove London | Dave Sottimano, 'Using Data to Win Arguments'
SearchLove London | Dave Sottimano, 'Using Data to Win Arguments'
 
On-Page SEO EXTREME - SEOZone Istanbul 2013
On-Page SEO EXTREME - SEOZone Istanbul 2013On-Page SEO EXTREME - SEOZone Istanbul 2013
On-Page SEO EXTREME - SEOZone Istanbul 2013
 
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan TaylorOptimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
Optimization 2020 | Using Edge SEO For Technical Issues ft. Dan Taylor
 
All about google tag manager - Basics
All about google tag manager - Basics All about google tag manager - Basics
All about google tag manager - Basics
 
Vegas slots online. play casino online
Vegas slots online. play casino onlineVegas slots online. play casino online
Vegas slots online. play casino online
 
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick StoxSMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
SMX Advanced 2018 SEO for Javascript Frameworks by Patrick Stox
 
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5Solving Complex JavaScript Issues and Leveraging Semantic HTML5
Solving Complex JavaScript Issues and Leveraging Semantic HTML5
 
ICO Research Report - BET Token Issuance by DAO.Casino
ICO Research Report - BET Token Issuance by DAO.Casino ICO Research Report - BET Token Issuance by DAO.Casino
ICO Research Report - BET Token Issuance by DAO.Casino
 
Shifting Gears
Shifting GearsShifting Gears
Shifting Gears
 
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019
 
The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019The New Renaissance of JavaScript - SMX London 2019
The New Renaissance of JavaScript - SMX London 2019
 
BigCommerce SEO
BigCommerce SEOBigCommerce SEO
BigCommerce SEO
 
SEO for Large Websites
SEO for Large WebsitesSEO for Large Websites
SEO for Large Websites
 

Último

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 

Último (20)

So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 

Avoiding the Slog of Real-time Data Distribution

  • 1. Avoiding the Slog of Real-time Data Distribution Eric Lunt Glue 2012
  • 2. Eric Lunt (@elunt) CTO, BrightTag (@BrightTag) Backchannel: #glueslog 2
  • 3. Minimizing Avoiding the Slog of Real-time Data Distribution or at , Least Understanding Why It’s a Slog to Begin With 3
  • 4. The Players Brokered Site Owner Vendor Publisher Vendors Site Visitor 4
  • 5. What kind of data? Site Owner Vendor ? Analytics Ad Networks Social/Sharing Retargeting Networks 5
  • 6. What kind of data? Site Owner 6
  • 7. How does the data get shared? I would like to use your services please. Great! All we need to get started is some data about your site visitors. Okay, how do we do that? Just add these tags to your site. 7
  • 8. How does data get shared? Tags = HTML Fragments <script src="http://vendy <img height="1" width="1" <iframe width="1" corp.com/tag.js"></script> src="http://vendycorp.com/ height="1" frameborder="0" <script> tag?id=1234"> scrolling="no" vendy.id=1234; marginheight="0" fireTag(); marginwidth="0" </script> topmargin="0" leftmargin="0" src="http://vendycorp.com/ tag?id=1234"></iframe> JavaScript Image “Beacon” IFrame 8
  • 9. Meanwhile, inside Shoemart… Oh, benevolent mighty IT group, we need to add these tags to our site. No. Why not? It'll slow the site down. But this tag will increase our ROI CPM SEO B2B WTF BBQ! My bonus is based on site performance. 9
  • 10. Meanwhile, inside Shoemart… Here's an email from VP of marketing saying we need to add it. And here's the email from the vendor with the tag code. And some spring rolls. Okay, our next build is in two weeks. We'll try to get it in there. 10
  • 11. Meanwhile, inside Shoemart… Three weeks later… 11
  • 12. Meanwhile, inside Shoemart… Okay, we pushed your tag. Victory! 12
  • 13. Meanwhile, inside Shoemart… 24 hours later… 13
  • 14. Meanwhile, inside Shoemart… Wait, none of these reports make sense. What's wrong? We need to change the tag. You didn't implement the tag correctly. The Okay, our next build is in segment id should use a two weeks. We'll try to get pipe delimiter instead of it in there. colons, you're not URI encoding the product name, and the revenue should be an integer in pennies. 14
  • 15. What are the problems with tags? • Can slow the site down 15
  • 16. What are the problems with tags? We've all heard the stat… Every 100ms increase in latency means losing a BILLION dollars in revenue!* *Not true in all cases 16
  • 17. What are the problems with tags? • Can slow the site down – <script> tag blocks the rendering thread – Most vendor tags use the <script> tag – Many vendors have lousy JavaScript I HATE tags! 17
  • 18. What can we do about slow tags? Understand client performance at an intimate level READ THESE BOOKS! 18
  • 19. What can we do about slow tags? Move the tags to the bottom of the page <html> <html> <head> <head> ... Bad ... <script src= </head> "http://vendycorp.com/tag.js"> <body> </script> ... </head> <script src= <body> "http://vendycorp.com/tag.js"> ... </script> </body> </body> Better 19
  • 20. What can we do about slow tags? Make tags asynchronous or post-load Evolution of the Google Analytics markup: <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try{ var pageTracker = _gat._getTracker("UA-xxxxxx-x"); pageTracker._trackPageview(); } catch(err) {}</script> Old Blocking Markup 20
  • 21. What can we do about slow tags? Make tags asynchronous or post-load Evolution of the Google Analytics markup: <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google- analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> New Async Markup 21
  • 22. What can we do about slow tags? Make tags asynchronous or post-load <script src= "http://vendycorp.com/tag.js"> </script> Better <script> (function() { var s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'http://vendycorp.com/tag.js'; var me = document.getElementsByTagName('script')[0]; me.parentNode.insertBefore(s, me); })(); </script> 22
  • 23. What can we do about slow tags? Make tags asynchronous or post-load Or use a JS loader like LABjs: <script> $LAB.script('http://vendycorp.com/tag.js'); </script> 23
  • 24. SIDEBAR What can we do about slow tags? Don't do this: Make tags asynchronous or post-load <script type="text/javascript"> var prot = (("https:" == document.location.protocol) ? "https:" : "http:"); new Image().src = prot+'//vendycorp.com/img.cgi?id=123'; </script> Or use a JS loader like LABjs: <script> Do this: $LAB.script('http://vendycorp.com/tag.js'); </script> <script type="text/javascript"> new Image().src = '//vendycorp.com/img.cgi?id=123'; </script> 24
  • 25. What can we do about slow tags? Make tags asynchronous or post-load What are the problems? document.write() Listening for DOM events 25
  • 26. What are the problems with tags? • Can slow the site down • Incomplete data collection • Data integrity 26
  • 27. What are the problems with tags? • Data integrity Report For Shoemark SKU Sales 123456 $82034.32 589483 90459.34 Site Owner Vendor sku=123456 price=339.25 qty=1 sku=123456 price=339.25 qty=1 Site Visitor 27
  • 28. What are the problems with tags? • Data integrity Report For Shoemark SKU Sales 123456 $82034.32 589483 90459.34 Site Owner Vendor sku=123456 price=339.25 qty=1 sku=123456 price=3392.50 qty=10 Site Visitor 28
  • 29. What are the problems with tags? • Can slow the site down • Incomplete data collection • Data integrity 29
  • 30. Can we cut the browser out? • Asynchronous server-side call, so no slowdown • 100% data collection • No chance for data manipulation Site Owner sku=123456 Vendor price=339.25 qty=1 Site Visitor 30
  • 31. Can we cut the browser out? So what's the problem? Site Owner sku=123456 Vendor price=339.25 qty=1 Site Visitor 31
  • 32. Can we cut the browser out? • Server-side integrations are much more difficult • COOKIES! Site Owner sku=123456 Vendor price=339.25 qty=1 Site Visitor 32
  • 33. Cookies are the real challenge Site Owner Publisher Vendor Cookie: <script name=Pat <script src="vendycorp.com"> src="vendycorp.com"> Set-Cookie: "Hi Pat!" name=Pat Later… Site Visitor 33
  • 34. Cookies are the real challenge • No way to assert site visitor identity to the vendor • Actually, there is a way… Site Owner sku=123456 Vendor price=339.25 qty=1 name=??? Site Visitor 34
  • 35. Cookie Sync 1. Establish the first-party id Site Owner Set-Cookie: id=shoe321 Site Visitor 35
  • 36. Cookie Sync 1. Establish the first-party id 2. Check to see if we know the vendor id for visitor Cookie: Site Owner id=shoe321 Vendycorp id for id=shoe321? Nope Site Visitor 36
  • 37. Cookie Sync 1. Establish the first-party id 2. Check to see if we know the vendor id for visitor 3. Initiate a cookie sync to map identities 302 Location: http://vendycorp.com/sync?redir=http://shoemark.com/sync%3Fvendycorpid%3D%[[id]] Site Owner Site Visitor 37
  • 38. Cookie Sync 1. Establish the first-party id 2. Check to see if we know the vendor id for visitor 3. Initiate a cookie sync to map identities Cookie: Vendor name=Pat 302 Location: http://shoemark.com/sync?vendycorpid=Pat Site Visitor 38
  • 39. Cookie Sync 1. Establish the first-party id 2. Check to see if we know the vendor id for visitor 3. Initiate a cookie sync to map identities Cookie: Site Owner id=shoe321 Vendycorp id for id=shoe321 is http://shoemark. "Pat"! com/sync? vendycorpid=Pat Site Visitor 39
  • 40. Cookie Sync 1. Establish the first-party id 2. Check to see if we know the vendor id for visitor 3. Initiate a cookie sync to map identities 4. Now we can pass along the vendor id server-side Cookie: Site Owner sku=123456 Vendor id=shoe321 price=339.25 qty=1 name=Pat Site Visitor 40
  • 41. Cookie Sync 1. Establish the first-party id 2. Check to see if we know the vendor id for visitor 3. Initiate a cookie sync to map identities 4. Now we can pass along the vendor id server-side 5. Repeat for each vendor! Cookie: Site Owner sku=123456 Vendor id=shoe321 price=339.25 qty=1 name=Pat Site Visitor 41
  • 42. Mo' cookies, mo' problems Site Owner Publisher Vendor Cookie: Cookie: name=Pat <script name=Pat wants=boots <script src="vendycorp.com"> src="vendycorp.com"> Set-Cookie: "Hi Pat! Here's an wants=boots ad for some boots!" Later… Site Visitor 42
  • 43. So what can we do? • Just accept it – Live with the problems – Pretend Safari doesn't exist 43
  • 44. No third-party cookies Site Owner Publisher Vendor Cookie: Cookie: name=Pat <script name=Pat wants=boots <script src="vendycorp.com"> src="vendycorp.com"> Set-Cookie: "Hi stranger!" wants=boots Site Visitor 44
  • 45. So what can we do? • Just accept it – Live with the problems – Pretend Safari doesn't exist – Ignore the EU cookie directive 45
  • 47. So what can we do? • Just accept it – Live with the problems – Pretend Safari doesn't exist – Ignore the EU cookie directive • Forge new paths – RTB (real-time bidding) is a fore-runner – Update user information outside the context of a HTTP transaction – Beyond the browser 47
  • 48. So what can we do? I actually don't have the answers, but wanted you to be aware of all the moving parts, so the next time you see some JavaScript that looks brain-dead and kicks off a series of six 302 redirects to different domains that piggyback in forty new tags, you have some context. You don't have to like it, though. 48
  • 49. Thank You! Eric Lunt (@elunt) CTO, BrightTag (@BrightTag) 49

Notas do Editor

  1. We are in Chicago, 2 years old, we are essentially middleware for data distribution. My background is in building large distributed scalable low-latency systems, not digital marketing.
  2. List the kinds of services, build into the big diagram
  3. List the kinds of services, build into the big diagram
  4. List the kinds of services, build into the big diagram
  5. This is kind of a general statement. What is really important is to understand the relationship between the site markup and the browser rendering thread.
  6. Okay, maybe not in all cases, but there are several studies that show abandonment rate is directly related to latency, and that does actually tie to revenue.
  7. IT hates this situation because it represents a part of the site that they don&apos;t control.
  8. Steve Souders is the man. Talks in detail about what blocks the browser rendering thread and what doesn&apos;t.
  9. Go as low as you can so as much of the page will render before you make the third-party calls.Oftentimes, vendors will suggest you go high in the page to minimize data loss, though.
  10. There are all sorts of things that we haven&apos;t gotten into here, such as dependencies between scripts. LABjs helps with that, so you can wait for a script to load before executing functions in that script file.
  11. Talk about how an http reference on an https page is bad. Use protocol relative URLs.
  12. For those of you keeping track, we&apos;re now talking about the problems to the solution to the problem.