3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

90
#WDC14 3RD PARTY FOOTPRINT BARBARA BERMES | @BBINTO A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

description

Slides from my Melbourne talk: webdirections.org/code14. Follow-up blog post: http://bit.ly/wdc14-3rdparty

Transcript of 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

Page 1: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

3RD PARTY FOOTPRINT

BARBARA BERMES | @BBINTO

A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

Page 2: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

I LIVE IN TORONTO, CANADA

Page 3: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

I LOVE BURRITOS

Page 4: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

I’M PASSIONATE ABOUT WEB PERF

Page 5: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

LET’S GET THIS PARTY STARTED

Page 6: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

–Ben Vinegar, Author of “Third-Party Script”

“In the strictest sense, anything served to the client that’s provided by an organization that’s not the website provider is considered to be

third-party”

Page 7: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

TYPES OF 3RD PARTY SCRIPTSAds Tracking and Analytics Fonts Social Media Libraries and Frameworks

Page 8: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

WHAT’S THE #1 USED 3RD SCRIPT?

Page 9: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

STATS FROM BIG QUERY

#WDC14

Page 10: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

31%

34.5%

38%

2011 2013 2014

32%

36%

38%

3rd party content

DISTRIBUTION OF 3RD PARTY SCRIPTS VS. 1ST PARTY

#WDC14

Page 11: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Advertising

Analytics

Personalization

Marketing

Tag Management

Search

Social Media

0 25 50 75 100

23

45

53

53

62

92

92

Percentage of sites with each third party function present

Source: Intechnica - The impact of third party content on retail web performance

Page 12: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

VISUALIZE THE IMPACT OF 3RD PARTY SCRIPTS

Page 13: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Page 14: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Page 15: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Page 16: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

FOREIGN CONTENT OVERLOAD

Page 17: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

EXAMPLE: WIRED

#WDC14

Page 18: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

BUT WHAT’S THE ISSUE?

Page 19: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

THINGS TO TALK ABOUT TODAY

Page 20: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

THE ISSUES AND NEGATIVE IMPACTS

PerformanceFront-end Single Point of Failure (SPOF) Privacy

Page 21: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

POTENTIAL SOLUTIONS

Safe snippetsCaching and Hosted Libraries Tools and Initiatives

Page 22: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

PERFORMANCE

Page 23: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

The value you get out of the widget needs to be greater than the performance hit you are taking

- John HjelmstadGoogle I/O 2012 (How we Make JavaScript Widgets Scream)

RULE OF THUMB

Page 24: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

A user who has to endure an 8-second download delay

spends only 1% of their total viewing time looking at the

featured promotional space on a landing page.

In contrast, a user who receives instantaneous page rendering

spends 20% of viewing time within the promotional area (source: Jakob Nielsen)

PERCEPTION OF PROMOTIONAL SPACE

Page 25: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

WHAT WOULD A LIFE WITHOUT ADS FEEL LIKE?

Page 26: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

THE PERFORMANCE IMPACT OF ADS

#WDC14

Page 27: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Using no (client-side) ad code reduced CBC’s page load time by 40%

40%

<script/>

Page 28: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

MONITOR FOREIGN CONTENT, CONSTANTLY!

Page 29: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Arit

hmet

ic M

ean

in s

0

2.5

5

7.5

10

10/4/12 10/31/12

BAD 3RD PARTIES (CBC TOUCH SITE)

Smooth sailing

Client-side Ads

Ads turned offServer-side Ads

Source: Keynote Daily Reports

We noticed a spike

#WDC14

Page 30: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SINGLE POINT OF FAILURE

Page 31: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

A single point of failure (SPOF) is a part of a system that, if it fails, will stop the entire system from working

–Wikipedia

Page 32: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

THE OFFENDER

It will block rendering anything after this line

Page 33: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

YEAH….BUT DO THIRD PARTY PROVIDERS EVER GO DOWN??

Page 34: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

