15

Click here to load reader

Taming 3rd party content

Embed Size (px)

DESCRIPTION

Sergey Chernyshev presents about reducing the harm caused by these tools and best practices for consumers as well as creators of such 3rd party content.

Citation preview

Page 1: Taming 3rd party content

Taming 3rd party content

Page 2: Taming 3rd party content

What's third party?

"Loaded from another server..."

- Sergey Chernyshev

Page 3: Taming 3rd party content

All over your site

Page 4: Taming 3rd party content

<script>

Easy to integrate!

Easy to update!

Easy to grab user info!

Page 5: Taming 3rd party content

</script>

Blocks rendering!

Depends ontheir servers!

Security & privacy risk!

Page 6: Taming 3rd party content

SLO-JS

SingleLine Of

JavaScript

Page 7: Taming 3rd party content

Ads

• Pay bills ($$$)

• Chain of brokers

• Rich (heavy) content

• Need lots of user data

Page 8: Taming 3rd party content

Ads: how bad is it?

• document.write (blocks, can't be post loaded)

• Sometimes up to 7 nested wrappers, more then 20 requests

• Fail rarely, but block the whole site

Page 9: Taming 3rd party content

Ads: Solutions!

• Load after content is loaded

• Use IFrames

• Don't use 3rd party engines

Page 10: Taming 3rd party content

Widgets

• Free content or functionality

• Use JS for everything

• Rarely cache

• More complexity for your site

Page 11: Taming 3rd party content

Widgets: how bad?

• Varies dramatically

• Less reliable then ad networks

Page 12: Taming 3rd party content

Widgets: Solutions!

• Find more static (or flash) version

• Rewrite using their AJAX API

• Use any API and assemble on back end, cache

Page 13: Taming 3rd party content

Trackers

• Show what's going on

• Need lots of user data

• Delay load event (a little)

Page 14: Taming 3rd party content

Trackers: what to do?

• Not so bad. Not much you can do either.

• Use async version if exists (Google Analytics)

Page 15: Taming 3rd party content

When YOUdevelop widgets!

• Don't use document.write!

• HTML placeholder, async code & data

• Cache JS code (in the browser)

• Cache all or part of the data (know your TTLS)

• Provide static alternative to SLO-JS (image / HTML to download / flash)