OH YES. THEY DO!

Page 35: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 36: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 37: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 38: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

THE GREAT FIREWALL OF CHINA

Page 39: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SIMULATING SPOF ON TECHCRUNCH

Page 40: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Page 41: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SPOF-O-Matic

#WDC14

Page 42: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 43: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SPOF WIRED

Without SPOFWith SPOF: Visually complete 40s

Page 44: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

LET’S CRASH THE PARTY

Page 45: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 46: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Page 47: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 48: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 49: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

INITIALIZING CLIENT-SIDE SCRIPTS

Page 50: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNC OR DEFER JS

Page 51: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNC OR DEFER JS

Page 52: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SAFEST WAY: DYNAMIC SCRIPT TAG (to cover most of the browsers)

Page 53: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

http://www.phpied.com/social-button-bffs/

Page 54: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

Page 55: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

Page 56: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

Page 57: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

Page 58: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

Page 59: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

ASYNCHRONOUS LOADING

Page 60: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

BEFORE

Page 61: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

5 seconds 25 seconds

Page 62: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

AFTER

Page 63: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

AFTER5 seconds

Page 64: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

PREVENTION! PROTECT YOURSELF WITH THE HELP OF TOOLS

Page 65: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

CACHING?Don’t always rely on it!

Page 66: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

CACHE POLICIES

30min.

30 min

12 hrs

20 min

1 hr

336 hrs

no cache

1 hr

3 min

#WDC14

Page 67: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

HOSTED LIBRARIES?

Page 68: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

DON’T JUST COPY AND PASTE

#WDC14

Page 69: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SPOF ALERT

Page 70: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

DON’T DO THIS….

Page 71: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

RATHER DO THIS: SILENTLY FAIL

Page 72: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

Other 55%

1.7.2 14%

1.7.1 13%

1.10.2 9%

1.8.3 9%

GOOGLE’S HOSTED JQUERY FRAGMENTATION

Source: March 2014, Big Query result on jQuery from Google CDNs

Page 73: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

SO, WHATS THE VERDICT: HOSTED LIBRARIES OR NOT?

Page 74: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

PRIVACY

Page 75: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

“The Like button is the quickest way for people to share content with their

friends.

A single click on the Like button will 'like' pieces of content on the web

and share them on Facebook.”

Page 76: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

What they don’t tell you….

Track the visited website, your IP, and more….????

Did you agree to that?

!

Page 77: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

OPEN SOURCE INITIATIVES AND RESOURCES

Page 78: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

PRIVACY HERO HEISE’S OPT-IN SOLUTION

Page 79: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 80: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

3RD PARTY PERF HEROES PHILIP TELLIS & STOYAN STEFANOV

Page 81: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 82: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

JSMANNERS

Page 83: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14#WDC14

Page 84: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

CONTRIBUTE ON GITHUB!https://github.com/triblondon/thirdpartysla

#WDC14

Page 85: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

NEXT TIME BEFORE YOU COPY AND PASTE

Page 86: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

WHAT TO DO AS A PUBLISHER & DEVELOPER

• Refuse 3rd party content that doesn’t provide async options

• Put the risk in the SLA (uptime etc.)

• Review jsmanners

• Educate other (junior) developers

Page 87: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

• Ask for server-side options

• Evaluate tag managers

• Investigate hosted libraries (if no own CDN is available)

• Monitor, monitor, ….and monitor

WHAT TO DO AS A PUBLISHER & DEVELOPER

Page 88: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

WHAT TO DO AS A SCRIPT PROVIDER

• Provide non-blocking code samples and snippets

• Educate developers and verify the integration of your script developers (proof-check)

Page 89: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

THE PARTY’S OVER !

THANK YOU

Page 90: 3rd party footprint - A PUBLISHER'S TAKE ON CONTROLLING 3RD PARTY SCRIPTS

#WDC14

QUESTIONS?http://bit.ly/wdc14-3rdparty