AMP

AMP Projesi Yol Haritası

The ongoing development of AMP is conducted in working groups, each with knowledge or interest in a specific area of AMP.

To make their work visible to the community all groups provide regular status updates with details of what they have accomplished and what's up next.

All of the updates listed here are available as issues on GitHub and we'd love you to join the conversation there!

Select working groups

Stories

Status Update Mon Aug 02 2021

What was accomplished

Story performance

  • 🚀 Make inactive pages not trigger LCP #35323
  • 🚀 Disable animations in first page under experiment #35356
  • 📖 Not turn off experiment on example story on visibility if hashString is not present #35417

Story interactive

  • Add support for emojis on the slider #35113
  • 🖍 Color Logic for A/B/C/D Bubbles for Image Quizzes #35174
  • 🐛 Post-Selection Fill Bug Fix for Image Quizzes and Polls #35274
  • 🐛 Fix Post-Selection Animation Inaccuracies for Image Quizzes #35292
  • ✨ Activate interactive disclaimer and add documentation #35293
  • 🖍 Text Shadow for Percentage Text for Image Quizzes and Polls #35324
  • Disable overlay on slider when dragging on mobile #35358
  • ✅ Add Image Quizzes and Polls with Invalid Endpoints to Examples #35359
  • ✨ Scaffolding for New Results Component #35400
  • 🖍 Styling for Image Quizzes and Polls with Missing Images #35420
  • 🖍 Adapt slider styles to work on Firefox #35432
  • RTL support #35340

Amp story player

  • Experiment setup #34953
  • ✨ Hide buttons if full-bleed story. #35397
  • amp-story-desktop-one-panel player swipe-ability desktop UX #35268
All details on GitHub

Video

  • Track video-cache experiment through CSI. #35242
  • Unify CacheState tracking for both legacy and remote video caching systems. #35252
  • Prerender and preload remote video cache. #35272
  • Only serve evergreen non cached video sources to crawlers. #35357
  • Experiment to limit max video bitrate on first page of a story. #35389

Others

  • Cannot use SVGs with <feBlend> in stories #35430
  • Improve screen orientation locking for stories #35478
  • amp-story-desktop-one-panelbackground-blur Include videos in selector #35131

What's next

  • Documentation / validation and launch of new interactive components (image quiz & polls / slider)
  • Desktop one panel launch
  • Video improvements
  • iOS15 bug fixes
All details on GitHub

Performance

Status Update Mon Aug 02 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Mon Aug 02 2021

General updates 🆕

  • Welcome to the team @kvchari 🎉 🎉 🎉

What was accomplished 🍱

  • amp-audio implementation has begun
  • amp-brightcove port complete
  • amp-copy implementation has begun
  • amp-dailymotion port in progress (Preact layer done)
  • amp-iframe investigation against native iframe - findings
  • amp-lightbox-gallery port complete, barring gestures feature
  • amp-sidebar port complete, also barring gestures feature
  • amp-render launch follow-up bug fixes
  • amp-twitter placeholder bug fix
All details on GitHub

What's next ⏩

  • amp-analytics early investigations and design
  • amp-audio continued progress
  • amp-copy discussion at design review
  • amp-dailymotion port in progress (AMP layer)
  • amp-iframe continued progress
  • Investigate existing gestures library and solutions going forward in Bento
All details on GitHub

User Interface & Accessibility

Status Update Wed Jul 07 2021

What was accomplished

  • amp-render is code-complete. 🎉
  • amp-tiktok is code-complete. 🎉
  • Finishing up session support on amp-analytics.
  • Finishing up multiple element selection for video events on amp-analytics.
  • Bugfixes on amp-next-page and amp-analytics
  • Support new Set(iterable) on IE
  • Fixed html-template lint rule for invalid multiline self-closing tags, and auto-fix related SVG tags.

Lessons learned

All details on GitHub

What's next

  • Port amp-iframe to Bento.
  • amp-carousel issue on iOS 15.
  • amp-dailymotion to Bento.
  • Land Auto-Envelope to run components without v0.js
  • Generically propagating browser events as analytics events
All details on GitHub

Stories

Status Update Wed Jul 07 2021

What was accomplished

Story interactive

  • ✨ Basic Layout for Image Quizzes and Image Polls #35043
  • ✨ [Story interactive] Basic slider component #35041

Story a11y

  • 🐛 Reduced motion should apply the animation's last frame to the elements #34466
All details on GitHub

Story desktop one panel

  • amp-story-desktop-one-panel blurred background #34764
  • amp-story-desktop-one-panel confirm display of amp-story-auto-ads. #34785
  • ✨ amp-story-desktop-one-panel Background color #34939
  • amp-story-desktop-one-panel blurred background, get largest page image #34959
  • amp-story-desktop-one-panel blurred background, method to create and attach canvas #34962
  • amp-story-desktop-one-panel blurred background, update canvas method #34967

Others

  • 🏗 Allow story examples to be excluded from amp validation #35026
  • Video caching: rewrite /i/ URLs to /mbv/. #35072
  • Move building outlink attachment to layoutcallback. #34924

What's next

  • Destkop panels player #34765
  • Launch desktop one panel and blur
  • Image quiz interactive component styling and backend integration
  • slider interactive component styling and backend integration
All details on GitHub

Performance

Status Update Wed Jul 07 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Wed Jul 07 2021

What was accomplished

  • auto envelope changes to use restrictive methods
  • IE polyfill for new Set
  • amp-lightbox-gallery basic, grouping, captioning, and uniqueness features
  • forceChangeHeight -> attemptChangeHeight in Bento components for the AMP layer
  • started on amp-iframe
  • amp-render final launch bits, including resizeToContents, validations, and blog
  • amp-tiktok is merged
  • getting Bento compiler thread safe
  • Remove amp-viz-vega
  • Consolidating amp-facebook discussed at design review + implementation
  • overflow support in PreactBaseElement
All details on GitHub

What's next

  • taking over GA4
  • land auto-envelope, going to split work to restrictive access of this methods
  • amp-lightbox-gallery video support, analytics events, and validations
  • AMP 0.1 component changes over the next few weeks to extract from their buildCallbacks - separating pieces that modify DOM, including amp-fit-text
  • amp-dailymotion implementation
All details on GitHub

User Interface & Accessibility

Status Update Thu Jul 01 2021

What was accomplished

  • Progress on propagating browser events to Analytics.
  • Bento amp-iframe ongoing (base PR, placeholder behavior)
  • Fixed skipped tests in amp-titkok
  • Verified iOS scroll snap bug on amp-carousel
  • Fixed Storybook issue with ~ in output filenames
  • Fixed broken z-index formatting, and generating it

Lessons learned

Some WebKit changes are upstreamed only on browser betas, and some of the introduced bugs appear on iOS only. It's important to run manual testing passes on iOS betas before release.

All details on GitHub

What's next

(@dmanek OOO this week) (@alanorozco is Build Cop)

  • Bento amp-iframe: resizing at runtime and consent data
  • Bento amp-dailymotion
  • Land propagating browser events
  • GA4
All details on GitHub

Stories

Status Update Thu Jul 01 2021

What was accomplished

Story interactive

  • ✨ Make disclaimer work RTL #35164
  • 🖍 Post-Selection Animations for Image Quizzes and Image Polls #35205
  • 🐛 Deattach disclaimer from interactive component #35253
  • ✨ Interactivity for Image Quizzes and Image Polls #35125
  • Make slider component interactable #35167

amp-story-page-attachment

  • Link text placed at extreme left or right does not behave as clickable inside of page #34949
  • 🐛 Move overlay logic from story to page. #35036
  • Prevent double navigation from page-outlink. #35187

Story performance

  • 🚀 Experiment to load first page assets before loading other pages to improve LCP #34846
  • 🚀 Launch first page load experiment to 10% #35192
  • Use remote video cache over AMP Cache video cache. #35194
All details on GitHub

Story animation

  • 🐛 Fix error thrown when user pauses before animation runs. #35161

One panel layout

  • ✨ Ensure img is loaded, no animation on landing #35132
  • ✨ Pre draw image to fade in #35175

What's next

  • Launch experiments to improve LCP on stories
  • Deploy the 1 panel desktop layout
  • Work on interactive sliders and image quizzes / polls
All details on GitHub

Monetization

Status Update Thu Jul 01 2021

What was accomplished

Amp monetization - Web interstitial ads planning. Working with Google AdSense & GAM team to clarify the technical boundary between AMP and vendors, finalize the interface. - Web interstitial ads prototype works. Design review next week. - Fix the old style sticky ad deprecation notice

Story ads - Discussion around story ads strategy for emerging markets - Started shared experiment with viewer for auto-advancing ads & pages - Fixed bug to send correct size for desktop support - Fixed flaky experiment tests

All details on GitHub

What's next

Amp monetization - Web interstitial ads - Experiment rendering amp-sticky-ad with amp-ad

Story ads - Launch auto-advancing ads

All details on GitHub

Performance

Status Update Thu Jul 01 2021

What was accomplished

Lessons Learned

All details on GitHub

User Interface & Accessibility

Status Update Mon Jun 07 2021

What was accomplished

  • Session Analytics PRs out for SessionId, CreationTimestamp, and SessionCount (https://github.com/ampproject/amphtml/issues/33990)
  • AMP form rollback, adding missing support for validation on change (https://github.com/ampproject/amphtml/pull/34849)
  • amp-render binding API change
  • amp-render validation changes
  • launched amp-tiktok
  • amp-dailymotion bento version PRs

Lessons learned

All details on GitHub

What's next

  • Session Analytics: LastEventTimestamp and Engaged
  • New AMP component for quicklinks, design
  • amp-iframe bug
  • amp-render finish misc PRs
  • amp-dailymotion continue work

All details on GitHub

Stories

Status Update Mon Jun 07 2021

Story player

  • ✅ Fix animation unit test flakiness #34382

Amp story

  • 🐛 ✅ Get reference to win #34299

Auto advance

  • Minimum duration for auto-advance-after. #34592
  • Time based auto advancement broken on beta. #34597
All details on GitHub

Performance

  • Track flexible-bitrate experiment through CSI pipeline. #34548
  • Launch flexible-bitrate experiment to 10%. #34549
  • Don't block Story render on a fallback media load. #34583
  • 🚮 Remove bookend extended code #34343
  • 🚮 Disabled bookend and related tests #34354

  • Welcome to our interns Brandon and Sydney!

Up next

  • One panel desktop
  • Launch amp-story-page-attachment-ui-v2 at 100%
  • New interactive components
All details on GitHub

Monetization

Status Update Mon Jun 07 2021

What was accomplished

Amp monetization - Top sticky ad implementation merged - Top sticky ad profiling - Web interstitial ads prototype started - INI InOb turned off on inabox to alleviate performance issues - Fixed <gwd-animation> bug in no-sigining - Support for new conversion tracking API in amp-ad-exit

Story ads - New yellow progress bar variant implementation

All details on GitHub

What's next

Amp monetization

Story ads - Start yellow progress experiment - New CTA design - Viewer experiment coordination design and review

All details on GitHub

Performance

Status Update Mon Jun 07 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Mon Jun 07 2021

What was accomplished

General - Improving performance of ...rest object spread operator: - Share objectWithoutProperties helper across modules (size reduction, ampproject/amphtml#34601) - Hoist omitted keys (runtime performance, babel/babel#13384) - Bento onboarding doc is a central location for Bento-related resources - npm automated publishing is live now

Components - amp-dailymotion implementation has begun - Facebook and amp-facebook now code complete - amp-render last mile bits: - binding support - documentation - remaining TODOs and bug fixes - Unit tests for LightboxGallery, Facebook, amp-fit-text - Toolbar addition to Sidebar merged

All details on GitHub

What's next

General - Auto envelope (so Bento components will be usable without v0 on the page!) - 3p Iframe Bento Contribution Guide - src/core migration continues, we may be able to start type checking Bento components this sprint

Components - continued work on amp-dailymotion - VideoProxyIframe for amp-ima-video implementation - amp-facebook-page and amp-facebook-like - LightboxGallery UI features

All details on GitHub

User Interface & Accessibility

Status Update Wed Jun 02 2021

What was accomplished

  • Finished final details for amp-tiktok
  • Continued work on bento amp-dailymotion
  • Landed SessionId for amp-analytics (https://github.com/ampproject/amphtml/pull/34521)
  • PRs out for Session Analytics: Last Event Timestamp (https://github.com/ampproject/amphtml/pull/34816) and Session Count (https://github.com/ampproject/amphtml/pull/34850)
  • Opt-in Same Domain Matching for Linker (https://github.com/ampproject/amphtml/pull/34821)
  • amp-ima-video bugfix for livestream controls (https://github.com/ampproject/amphtml/pull/34865)
  • PR for Multi-Video Selector for amp-analytics in progress (https://github.com/ampproject/amphtml/pull/34841)

Lessons learned

All details on GitHub

What's next

  • Land the rest of Session Analytics + engaged macro
  • Design Review for GeoHash Experiment
  • Land Auto-Envelope
  • Land Bento dailymotion
  • Design for Custom Browser Events for amp-analytics
  • Launch amp-render
All details on GitHub

Stories

Status Update Wed Jun 02 2021

What was accomplished

Amp story player

  • Add more unit/integration tests #31276
  • ✨ Add parameter to configure amp-story-player animation #34204

Desktop one panel

  • ✨ Scaffold desktop one panel experiment #34755
  • ✨ Experiment on method #34738
  • Don't trigger viewport warnings when amp-story-desktop-one-panelis active #34760
  • amp-story-desktop-one-panel Responsive story panel #34761
  • amp-story-desktop-one-panel pagination arrows #34762
  • amp-story-desktop-one-panel Page tap targets #34815
  • amp-story-desktop-one-panel System layer positioning #34823
  • amp-story-desktop-one-panel Revise breakpoint to mobile view #34829
  • amp-story-desktop-one-panel resolve non-active page position on load #34830
  • amp-story-desktop-one-panel Confirm calculation of --story-page- CSS variables #34833
  • amp-story-desktop-one-panel Update demo with usecases #34867
  • ✅ amp-story-desktop-one-panel Rename visual test and new test for small square screen #34906

Page attachments

  • Update visual tests for new UI #33184
  • Launch amp-story-page-attachment-ui-v2 at 100% #34714
  • page-attachment and page-outlink docs (in reivew) #34883
All details on GitHub

Story interactive

  • 📖 Remove link in interactives.html #34756

Story video

  • Video cache for amp-video[src] #34570
  • Lazy load amp-cache-url and make it optional. #34588

What's next

  • Page experience optimization
  • page-outlink and page-attachment launch
  • Video cache optimization
  • Shopping experience ideation
  • Load first page only experiment
All details on GitHub

Performance

Status Update Wed Jun 02 2021

What was accomplished

Lessons Learned

All details on GitHub

User Interface & Accessibility

Status Update Sun May 02 2021

What was accomplished

  • Session Analytics Privacy Review go ahead, sessionId macro support started
  • Continue looking into SSR amp-consent inline consent dialogs
  • amp-render placeholder, fallback, loader, and binding attribute support, and documentation
  • amp-tiktok placeholder, loader, and validation

Lessons learned

All details on GitHub

What's next

  • Bento dailymotion component
  • Supplementary session data support
  • amp-render look into layout container support + miscellaneous tasks
  • amp-next-page issues
  • Look into amp-consent reported issue
All details on GitHub

Stories

Status Update Sun May 02 2021

What was accomplished

Page attachments - open-attachment animation does not cover top of screen on iOS #34470

Story video - ✅ Add e2e tests for Bitrate Manager #33660

Story bookend - 🚮 Remove bookend extended code #34343 - 🚮 Disabled bookend and related tests #34354

Story devtools - 🐛 Toggle devtools on mjs build #34372

Story player - Launched https://go.amp.dev/web-story-player - ✅ Fix animation unit test flakiness #34382

Amp story - 🐛 ✅ Get reference to win #34299

Others - ✨ Add parameter to configure amp-story-player animation #34204

All details on GitHub

What's next

  • Launch adaptive bitrate experiment
  • Remove 3 panels desktop experience
  • Finish CTA redesign
  • Document amp-story-bookend removal and new amp-story-social-share component
All details on GitHub

Monetization

Status Update Sun May 02 2021

What was accomplished

Amp monetization - Top sticky ad to not adjust padding-top - In amp-auto-ads, inserting ads above is mostly unseen but causes CLS - 3p vendor splitting ramping up to 50% - Investigated a regression w/ infra

Story ads

All details on GitHub

What's next

Amp monetization - AMP domain migration - between-navigation ads design - amp-img to img migration

Story ads

All details on GitHub

Performance

Status Update Sun May 02 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Sun May 02 2021

What was accomplished

  • amp-facebook consolidating internal implementations and testing in progress
  • amp-render
  • fallback Support
  • placeholder Support
  • validation
  • amp-sidebar
  • preact SSR implementation of Toolbar
  • NPM Publishing
  • Initial conversations with Dev Rel for NPM Readme creation
  • 13 components completed conversion required for publishing (latest was amp-base-carousel)
All details on GitHub

What's next

  • amp-render
  • loading indicator
  • support for binding
  • amp-sidebar
  • amp SSR implementation of Toolbar
  • NPM Publishing
  • Convert two remaining components from Dev Preview
  • Updates needed to package file and generation scripts
All details on GitHub

User Interface & Accessibility

Status Update Sat May 01 2021

What was accomplished

  • Supporting text fragment highlight within the Viewer
  • amp-render URL variable substitution support
  • amp-analytics Session Analytics design review
  • Remove amp-consent consent storage limit on the Viewer

Lessons learned

All details on GitHub

What's next

  • Session Analytics design review Privacy review for supplementary data
  • amp-analytics SESSION_ID low entropy support
  • amp-consent reducing LCP for inline consent prompts
  • amp-render fallback/placeholder support + miscellaneous fixes
  • amp-next-page bugfixes
All details on GitHub

Stories

Status Update Sat May 01 2021

What's next

  • Amp story player animation configuration
  • Testing for new page attachment UI
  • Experiment cleanup for new page attachment UI
  • Video flexible bitrate experiment
  • Desktop refactor I2I
All details on GitHub

Performance

Status Update Sat May 01 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Sat May 01 2021

What was accomplished

  • Guide to building a Bento video player
  • Support amp make-extension flag --nojss
  • amp-video-iframe merged with validation
  • amp-vimeo merged with validation
  • amp-ima-video port in progress
  • Requires restructuring ProxyIframeEmbed for combined use with VideoBaseElement
  • Changes to iframe loaded by both versoins: structured children and uniform method names
  • OWNERS change and test cleanup
  • amp-ima-video user experience improvements
  • Investigate introducing sandbox attribute to amp-facebook-* components
  • Preact Twitter component and Storybooks merged
  • npm publishing
  • 10 components on npm i.e. amp-fit-text
  • 4 additional components require file structure conversion to publish
  • amp-sidebar toolbar Preact implementation merged
  • (Invalid AMP): Support for img in components that integrate with amp-img in progress
All details on GitHub

What's next

  • Continue in-progress tasks:
  • amp-ima-video
  • amp-sidebar toolbar
  • img support
  • npm publication
  • Bento video players to pass consent with the consent Service in AMP layer
  • Bento port of amp-brightcove
  • Investigate safely removing examples/ which are exhaustively covered via Storybook samples
  • Bento port of other amp-facebook components
  • amp-render support for placeholder
All details on GitHub

User Interface & Accessibility

Status Update Fri Apr 02 2021

What was accomplished

  • amp-next-page bugfix where children shadow docs were not utilizing Viewer CID like the hostpage was
  • GA4 meeting, creating design doc on Session Analytics in amp-analytics
  • Discussing with Viewer team existing localStorage size limitations to allow larger consent information entries to be stored
  • amp-render: XSSI prefix support and refresh functionality
  • amp-next-page bugfix for replacing history incorrectly when served in Viewer
  • amp-tiktok: Validator support, loader support, and fallback support

Lessons learned

All details on GitHub

What's next

  • Session Analytics Design Review
  • Intern planning
  • amp-render url replacement support
  • amp-render placeholder and fallback support
  • more amp-next-page P1s
  • amp-img deprecation
  • SESSION_ID in amp-analytics
All details on GitHub

Stories

Status Update Fri Apr 02 2021

What was accomplished

Page attachments - Theme attribute #32716 - Theme attribute for pre-tap #32767 - Remove background linear gradient #33767 - Add closable affordance for screen readers #33820 - Background contrast protection for text #33913 - 🐛 Use linker on swipe up #33911 - 🐛 Navigate with click on swipeup remote #33656

Story video - Looping videos could get downgraded due to nontrivialWait #33169 - ✨ Connect CacheUrl service to amp-video and load sources #33466 - ✨ Google cache validation #33611 - 🏗 Add testing tools to video story for e2e and manual testing #33857

Story a11y - ♿ Make amp-twitter not tabbable if not on current page #33919

Story autoanalytics - 🐛 Use pageview to trigger story_page_count #33797

All details on GitHub

What's next

  • Finish page attachments redesign
  • Finish video cache
  • Start rolling experiments on flexible bitrate
  • Improve experiment rollouts
All details on GitHub

Monetization

Status Update Fri Apr 02 2021

What was accomplished

Amp monetization - 3p vendor splitting ramped up to 10% of prod - Top sticky ad implementation done - Merged a preliminary fix resolving a CLS issue on amp-auto-ads, with more investigation to go - Launching a holdback experiment to test the revenue impact of the amp-auto-ads CLS fix - Fixed broken A4A envelop on the dev server because of a missing CORS header - Project planning meeting for Web interstitials. Design draft reviewed with AdSense and Arrow team. - Launched no signing

Story ads - Auto advanced ads experiment - Video serving enhancement planning - Added a new branch to placement experiment (10 density) - New ad badge - Fixed bug where ad pages were being counted as organic pages in auto-analytics

All details on GitHub

What's next

Amp monetization - Web interstitials design - Top sticky ad - amp-auto-ads CLS further investigation

Story ads - Auto advanced ads - Video serving follow up - Review ad placement experiment results

All details on GitHub

Performance

Status Update Fri Apr 02 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Fri Apr 02 2021

What was accomplished

  • amp-facebook-comments initial implementation
  • amp-render
  • xssi-prefix and subobject support
  • URL replacement substitutions in review
  • amp-sidebar toolbar feature discussed in design review
  • amp-video-iframe implementation in review
  • amp-vimeo implementation
  • Validation contributions for developer preview components
  • Removed concept of a "lite" viewer
  • Extension generator implementation is now shared for Bento and Classic.
  • Chore: Deprecating Storybook use of withAlly and replaced with updated config
  • Chore: Updated some OWNERS files to belong to Bento/Components
All details on GitHub

What's next

  • amp-facebook-* follow-up tasks and components:
  • Try including sandbox (previously excluded for these only)
  • Branch component embeds by enum rather than custom element tag name
  • amp-render
  • placeholder and fallback support
  • layout=container
  • amp-sidebar
  • investigate CLS
  • execute on toolbar feature with design review learnings
  • manually publishing Bento components to npm
  • Deep dive for handling 3rd party issues and contributions
  • Design Review for compiling mustache into JSX
  • Reworking autoplay detection.
  • Next Bento video player, likely amp-brightcove or amp-dailymotion
All details on GitHub

User Interface & Accessibility

Status Update Thu Apr 01 2021

What was accomplished

  • amp-tiktok merged
  • Working on amp-img validation for standalone images
  • Work started for SESSION_ID macro in amp-analytics
  • Work on amp-render (amp-script support, fallback/placeholder)
  • amp-next-page triggering scroll events early bug fixed
  • amp-carousel indexing and shakey slides bugs fixed

Lessons learned

All details on GitHub

What's next

  • Design for GA4 MVP support
  • amp-next-page CLIENT_ID bug
  • Implement session_id macro
  • Finish TikTok tests
  • Continue amp-render work
All details on GitHub

Stories

Status Update Thu Apr 01 2021

What was accomplished

Story responsiveness - Set overflow to visible on preset layers #32678

Deprecating sidebar and bookend - 🚮 Added warning to deprecate amp-sidebar in stories #33328 - ✨ Created amp-story-social-share #33077

Story video - Don't call load() if sortSources was a noop #32731

Story player - Publisher identity #33353 - Add publisher identity in the system layer #33355

Page attachments - Open to max of 80% of screen #32760 - .5 overlay behind attachment #32761

Panning media - Desktop panels, transition only active page #32215 - handle zoom value being 0 #33071 - 📖 Draft docs for developer preview #33386

Others - Write documentation for amp-story-auto-analytics #33407 - ✨ Changing Outlink Page Attachment Button UI #33667 - 📖🐛 Fix typo in 360 docs #33380

All details on GitHub

What's next

  • Release Google Video Cache opt-in and rollout flexible-bitrate algorithm under experiment
  • Develop outlink v2 with themes and color customization
  • Launch story attribution in players
All details on GitHub

Performance

Status Update Thu Apr 01 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Thu Apr 01 2021

What was accomplished 🍱 ✅

  • amp-render bindable src PR merged
  • Collaboration with caching team on validator changes for developer preview components (still under experiment)
  • Storybook upgraded to version 6
  • Display locking removed from amp-accordion due to chrome team change in API
  • Early Bento feedback(technical/ product) here
  • Bento Compiler in security and privacy review
  • Presented on Shadow DOM on Deep Dive 4/6 - slides, video
All details on GitHub

What's next ⏩

  • Continue Validator work on all developer preview components (still under experiment)
  • amp-render support for object and amp-render
  • amp-sidebar toolbar feature in AMP mode
  • amp-twitter ongoing work
  • amp-next-page initial assessment
All details on GitHub

Performance

Status Update Tue Mar 02 2021

What was accomplished

  • fixed the new ts server not respecting the host and font when transforming the documents https://github.com/ampproject/amphtml/pull/33425
  • ongoing work to support avif

Lessons Learned

All details on GitHub

What's Next

  • additional font testing exploration focused on sub font and fallback font
All details on GitHub

Bento

Status Update Tue Mar 02 2021

What was accomplished 🍱 ✅

  • Automated design review issue creation
  • Started validating developer preview components (still under experiment)
  • Wrapped up CLS investigations on carousel components
  • Introduced scheduling for Bento components, i.e. lightbox and sidebar
  • Merged Sidebar Toolbar feature in Preact mode
  • Now generating npm binaries during build/dist for npm publishing
  • amp-render initial implementation with support for remote, bindable src and amp-state protocol
  • Prototype for amp-twitter
All details on GitHub

What's next ⏩

  • Working with infra 👋 🏗️ to release npm binaries
  • Validate all developer preview components (still under experiment)
  • amp-sidebar toolbar feature in AMP mode
  • amp-render support for amp-script protocol and placeholder
  • amp-twitter ongoing work
  • Tune in for shadow DOM demo in next week's deep dive
All details on GitHub

User Interface & Accessibility

Status Update Mon Mar 01 2021

What was accomplished

  • amp-tiktok PR out for review
  • amp-render continued work
  • amp-next-page scrollTo bug fix
  • Discussions around support us_privacy parameter in a4a
  • Partial Launch of TCF PostMessage API
  • Granular Consent developer documentation
  • Supporting form attribute for <input>s outside of amp-form

Lessons learned

All details on GitHub

What's next

  • Submit amp-tiktok
  • Finish amp-render
  • amp-next-page replace history bug
  • session_id macro in amp-analytics
  • Splitting linker/cookie writer module from amp-analytics & amp-consent design
All details on GitHub

User Interface & Accessibility

Status Update Mon Mar 01 2021

What was accomplished

  • Perf
  • Fix it week, focus on code health & test coverage (12 issues closed, 7 more in progress)
  • amp-consent TCF PostMessage Proxy API out, gathering feedback
  • addtl_consent added to doubleclick and adsense request urls
  • Text Fragment highlighting, exploring server side transformation

Lessons learned

All details on GitHub

What's next

  • amp-consent granular consent launch
  • session_id MACRO in amp-analytics
  • amp-tiktok implementation
  • amp-render implementation
All details on GitHub

Stories

Status Update Mon Mar 01 2021

What was accomplished

Story interactives - 🐛 Fixed text align of buttons #33217

Page attachments - Attachments do not open when clicked using TalkBack #33186 - Launching the CTA update with images in an experiment #33142 - Click listener on shadow root container #33187

Story video - 🐛 Fix video downgrading on load #33170

Story a11y - ♿ Improve screen reader output for interactive components #32969

Story player - ♿ Add label for next story and add i18n for pagination buttons #33205 - 📖 Rename skip-next control to skip-to-next #33164

All details on GitHub

What's next

  • CTA improvements
  • Panning media lock bounds
  • Monti support
  • Deprecate the bookend and sidebar
All details on GitHub

Monetization

Status Update Mon Mar 01 2021

What was accomplished

AMP Monetization - Passed version info from ads to FIE - Launched no-signing - Improved vendor JS building performance using esbuild, restarted building them in tests and in the release process

Story Ads - Introduced swipe tracking trigger - Fixed bug where mediapool was not recognizing ad page distance - Introduced new StoryAdPagemanager class as part of placement algorithm refactor

All details on GitHub

What is next

AMP Monetization - Launch vendor splitting experiment!

Story ads - Implement existing algorithm as new StoryAdPlacementAlgorithm subclass - Implement new placement algorithm

All details on GitHub

Monetization

Status Update Mon Mar 01 2021

What was accomplished

Fix it week - Fixed/closed 7 issues. 2 more in progress - (Code complete, pending security review) change 3p iframe to use deterministic domain for frame.html - AMPHTML-AD Visual diff test reenabled https://github.com/ampproject/amphtml/issues/31199 - Allow AMP polyfills in no-signing - Make test-amp-a4a.js not as flaky - Move Story Ads CTA to shadow DOM - Update Adsense docs for story ads

AMP Monetization

Story Ads

All details on GitHub

What is next

AMP Monetization - 3p frame splitting PR reverted for affecting CI performance, will start the experiment once fixed - Launch no signing !

Story ads - Meeting to discuss new placement tradeoffs. - Encapsulation of placement algorithm. - Implement swipe tracking

All details on GitHub

Performance

Status Update Mon Mar 01 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Mon Mar 01 2021

What was accomplished 🍱 ✅

  • amp-fit-text server-side experiment to measure performance with v0
  • amp-render base implementation
  • amp-sidebar toolbar design
  • Investigating CLS in amp-carousel, amp-base-carousel, and related

Lessons learned 👩‍🎓

All details on GitHub

What's next ⏩

  • Bento npm publishing
  • amp-render
    • loading from amp-script
    • placeholder support
  • Fixing some carousel CLS issues
  • First look at amp-twitter
  • Video docking active development
All details on GitHub

Bento

Status Update Mon Mar 01 2021

What was accomplished ✅

Fix it week 🔨

  • amp-youtube supports currentTime and duration in imperative API https://github.com/ampproject/amphtml/pull/32804
  • amp-selector has stylistic support for hybrid disabled + selected state https://github.com/ampproject/amphtml/pull/32825
  • amp-accordion 0.1 and 1.0 respect pre-existing role attributes https://github.com/ampproject/amphtml/pull/32915
  • amp-timeago 0.1 and 1.0 migrated to latest timeago.js library (from third_party/ to node_modules) and now have support for 7 more languages
  • e2e tests for amp-sidebar https://github.com/ampproject/amphtml/pull/32837, amp-social-share https://github.com/ampproject/amphtml/pull/32881, and amp-accordion https://github.com/ampproject/amphtml/pull/32958
  • Documented media-based attributes and enabled on amp-fit-text https://github.com/ampproject/amphtml/pull/32824
  • BaseElement['props'] refactor to simplify children configurations https://github.com/ampproject/amphtml/pull/32936
  • objstr:
    • used in more components https://github.com/ampproject/amphtml/pull/32893
    • compiles down https://github.com/ampproject/amphtml/pull/32872
  • JSS:
    • transform compiled output to export const className for filesize https://github.com/ampproject/amphtml/pull/32888
    • collect z-index https://github.com/ampproject/amphtml/pull/32847
  • Shadow DOM polyfill https://github.com/ampproject/amphtml/pull/32820

General 🍱

  • LightboxGallery Preact implementation
  • component file restructuring for npm packaging
  • NPM binary generation with ES build
  • design review for deferred build and async pause systems
  • Use gulp get-zindex [--fix] to make sure css/Z_INDEX.md is up to date
All details on GitHub

Lessons learned 👩‍🎓

What's next ⏩

  • amp-lightbox-gallery AMP layer
  • amp-sidebar active development
  • video docking active development
  • Analysis of amp-fit-text 0.1 -> 1.0 auto upgrade performance implications
All details on GitHub

User Interface & Accessibility

Status Update Mon Feb 01 2021

What was accomplished

  • amp-next-page handling multiple consents submitted
  • amp-render design review
  • amp-tiktok work
  • amp-fit-text deflaking e2e test
  • amp-consent TCF 2.0 PostMessage API & Granular Consent PRs

Lessons learned

All details on GitHub

What's next

  • amp-render implementation
  • amp-next-page reader ID issue
  • amp-tiktok
  • amp-fit-text CSS issue
  • amp-consent TCF 2.0 PostMessage API & Granular Consent
  • Split Linker/Cookie Writer design
  • Use addtl_consent in a4a url requests
All details on GitHub

User Interface & Accessibility

Status Update Mon Feb 01 2021

What was accomplished

  • PR to handle amp-consent within amp-next-page
  • amp-render design
  • amp-tiktok design review
  • amp-fit-text adding better testing
  • CID syncing in amp-consent via CookieWriter
  • amp-consent TCF PostMessage API legal approval

Lessons learned

All details on GitHub

What's next

  • GA4 Planning
  • Granular Consent
  • amp-tiktok
  • Text fragment highlighting support
  • amp-render
All details on GitHub

Stories

Status Update Mon Feb 01 2021

What was accomplished

Story autoanalytics - Added repeat: false on story-page-visible #32296

Story devtools - Rename logs and move Page Experience #32451

Story responsiveness - Added documentation to presets on amp.dev #32311

Story video - Add cached sources with different qualities to amp-video #32337

Panning media - Respect prefers-reduced-motion #32282 - Add early exit on animation loop #32320

Story Player - Load player iframes sequentially when starting from other than first story #31212 - Improvements on documentation

All details on GitHub

What's next

  • Release documentation on Player
  • More improvements on video performance
  • Desktop experience update (Removing 3 panel UI)
  • Work on panning-media component
  • Work on primary CTA experience
All details on GitHub

Stories

Status Update Mon Feb 01 2021

What was accomplished

  • Player:
  • [amp-story-player] Player refactoring ♻️ #32115
  • [amp-story-player] Introduce render() method ♻️ #32153

  • Auto analytics:

  • [Story auto-analytics] Added validation and tests #32288
  • [Story auto-analytics] Initialize extension #32241
  • amp-analytics linkers config not working on all web stories links #32060

  • Panning media:

  • [Panning media] Transition sibling group #31932
  • [Panning media] Accelerate transitions using translate3d #32254
  • [Panning media] Position / scale element #31503
  • [Panning media] Transition between pages #31504
  • [Panning media] Animate with JS #32098

  • Story dev tools (in browser debugging tool):

  • [Story devtools] Stories don't load on preview tab if starting on other tabs #32124
  • [Story devtools] Finalize UI details: dark scrollbar, center devices, change tab order #32126
  • [Story devtools] Device details #32074
  • [Story devtools] Added logs status icon on tab selector #31709

  • Story page layer:

  • [Story page-layer] Internal support for scaling-factor on grid-layer #31282

  • Other:

  • [amp-story] 🐛 Add role=button back to components that need it #32283
  • [amp-story] 🐛 Hiding story education layer when viewport warning layer is visible #32230
All details on GitHub

What's next

  • Player simplification / performance refactor
  • Panning media locked bounds attributes #31522 #31505
  • CTA UX / UI updates
All details on GitHub

Monetization

Status Update Mon Feb 01 2021

What was accomplished

AMP Monetization - AMP now builds separate 3p iframe integration.js, and refactors done to allow dynamically choosing JS for 3p iframe - AMP-AD CSS experiment turned on (blocking top banner sticky ad) - Ran a CWV experiment that turns off ads render-on-idle . Result it very noisy. Didn’t get enough data points from canary traffic. - Launched eager building of fie/inabox amp elements - Allow ad networks to opt out of client side validation in no-signing

Story Ads - Exploration of new story ads algorithm impact

All details on GitHub

What is next

AMP Monetization - Turn on amp-ad 3p vendor splitting for more vendors - Launch no signing

Story ads - Encapsulate logic for placement algorithm - Start new algorithm implementation

All details on GitHub

Performance

Status Update Mon Feb 01 2021

What was accomplished

Lessons Learned

All details on GitHub

Performance

Status Update Mon Feb 01 2021

What was accomplished

Lessons Learned

All details on GitHub

Bento

Status Update Mon Feb 01 2021

What was accomplished

  • npm packaging in progress
  • Video docking in progress
  • Contributing to obj-str Babel transformations for an improved classname construction
  • Sidebar animations completed
  • Started the load experiment for Bento components in AMP using amp-fit-text
  • Progress on component isolation: measurements, pause/resume and deferred build. Presenting at tomorrow's design review.
  • aspect-ratio rollout is continuing
  • Started the project to refactor log writers.
  • Started work on lightbox gallery

Lessons learned

  • We've been rendering and testing visual diffs on different browser versions, which explains some flakes.
All details on GitHub

What's next

  • Fixit week
  • Working on the next set of Bento component priorities.
  • Continued progress on video docking, sidebar, and lightbox gallery.
  • Continued progress on component isolation
All details on GitHub

Bento

Status Update Mon Feb 01 2021

What was accomplished

  • 🎉 We launched our dev preview!
  • 🎯 amp-social-share:focus support through shadow DOM
  • ⬆️ amp-date-countdown countUp feature
  • 📦 Design doc for releasing Bento components on npm
  • ✅ e2e tests now support sharing fixtures across component versions
  • ⏰ Dispatch DOM events in Bento components
  • 📝 Document imperative API for Bento mode
  • 🛥️ Draft Preact docking implementation
  • 📸 aspect-ratio rollout
  • 🐛 Various bug fixes:
  • iOS web scrolling
  • non-zero line-height for [placeholder] elements
  • media attributes

Lessons learned

All details on GitHub

What's next

  • 📝 Documentation / Deep Dive for delegatesFocus
  • 📂 Demo changes in component file structure to prepare for releasing on npm
  • 🛥️ Continued progress with media docking
  • 💡 LightboxGallery design and implementation
  • 🔖 Sidebar continued progress
All details on GitHub

User Interface & Accessibility

Status Update Tue Jan 05 2021

What was accomplished

  • amp-consent CSS fix for docs served from viewer
  • amp-carousel cherry pick revert for CSS styling overriding publisher styling
  • amp-render discussions with DevRel & Bento team
  • block-rtc & always-serve-npa PR merged

Lessons learned

  • Careful with !important styling as pubs may want to use their own styling
All details on GitHub

What's next

  • Granular Consent design review
  • GA4 discussions
  • amp-render & amp-list continued design work
All details on GitHub

Monetization

Status Update Tue Jan 05 2021

What was accomplished

AMP Monetization - Fix partial elements in no signing - No signing speed optimizations - Caught an regression on Beta release channel that was caused by a recent change in RTC

Story Ads - Impression tracking change code complete - Adsense blog post

All details on GitHub

What is next

AMP Monetization - Port remaining features of amp-sticky-ad to amp-ad (start an experiment) - Implement top sticky ad - Investigate RTC regression

Story ads - Start impression change experiment

All details on GitHub

Performance

Status Update Tue Jan 05 2021

What was accomplished

  • IntersectionObserver:
  • IntersectionObserver polyfill {root:document} support launched: https://github.com/w3c/IntersectionObserver/pull/465
  • Integration updated to select best one on a per-instance basis: https://github.com/ampproject/amphtml/pull/31453
  • E2E tests for documentHeight-based viewers (gmail): https://github.com/ampproject/amphtml/pull/31526
  • Removed polyfills from esm web-worker, cutting -0.3kb: https://github.com/ampproject/amphtml/pull/31494
  • Removed some usages of measuring APIs (https://github.com/ampproject/amphtml/pull/31693, https://github.com/ampproject/amphtml/pull/31730, https://github.com/ampproject/amphtml/pull/31753)
  • Holidays! 🎁

Lessons Learned

  • Can make empty commits via: git commit --allow-empty -m "Trigger Build"
All details on GitHub

What's Next

  • Continue removing usages of measuring APIs
  • Resume compiler research
All details on GitHub

Bento

Status Update Tue Jan 05 2021

What was accomplished

  • Most folks OOO
  • Bug fixes from year end bug bash
  • Imperative API
  • Work started on amp-sidebar

Lessons learned

  • box-styles propagation through display: contents 1-pager
All details on GitHub

What's next

  • Preparing amp.dev with high level Bento information and usage guides
  • Developer preview of our first 16 components
  • amp-truncate-text
All details on GitHub

User Interface & Accessibility

Status Update Fri Jan 01 2021

What was accomplished

  • Working through amp-next-page viewer bugs
  • amp-render brainstorming and requirements--subset of amp-list
  • amp-fit-text ResizeObserver bugs fix and test
  • amp-carousel observe child elements bug fix
  • legal review for TCF PostMessage Proxy API

Lessons learned

All details on GitHub

What's next

  • New SESSION_ID macro
  • amp-form CORS error
  • GA4
  • amp-render design review
All details on GitHub

Stories

Status Update Fri Jan 01 2021

What was accomplished

  • Player:
  • Desktop navigation button should show "next" on the last page of a story #31224
  • Documentation revamp

  • diagnostic tooling (dev-tools):

  • Add success page for logs #31906

  • Interactives:

  • disclaimer on interactive components #31447

  • Other:

  • iOS 14.2 and 14.3 Unmuted navigation is bug fix (#31911)[https://github.com/ampproject/amphtml/issues/31911]
  • Page attachment UI to show URL #27941
  • Prerendered story branching URL bug fix #29351
All details on GitHub

What's next

  • Analytics component planning
  • Desktop panels experience
  • Player performance enhancement planning

cc @ampproject/wg-stories

All details on GitHub

Monetization

Status Update Fri Jan 01 2021

What was accomplished

AMP Monetization - Introduced CLIENT_ID macro for use in RTC requests - Launched separate resource manager for FIE ads to 100% (experiment results were positive) - Regression caught by RTC change was determined to be likely WAI. Another experiment started to validate the hypothesis. - AMP-AD CSS change experiment started - Investigated scroll reactive ad implementation and its performance limitation

Story Ads - Started design doc for ad placement - Impression counting change running at small percentage

All details on GitHub

What is next

AMP Monetization - Top banner sticky ad implementation - Animated sticky ad creative format - wg-monetization to take over amp-access

Story ads - Complete design doc for ad placement

All details on GitHub

Performance

Status Update Fri Jan 01 2021

What was accomplished

  • v0.js and extensions are now more resilient to double loading of the amp library (https://github.com/ampproject/amphtml/pull/31828)
  • fixed module build bug where AMP.require would sometimes not exist (caused by race condition https://github.com/ampproject/amphtml/pull/31988)
  • turned down module build to fix p0's
  • added bento component generator gulp make-component --bento --name=my-component

Lessons Learned

  • separate out test features in isolated PR as they are hard to cherry pick if they are merged with runtime features/additions/removals
All details on GitHub

What's Next

  • unflag module/nomodule in origin
All details on GitHub

Bento

Status Update Fri Jan 01 2021

What was accomplished

  • Ready for dev preview. Waiting for some amp.dev updates to go public.
  • Dev-preview related minor fixes.
  • Sidebar: RTL and styling fixes
  • We now have ResizeObserver polyfill across all of AMP
  • Initial resize-code refactoring.

Lessons learned

All details on GitHub

What's next

  • Continuing: Video docking
  • Start: lightbox gallery
  • Social share: focus outline work
  • Continuing: amp-truncated-text
  • Upgrading storybook
  • Start: npm packages for (P)react components
All details on GitHub

Infrastructure

Status Update Mon Dec 07 2020

What was accomplished

  • Internal release pipeline improvements
  • Maintenance for custom AMP GitHub apps
  • AMP closure compiler was upgraded from May to November
  • Progress on code coverage measurements during tests
All details on GitHub

What's next

  • Refactor Travis-specific CI pipeline code
  • Continue work on other ongoing projects
All details on GitHub

Monetization

Status Update Mon Dec 07 2020

What was accomplished

AMP Monetization - Run experiment to measure the CWV impact from BTF ad iframes - No signing debugging - Fixed sticky ad loading indicator bug - amp-ad sticky ad now available on fast fetch extensions

Story Ads - Began work on impression tracking changes

All details on GitHub

What is next

AMP Monetization - Collaborate with Google Ads team on experimenting new browser APIs for privacy safe ad conversion tracking. - Port remaining features of amp-sticky-ad to amp-ad - Implement top sticky ad

Story ads - Finalize impression tracking changes - Adsense availability blog post - Tooling updates

All details on GitHub

Performance

Status Update Mon Dec 07 2020

What was accomplished

  • module build rollout is in 100%
  • Started privacy & legal reviews for adding CWV metrics from Google AMP cache to Page Experience tool
  • exclude iOS < 11 specifically from module build insertion

Lessons Learned

All details on GitHub

What's Next

  • fixes for double exec of module/nomodule in iOS < 11 in the runtime
  • Working on APIs for CWV metrics from Google AMP Cache
All details on GitHub

Bento

Status Update Mon Dec 07 2020

What was accomplished

  • Most of carousel baseline features completed
  • Accordion: display locking completed.
  • Imperative APIs: design completed.
  • Troubleshooting IntersectionObserver spec problems.

Lessons learned

All details on GitHub

What's next

  • Bug bash
  • Sidebar
All details on GitHub

User Interface & Accessibility

Status Update Wed Dec 02 2020

What was accomplished

  • Design doc for amp-render completed, design review on 12/02
  • Code complete for Serving NPA ads (publishing in Q1 2021
  • amp-ima-video bugfixes
  • amp-fit-text accessibility fix in review
All details on GitHub

What's next

  • Begin implementing amp-render after getting feedback from design review
  • Begin design for amp-list v2
  • Working on finalizing design for granular consent
  • Working on e2e test for amp-fit-text a11y update
  • Update from GA4 team coming 12/4
All details on GitHub

User Interface & Accessibility

Status Update Mon Nov 09 2020

What was accomplished

  • Exposed consentMetadata to 3p ad
  • Exposed CONSENT_STRING macro to analytics
  • Turned on visibility-trigger-improvements experiments in canary. This experiment supports multi selector and non AMP element’s visibility trigger
  • Fixed bug on base carousel currentIndex
  • Added visual diff test for amp-carousel
  • Fixed bug on amp-autocomplete where the first focus event is not received (PR not merged due to experimentA build failure)
  • Add support to prefetch remote data in amp-autocomplete
  • Created example pages to demonstrate that <img> doesn’t work well with <amp-consent> <amp-image-lightbox> <amp-analytics> and <amp-bind>
  • Created valid and invalid <img> examples and their corresponding validator output files
  • Tested web worker behaviors in cross origin iframe/non origin iframe created by srcdoc/non origin iframe created by data:text/html) in different browsers
All details on GitHub

What's next

  • <amp-render>
  • Easy way for publishers to always serve npa
  • Add a new sandbox nodom version of worker dom
All details on GitHub

Infrastructure

Status Update Mon Nov 09 2020

What was accomplished

  • Ushered 2-week release freeze (beta channel updated, but not stable / lts)
  • Migrated AMP project CLA to latest OpenJS agreement
  • Progress on Visual diff infrastructure redesign
  • Progress on instrumenting minified code for coverage during E2E tests
All details on GitHub

What's next

  • Fixes to AMP closure compiler build pipeline
  • Explore technology options for a status page for AMP
  • Explore automating asset downloading + page freezing for visual diff tests
  • Continue work on other ongoing projects
All details on GitHub

Stories

Status Update Mon Nov 09 2020

What was accomplished

AMP Story Player

amp-story-360

Others

All details on GitHub

What's next

Content layout

Large image panning component

  • A persistent image component that transitions between pages

cc @ampproject/wg-stories

All details on GitHub

Bento

Status Update Mon Nov 09 2020

What was accomplished

  • Video iframe code merged for Preact
  • Progress on docking
  • Static Storybook deployment
  • Implemented CE disconnect/connect as Preact mount/unmount
  • Built support for media attributes, including boolean media attributes
  • amp-bind is supported in the Storybook
  • Imperative API for accordion completed
  • Bind protocol for accordion completed
  • Continued progress on viewportCallback removal
  • Started lightbox implementation

Lessons learned

All details on GitHub

What's next

  • amp-video-iframe binding for video iframe
  • auto-advance in carousel
  • carousel thumbnails
  • carousel snapping features
  • DOM event support for accordion
  • Restructure accordion for better Preact semantics and support display locking
  • Preact and AMP bindings implementation of lightbox
All details on GitHub

User Interface & Accessibility

Status Update Mon Nov 02 2020

What was accomplished

  • Added support for prefetch in amp-autocomplete
  • amp-sidebar layout bug fix
  • amp-render design
  • Coordinating documentation and announcements for validation changes for amp-img deprecation
  • Running worker in iframe design finalized
  • analytics-chunk experiment cleanup
  • backupCid experiment turned on in canary & prod
  • Publishers signaling to always serve NPA design finalized
  • Fixed video-analytics single percentage bug
  • Fixed RTL edge calculations bug for amp-base-carousel
  • Fixed scroll snap alignment for amp-carousel
All details on GitHub

What's next

  • amp-render finalize design
  • worker-dom in iframe implementation
  • continue talking to GA team to create design for GA4 support in amp-analytics
  • Purpose 1 consent signal
All details on GitHub

Stories

Status Update Mon Nov 02 2020

What was accomplished

All details on GitHub

What's next

  • More AMP Story dev-tools
  • Aspect-ratio guidance implementation
  • Launch 360 component
  • Large image panning
  • Fix player improvements and bugs after launch
All details on GitHub

Monetization

Status Update Mon Nov 02 2020

What was accomplished

AMP Monetization - Module / No module fully launched for inabox. - Verified that the new security model fixed a Safari regression seen in the no-signing experiment. - 3p vendor splitting design - Resolved Visual diff flakiness

Story Ads - E2E testing done for AdSense on canonical AMP stories. Found a potential loophole for advertisers to manipulate CTA buttons. - Working on CSS protection of story ads CTA on canonical AMP stories

All details on GitHub

What is next

AMP Monetization - Launch no-signing experiment - 3p vendor splitting - Port real time config to amp-ima-video

Story ads - CSS protection of story ads CTA on canonical AMP stories. - Launch AdSense on canonical AMP stories.

All details on GitHub

Performance

Status Update Mon Nov 02 2020

What was accomplished

  • Worked on TDD for adding AMP Cache CWV metrics to Page Experience Tool
  • mjs files now need to be approved when increased in size
  • build and upload esm tests when integration tests are modified

Lessons Learned

All details on GitHub

What's Next

  • Developing Page Experience Tool rule to ensure placeholder inside amp-img uses only data src (no network requests)
  • experiment design doc to have a hold over A/B test for module vs nomodule performance
  • Fix bug in Google AMP cache transformer where the document from origin already has module/nomodule pattern in markup
All details on GitHub

Bento

Status Update Mon Nov 02 2020

What was accomplished

  • amp-accordion:
  • external API restructure
  • accessibility attributes
  • amp-base-carousel snap-align feature to view slides either at start or center of carousel viewport
  • amp-lightbox initial implementation
  • amp-selector:
  • keyboard-select-mode feature for Arrow key navigation and selection configuration
  • Preact unit tests
  • Ongoing fixes for resource loaders and intersection observers
  • Imperative API design and discussion
  • Documentation written for amp-instagram, amp-youtube, amp-lightbox
  • Removed viewportCallback from BaseElement
  • PR deploy bot integration with Storybook

Lessons learned

  • You can run Preact Devtools in Storybook by adding import 'preact/debug'; to the start of the story.
  • We make sure hidden is display:none in AMP but it is much more fragile (overridable) to use it in Bento mode.
All details on GitHub

What's next

  • Finalizing dev preview feature set and planning for beta
  • Continued progress on imperative API
  • amp-accordion:
  • display locking
  • final touches
  • amp-base-carousel:
  • e2e tests
  • orientation feature to configure the carousel as horizontal or vertical scrolling
  • dir="rtl" support
  • amp-selector integration with forms
All details on GitHub

Stories

Status Update Fri Oct 09 2020

What was accomplished

Interactive Components (quizzes/polls)

  • Official documentation published amphtml/issues/29468
  • Fix prompt alignment https://github.com/ampproject/amphtml/issues/30531

360

Others

  • Build pagination buttons for prerendered stories https://github.com/ampproject/amphtml/pull/30503

AMP Story Player

  • Fix responsive layout validation https://github.com/ampproject/amphtml/issues/30414
  • Fix responsive layout sizing https://github.com/ampproject/amphtml/issues/30423
All details on GitHub

What's next

AMP Story Player

  • Dev preview documentation
  • Custom UI Controls API https://github.com/ampproject/amphtml/issues/30031
  • Fetch stories from endpoint https://github.com/ampproject/amphtml/issues/29864

Interactive Components (quizzes/polls)

360

cc @ampproject/wg-stories

All details on GitHub

User Interface & Accessibility

Status Update Fri Oct 02 2020

What was accomplished

  • A11y Fixit Week
  • Backup CID in localStorage (in experiment)
  • <amp-list> infinite scroll performance improvement
All details on GitHub

What's next

  • TCF v2 API support
  • <amp-carousel> visual diff test
  • Validator change to support native <img>
All details on GitHub

Infrastructure

Status Update Fri Oct 02 2020

What was accomplished

  • Infra updates for release freeze from 10/26-11/8
  • AMP has fully moved off Google CLA to OpenJS CLA
  • Package management has been migrated from Yarn to NPM
  • Travis integration migrated from travis-ci.org to travis-ci.com
All details on GitHub

What's next

  • Continue work on assorted ongoing projects
All details on GitHub

Stories

Status Update Fri Oct 02 2020

What was accomplished

New team member

  • Welcome @raxsha!!

AMP Story Player

Interactive Components (quizzes/polls)

amp-story-360

All details on GitHub

Others

What's next

AMP Story Player

360

cc @ampproject/wg-stories

All details on GitHub

Bento

Status Update Fri Oct 02 2020

What was accomplished

  • Prototypes created for mixed-length and streaming carousel types
  • Accordion: a11y support and styling.
  • Accordion: work started on imperative APIs.
  • Video iframes and YouTube components are code complete.
  • Started lightbox components. Presented in design review.
  • Replacing viewportCallback with IntersectionObserver throughout the runtime.

Lessons learned

All details on GitHub

What's next

  • Continue work on video docking
  • Continue work on stream and mixed-length carousel types.
  • Continue work on lightbox components.
  • Continue work on accordion imperative APIs, a11y, and structure.
  • Support media-query attributes.
All details on GitHub

User Interface & Accessibility

Status Update Thu Oct 01 2020

What was accomplished

Becca

  • Led Design Review for amp-img deprecation
  • Phase 1 - Approved - moving forward, digging into Validator to make img's valid amp

Caroline

  • Finalizing launch for pixi
  • Transitioning back to bento, planning for developer preview, e2e tests for carousel
  • Prototype stream-gallery

Kevin

  • Finished up tests and storybook for amp-date-countdown
  • Starting to take a look amp-accordion

Priyam

  • Led Design Review for amp-youtube (bento)
  • Prototyped amp-youtube and automated tests

Analytics - Inabox ad visibility tracking: Listen to window resize event - Enable CMP iframe to run in the background for 1 second so they can send out update after user action - Easy configuration to always serve non personalized ad - Backup CLIENT_ID in localStorage - Debugging: Analytics not loading when user scroll to the bottom fast

Lessons learned

All details on GitHub

What's next

Becca

  • Update Validator and and working on a few other components for img deprecation

Caroline

  • Thumbnails for stream-gallery
  • Go to slide issue for amp-base-gallery

Kevin

  • Continue work on amp-accordion

Priyam

  • Adding prefixes for Preact base-element
  • Starting work on amp-lightbox

Analytics - Analytics service listen to img's onload event (part of the effort of <amp-img> deprecation) - Discussion: Element level granularity consent decision support - Discussion: Pass TCF 2.0 consent string via postMessages to iframes

All details on GitHub

Infrastructure

Status Update Thu Oct 01 2020

What was accomplished

  • Internal improvements to release process, including freezing from 10/26-11/8
  • Beta browsers / OSs are included in manual testing matrix
  • Coverage data can now be collected during E2E and manual testing
  • Deployed new OpenJS CLA for ampproject (not blocking yet, will eventually replace Google CLA)
  • Fixes to package management (Yarn 1 is reaching end-of-life)
All details on GitHub

What's next

  • Design review for package management solution (Yarn 1 vs. Yarn 2 vs. NPM)
  • Test result collection and reporting for automated tests
  • Documentation for release process and error reporting
  • Syntax checks for OWNERS files
  • Continue work on ongoing release projects
All details on GitHub

Bento

Status Update Thu Oct 01 2020

What was accomplished

  • Design work has started on the AMP/JSX templates.
  • YouTube component is in progress.
  • More carousel features added such as controls and snapping.
  • DateCountdown component - code-complete.
  • Accordion: animations done.
  • amp-img SSR is launching and collecting metrics.
  • Instagram component completed.
  • Aspect ratio supported for layout=responsive. Unfortunately, it doesn't work for layout=intrinsic.
  • Did some evaluations and filed bugs on Goober - a potential alternative for JSS.

Lessons learned

  • Animations could potentially be easier solved with Web Animations API. The big benefit is that some CSS properties can be easier managed for setup and cleanup as the keyframes definition.
All details on GitHub

What's next

  • Video docking.
  • StreamGallery component.
  • Complete accordion features.
  • Make decision on auto-envelope for dev preview.
  • LIghtbox components.
  • Start reducing AMP Runtime reliance on the measuring code.
All details on GitHub

User Interface & Accessibility

Status Update Wed Sep 02 2020

What was accomplished

Lessons learned

All details on GitHub

Infrastructure

Status Update Wed Sep 02 2020

What was accomplished

  • IE 11 integration tests are now blocking
  • Investigated running Karma tests on an iOS simulator
  • Internal infrastructure improvements to cherry-picks and generation of visual tests
  • Upgraded custom AMP closure compiler to September, discovered crash (https://github.com/ampproject/amp-closure-compiler/issues/22#issuecomment-699145802)
All details on GitHub

What's next

  • Fix closure crash
  • Refactor internal CI code
  • Investigate alternatives that allow for iOS testing
  • Incorporate beta browsers / OSs in manual testing matrix
  • Continue with ongoing projects (coverage, release infra, compilation toolchain)
All details on GitHub

Runtime

Status Update Wed Sep 02 2020

What was accomplished

Lessons learned

All details on GitHub

Stories

Status Update Wed Sep 02 2020

What was accomplished

Interactive Components (quizzes/polls)

360

Others

All details on GitHub

What's next

Interactive Components (quizzes/polls)

360

cc @ampproject/wg-stories

All details on GitHub

Analytics

Status Update Wed Sep 02 2020

What was accomplished

  • Inabox ad visibility tracking: Listen to window resize event
  • Enable CMP iframe to run in the background for 1 second so they can send out update after user action
  • Easy configuration to always serve non personalized ad
  • Backup CLIENT_ID in localStorage
  • Debugging: Analytics not loading when user scroll to the bottom fast
All details on GitHub

What's coming next

  • Analytics service listen to img's onload event (part of the effort of <amp-img> deprecation)
  • Discussion: Element level granularity consent decision support
  • Discussion: Pass TCF 2.0 consent string via postMessages to iframes
All details on GitHub

Monetization

Status Update Wed Sep 02 2020

What was accomplished

AMP Monetization - Scheduled security review for findings in remove AMPHTML signing requirement - Changes to close button for new sticky formats - AMP ad v2 planning

Story Ads - Identified bug causing new RDA GDN format not to serve - GDN ads for select adsense pubs on cache now serving

All details on GitHub

What is next

AMP Monetization - Implement security team recommendations for no signing.

Story ads - AdSense ads in canonical story implementation - Implement changes for RDA to serve in prod

All details on GitHub

Bento

Status Update Wed Sep 02 2020

What was accomplished

  • amp-video complete.
  • MediaSession support for videos: close to be done.
  • VideoIframe component has been started.
  • Loading model is redone via loading prop.
  • layout=responsive implementation via aspect-ratio CSS completed
  • social-share: fixed error handling
  • social-share: refresh of all styles and icons completed
  • date-countdown: AMP mapping in progress
  • JSS support has been completed on the infra side.
  • finished analysis for JSS competitors: Emption, Goober, and Aphrodite.
  • Instagram: code complete, tests WIP.
  • Improved AMP mode in the storybook to make parameter selections sticky.
  • Shadow DOM support: automatically discover slot distribution changes.
  • Multi-attribute parsing supported where different input formats can map to a single Preact prop.
  • Fixed Closure bugs on destructured property typing.
  • Auto-envelope experimentation in progress to execute extensions w/o v0.js.

Lessons learned

All details on GitHub

What's next

  • Working on dev preview launch plans.
  • Start templates-via-JSX design.
  • Start YouTube component.
  • Start Accordion component.
  • Complete date-countdown and instagram support.
All details on GitHub

Infrastructure

Status Update Tue Sep 01 2020

What was accomplished

  • Updates to visual diff internals (plus stability fixes during release process)
  • Updates to cherry pick internals during release process
  • Initial planning for improvements to CI pipeline
  • Instrumented minified builds for code coverage measurements
All details on GitHub

What's next

  • Instrument minified runtime in dev-server and during automated testing
  • Begin consolidating code specific to CI service across build-system
  • Initial planning for reorganizing of AMP source code directories
  • Continue work on other in-flight projects
All details on GitHub

Runtime

Status Update Tue Sep 01 2020

Accomplished

  • Justin
  • Progress on Bento auto-envelope
  • Make auto-injected script tags parse as modules in ESM
  • Fix to Closure Compiler to correctly support sequence expressions in destructures
  • Jake
  • Bento styling
    • Design review (https://docs.google.com/document/d/1EiBj4Hy7cxhgl8GXw-8FeW7zIyL8reRI7NC9dJB7SR0)
    • Deterministic classname generation and watch mode support (https://github.com/ampproject/amphtml/pull/30065, https://github.com/ampproject/amphtml/pull/30115)
  • Fixes:
    • Teach babel-plugin-tests how to pass on Windows machines (https://github.com/ampproject/amphtml/pull/30165)
    • Protocol adapters: support load-more attr (https://github.com/ampproject/amphtml/pull/30101)
    • Resources system IntersectionObserver experiment bugs:
    • Using outdated measure: https://github.com/ampproject/amphtml/pull/30188
    • Fill layout skips layout: https://github.com/ampproject/amphtml/pull/30167
All details on GitHub

Next

  • Justin
  • Finish auto-envelope, write doc
  • Begin amp-img SSR tests
  • Update perf metrics to handle SSR experiments
  • Jake
  • Dockerized optimizer: blocked on reviews
  • Integration tests for layout sizing during build
  • Wrap up Bento styling work
  • Research better experiment analytics for runtime/internal csi
All details on GitHub

Analytics

Status Update Tue Sep 01 2020

What was accomplished

  • Support Consent meta data collection via macros
  • Check element size in additional to intersectRatio when report visibility
  • Design: Backup CLIENT_ID in localStorage
  • Debug: Incorrect visibility trigger due to fluid inabox ad resizing in viewport
  • Debug: Video-played-percentage trigger issue with stories team
All details on GitHub

What's coming next

  • Introduce an easy way to bypass user consent decision and always serve non personalized ad
  • Granular Consent Support Design
  • Running 3p service provider script in web worker (I2I)
All details on GitHub

Monetization

Status Update Tue Sep 01 2020

What was accomplished

AMP Monetization - Removing AMPHTML ads signing WIP in experiment. Still see a small regression after the last fix. Looking further into it. - Working with Kargo team identify more ad formats to bring to AMP - Debugging a sticky ad issue.

AMPHTML ads - Debugging an issue in module/no-module build

Story Ads - GDN ads eligible for 100% of select GAM pubs - Debugging GDN ads for adsense pubs on cache

All details on GitHub

What is next

AMP Monetization - Launch removing AMPHTML ads signing.

Story ads - AdSense ads in canonical story. - Analytics improvements

All details on GitHub

Bento

Status Update Tue Sep 01 2020

What was accomplished

  • Initial amp-inline-gallery and amp-inline-gallery-pagination completed.
  • Improved style propagation from Web components to Preact components.
  • Started experimentation with auto-envelope for Bento: a smaller custom-element wrapper that could allow us to run Bento components w/o runtime.
  • amp-date-countdown design and initial work on Preact component completed.
  • JSS support completed and ready for use.
  • Completed design review for ad-frame components (amp-facebook-comments and amp-twitter).
  • Prototyping completed for ::part CSS.

Lessons learned

  • Using fake timer when testing Preact has to be done very carefully to avoid "stuck" global queues. Always call clock.runAll() in afterEach. A more stable solution is in research.
  • The ::part CSS could be very natural for Bento. However, our typical markup is incompatible with it and would need to be changed. However, that often limits some of the CSS/markup that we've been using.
All details on GitHub

What's next

  • Review light-DOM components, especially template-based ones.
  • amp-instagram support.
  • amp-date-countdown AMP/Bento bindings.
  • Working on "developer preview" plans.
All details on GitHub

Infrastructure

Status Update Mon Aug 03 2020

What was accomplished

  • Improvements to guts of visual testing
  • Improvements to workflow for generating github releases
  • AMP can now be built and tested on Windows
  • Discovered cause of test flakes on Safari (incomplete iframe cleanup)
  • Investigated code coverage for minified builds
All details on GitHub

What's next

  • Planning for improvements to CI pipeline
  • Instrument minified builds, augment dev server middleware
  • Continue work on in-flight projects mentioned above
All details on GitHub

Runtime

Status Update Mon Aug 03 2020

Accomplished

  • Justin

    • amp-img SSR CLs have landed

      • Made sure SSR'd <img> is visible: https://github.com/ampproject/amphtml/pull/29955

    • Various bug fixes

      • https://github.com/ampproject/amphtml/pull/29951

      • https://github.com/ampproject/amphtml/pull/29950

      • https://github.com/ampproject/amphtml/pull/29947

    • Worked on auto-envelope

  • Jake

    • 🎉Launched strict experiment (ampproject/amphtml/pull/29929)

    • Merged bento styling babel transform (ampproject/amphtml/pull/29777)

    • 📈  Opened up pull request to add Dockerized AMP Optimizer into amp-toolbox

    • Fixes

      • <amp-script>: don’t assign onerror if init failed (ampproject/amphtml/pull/29875)

      • <amp-script>: improved error messages (ampproject/amphtml/pull/29875)

      • worker-dom: dirty flag for value hydration (ampproject/worker-dom/pull/913)

      • worker-dom: .click() support (ampproject/worker-dom/pull/919)

  • Will

    • Left wg-runtime. Farewell Will! 🎺😿


Learned

All details on GitHub

Next

  • Justin

    • Finish auto-envelope

    • Fix follow ups with amp-img SSR

    • Fixit:

      • amp-bind SSR support in extension

  • Jake

    • Get AMP Optimizer through amp-toolbox review

    • Bento Styling: 

      • Design review

      • Deterministic classname generation

      • Run through css optimizer / decide on jss plugins

    • fixits: 

      • <amp-script> validator extension bug: ampproject/amphtml#29457
All details on GitHub

Runtime

Status Update Mon Aug 03 2020

What was accomplished

  • amp-img SSR work is almost done, cleaning up the code now before creating CL
  • Bento Reviews for Context and Styles
  • TC39: logical assignment operators will be in ES2021
  • Merged protocol-adapters for amp-list, amp-script[nodom] (https://github.com/ampproject/amphtml/pull/29329, https://github.com/ampproject/amphtml/pull/29541)
  • "nodom" binary for worker-dom (https://github.com/ampproject/worker-dom/pull/882)
  • Investigating 1% ads query regression in intersect-resources and created another candidate fix

Lessons learned

  • For changes that may affect ads, start minimal and incrementally diverge instead of starting with a big refactor and paring down
All details on GitHub

What's next

  • Auto-envelope pattern for Bento binaries
  • Fix more TODOs with amp-img SSR
  • Support <link rel=preload imagesrcset>
  • Support auto srcset generation for SSR'd <img>
  • Cleanup code paths
  • Research inputmask bug to see if related to the strict experiment
  • Follow up on removeCalcTask & content prioritization. CSI effects seemed negligible.
  • Documentation for new amp-list/amps-script features and launch experiment: ampproject/amphtml#29603
  • Implement Bento JSS Proposal
  • Fixit:
  • Clean up "layoutbox-invalidate-on-scroll" experiment ampproject/amphtml#25203
  • amp-bind: remove the need for treewalking ampproject/amphtml#27590
  • Fixit:
  • <amp-script> improve hash error: ampproject/amphtml#29614
  • <amp-script> validator extension bug: ampproject/amphtml#29457
  • Fixit: AMP.navigateTo
  • ampproject/amphtml#26248
  • ampproject/amphtml#24798
All details on GitHub

Analytics

Status Update Mon Aug 03 2020

What was accomplished

  • Support Begin-to-Render signal in a4a ads
  • Removed consent string size restriction on publisher's origin when Storage API is not used.
All details on GitHub

What's next

  • [Discussion] Running 3p scripts in web worker in iframe
  • Support Consent meta data collection via macros
All details on GitHub

Analytics

Status Update Mon Aug 03 2020

What was accomplished

  • SESSION_ID: Decided to store to session storage and bypass the storage API as first step.
  • Analytics to temporary collect element width/height & viewport width/height at maximum intersect ratio (For debugging)
  • Consent UI to support dir=rtl
  • Disable promptUISrc from <amp-story-consent>
All details on GitHub

What's next

  • Benchmark delay of creating a web worker within a non origin iframe
  • More granular consent blocking on client side
All details on GitHub

Monetization

Status Update Mon Aug 03 2020

What was accomplished

AMP Monetization - Removing AMPHTML ads signing WIP in experiment. Saw some regression and had a fix. - Supporting Kargo team to implement SideKick - launched ampdoc-fie - Debugged a RC release regression, identified the root cause as working as intended - Fixed a video ad not playing bug: https://github.com/ampproject/amphtml/pull/29853

Story ads - Drafted design for AdSense story ads on canonical domain

AMPHTML ads - Ramping up module experiment

All details on GitHub

What is next

AMP Monetization - Launch removing AMPHTML ads signing. - Work with Kargo to get their part delivered for Sidekick ad.

Story ads - AdSense story ads on canonical domain

All details on GitHub

Monetization

Status Update Mon Aug 03 2020

What was accomplished

AMP Monetization - Removing AMPHTML ads signing WIP. More PRs merged. - Shared sidekick demo with kargo. Unblocked their engineering work. - Started the ampdoc-fie experiment. - Get amp-auto-ads work with amp-access

Story ads - Reporting ad experiments via amp-analytics (PR pending)

All details on GitHub

What is next

AMP Monetization - Removing AMPHTML ads signing - SideKick creative - Launch ampdoc-fie

All details on GitHub

Infrastructure

Status Update Sat Aug 01 2020

What was accomplished

  • Started deprecating old RTVs > 6 months old
  • Started automating new release creation as part of cherry-pick workflow
  • Added a windows native compiler to ampproject/amp-closure-compiler
  • Fixed race in watch logic of default gulp server
  • New database for test case level reporting for unit / integration tests
  • Error reporting / monitoring for module/nomodule rollout
All details on GitHub

What's next

  • Infrastructure enhancements around release creation / tagging
  • Scale up visual testing
  • Publish native compiler to npm under @ampproject/amp-closure-compiler
  • Add reporting for E2E tests
  • Instrument minified code with mapping to original source code
  • Automate error report issue creation
All details on GitHub

Runtime

Status Update Sat Aug 01 2020

What was accomplished

Justin

  • CL reviews for amp-img ssr work, finding bugs in other go transformers
  • Helped with debugging cherry-pick issues
  • https://github.com/ampproject/amphtml/pull/29771
  • https://github.com/ampproject/amphtml/pull/29775
  • Cleaned up 2 ancient experiments (fixit!)
  • https://github.com/ampproject/amphtml/pull/29728
  • https://github.com/ampproject/amphtml/pull/29665
  • Worked on auto-envelope, but unhappy with it
  • Bundling 2 element implementations seems wasteful for amp-mode, and bundling specific code in bento-mode
  • Created experimental cache transform for amp-bind

Jake

  • 🎉 Launched protocol adapters (ampproject/amphtml/pull/29689)
  • 📈 Made headway on bento css integration (ampproject/amphtml/pull/29713, ampproject/amphtml/pull/29794)
  • 🔎 Made a prototype amp-optimizer docker image
  • 🛠️ Fixes:
  • inputmask incorrect usage static this: of ampproject/amphtml/pull/29646
  • inputmask attempting to mask svgs: ampproject/amphtml/pull/29624
  • <amp-script> improve hash error: ampproject/amphtml#29614

Will

  • Rolled out “intersect-resources” to 100% prod
  • Fixed a couple email-related bugs in amp-list (ampproject/amphtml#29726)
  • Fix-it bugs related to AMP.navigateTo

Lessons learned

  • In our error logs, we get a referrer url which can significantly help reproducing issues
All details on GitHub

What's next

Justin

  • Finish CL of amp-img ssr and related transformers
  • Finish auto-envelope for Bento
  • Update amp-bind code to support SSR transform

Jake

  • Continue work on bento css + amp-optimizer docker image
  • 🤞 Launch StrictCompilation
  • fixits:
  • <amp-script> validator extension bug: ampproject/amphtml#29457

Will

  • Transition plan
  • Fix-it: clean up old TODOs
All details on GitHub

Analytics

Status Update Sat Aug 01 2020

What was accomplished

  • Web Worker in iframe: Non origin iframe: around 80ms delay in initialization, but can still access IndexDb db. 3P iframe: around 300ms delay in initialization.
  • Support visibility tracking of non AMP element
  • Consent UI Lightbox mode PR merged
All details on GitHub

What's next

  • Consent: Remove consent string size restriction on publisher's origin when Storage API is not used.
  • Store CID to localStorage on origin as backup
  • Analytics: Visibility tracking to check element's size before using the intersectionRatio value from IntersectionObserver.
All details on GitHub

Monetization

Status Update Sat Aug 01 2020

What was accomplished

AMP Monetization - Removing AMPHTML ads signing WIP code complete. Starting experiment. - Sidekick ad code complete. - Debugged an ampdoc-fie experiment regression in some ad stats. Looking forward to launching it. - Met with Taboola team to identify their requirements and brainstormed their AMP solutions

Story ads - Reporting ad experiments via amp-analytics - Ramping up GDN experiment - Prototyping solutions for adsense publishers

All details on GitHub

What is next

AMP Monetization - Launch removing AMPHTML ads signing. - Launch ampdoc-fie - Work with Kargo to get their part delivered for Sidekick ad.

Story ads - Launch GDN alpha to adsense publisher (cache only) - Design adsense canonical solution - Introduce experiment reporting amp-analytics config to selected stories

All details on GitHub

Runtime

Status Update Mon Jul 06 2020

What was accomplished

Lessons learned

All details on GitHub

Analytics

Status Update Mon Jul 06 2020

What was accomplished

  • Fixed amp-analytics FID, LCP collection
  • Investigated and Fixed IntersectionObserver polyfill issue in inabox
  • Fixed scroll trigger issue
  • Expanded <amp-story-consent> config support
All details on GitHub

What's next

  • Pause analytics trigger in <amp-next-page>
All details on GitHub

Runtime

Status Update Thu Jul 02 2020

What was accomplished

  • Merged PRs for validator to support amp-img SSR
  • Code reviews for Bento, including Context APIs in AMP code
  • Merged experiment to remove calcTaskTimeout (https://github.com/ampproject/amphtml/pull/28453/commits)
  • Merged server experiment for compiling v0/extensions in strict mode (https://github.com/ampproject/amphtml/pull/28793)
  • Merged cross-document navigation for AMP.goBack (https://github.com/ampproject/amphtml/pull/26585)
  • Fixed too-small rootMargin vs. loadRect in “intersect-resources”

Lessons learned

  • Kittens are cute
All details on GitHub

What's next

  • Finishing amp-img SSR cache transforms
  • Prototyping Bento "auto-envelope" pattern to support components in/out of AMP runtime
  • Wrap up in-progress worker-dom feature work
  • Lite binary for worker-dom (https://github.com/ampproject/worker-dom/pull/882)
  • Protocol adapters (https://github.com/ampproject/amphtml/pull/29329)
  • Continue investigating the ~1% regression in ad queries for "intersect-resources"
All details on GitHub

Analytics

Status Update Thu Jul 02 2020

What was accomplished

  • Update <amp-story-consent> to support config in new format
  • <amp-consent> doc improvement (metaData, TCF support, promptUISrc, inline postPromptUI)
  • <amp-consent> UI lightbox mode when initial height is greater than 80vh. (#29204)
  • Decided to keep analytics service running and maintain states when the ampdoc becomes inactive. (This means the lower level timer trigger will continue to fire unless there's a stopSpec)
  • All 3rd background cross origin iframe usage in AMP will NOT be allowed w/o special approval. (#28471)
All details on GitHub

What's next

  • SESSION_ID to support a session id that expires after a defined time
  • Support tracking visibility of non AMP elements
All details on GitHub

Monetization

Status Update Thu Jul 02 2020

What was accomplished

AMP Monetization - Removing AMPHTML ads signing WIP. PRs merged for head validation & ad rendering https://github.com/ampproject/amphtml/issues/27189 - Working a prototype of SideKick creative. Set up joint goals with Kargo.

Story Ads - Onboarded more advertisers with story ad creatives.

Releases - Caught 2 regressions in RC and prevented them from entering prod. - Enhancing inabox auto releaser to use nightly build.

All details on GitHub

What is next

AMP Monetization - Removing AMPHTML ads signing - SideKick creative task breakdown and implementation

All details on GitHub

Runtime

Status Update Tue Jun 02 2020

What was accomplished

Lessons learned

All details on GitHub

Analytics

Status Update Tue Jun 02 2020

What was accomplished

  • Fixit week 9 closed issues
  • Consent Metadata PRs landed. Introduced getConsentMetadata to get TCF v2 related consent meta data including consent string type, gdprApplies and additional consent string info.
  • Consent UI Lightbox design
  • Enabled data-vars attribute for analytics events by default
  • Further expanded the consent info storage limit to 1200 in chars
  • Add expireCache support to amp-consent reprompt action
  • Deprecated and clean up the analytics mApp support.
All details on GitHub

What's next

  • OpenJS World Summit
  • Consent UI lightbox mode API Design
  • InOb Polyfill usage in analytics investigation
  • Expand iframe-transport feature to all analytics vendors (still under discussion)
All details on GitHub

Monetization

Status Update Tue Jun 02 2020

What was accomplished

FixIt week - Fixed/closed 11 issues

AMP Monetization - Removing AMPHTML ads signing WIP. Introduced an experiment flag and diversion point in code. Implemented response stream writer. - Launched then reverted removing centering css on amp-ad. Fixed an issue and rolled forward. - Launched JSON targeting expansion experiment to 1% - Launched an experiment to add a padding to sticky ad for devices ad interaction may be impaired (e.g. rounded edge of iPhone X)

Story ads - Now hiding share and volume icons (if ad has no sound) when the ad is showing. - Fixed infinite loop edge case.

Q3 OKR planning

All details on GitHub

What is next

OpenJS World & Collab summit - The whole wg-ads working group will be attending. - @calebcordry is going to give a talk about the "removing AMPHTML ads signing" work.

AMP Monetization - Work with @dvoytenko to launch the ampdoc-fie experiment - Removing AMPHTML ads signing - Create a reference implementation of Safeframe-based new creative format

Story Ads - Still working to ramp up GDN demand. - Early discussions of experiment framework so we can iterate on optimizations.

All details on GitHub

Infrastructure

Status Update Sat May 02 2020

What was accomplished

  • Deployed Error Monitor UI (in beta)
  • gulp tasks can now programmatically build runtime during tests (#28326)
  • Established grouping & reviewer assignment for Renovate PRs (#28322)
  • Investigated / debugged disconnection failures due to Sauce Labs (#28343)
  • Added performance tests to Travis CI (#28148)
All details on GitHub

What's next

  • Move generation of release binaries to open source via gulp release
  • Automatically create issues for commonly seen runtime errors
  • Add a presubmit check for renovate configuration changes
  • Test / deploy new version of karma-sauce-launcher
All details on GitHub

Runtime

Status Update Sat May 02 2020

Recap

Justin
 * Opened PR for deferring buildCallback
 * Doesn't affect LCP as much as we thought, maybe it'll help FID
 * PR Reviews


Jake
 * Submitted a fix so that we don’t send documentHeight until it is ready. Potentially two bugs with one stone: (b/154603596, b/143078110).
 * In-progress
 * New metrics eer/ser (https://github.com/ampproject/amphtml/pull/28401)
 * Improved e2e viewer tests (https://github.com/ampproject/amphtml/pull/28531).
 * Adding runtime pages to the gulp performance (https://github.com/ampproject/amphtml/pull/28503).
 * Protocol adapters worker-dom implementation (https://github.com/ampproject/worker-dom/pull/850).


Will
 * intersect-resources
 * Candidate fix for idle render merged, pending ads metrics


Learned

  • Use DCL to normalize metrics like LCP
 

All details on GitHub

Next

Justin
 * Finish buildCallback PR
 * Finally write doc about WorkerDOM/amp-bind in same-origin iframe (with sync messaging)
 * Look into removing Owners System, replace with InOb polyfill


Jake
 * IE11 Minimum support explorations
 * Continue many in-progress PRs with the goal of eventually optimizing
 * Load rect
 * Resource loading prioritization


Will
 * intersect-resources
 * Prod rollout and manual QA test plan

All details on GitHub

Analytics

Status Update Sat May 02 2020

What was accomplished

  • Turned on analytics-chunks experiment in canary.
  • Expanded consent string size limit to 1kb
  • Decided to introduce Consent UI new lightbox mode docs
  • Decided NOT to proceed with the Standalone analytics solution for AMPHTML Ad for now.
  • Decided keep the existing linker coverage. Will NOT auto launch linker to all browsers for now.
All details on GitHub

What's next

  • Consent metadata & Consent Vendor API redesign
  • Consent UI lightbox mode
  • Next step on granular consent support
  • Grouping target elements for CustomEvent & StoryEvent Issue
All details on GitHub

Monetization

Status Update Sat May 02 2020

What was accomplished

AMP Monetization - Design review done for the new proposed sticky ads format (SideKick ads) - FIE ads chunking in experiment

Story ads - GDN ads ramping up slowly - Some impact to metrics with latest chrome release

All details on GitHub

What is next

AMP Monetization - Resume no-signing work - Finalize UX decisions and prototype SideKick ads

AMP Ad - Launch removing centering css on amp-ad - Launch chunking on ad component

Story Ads - Reviewing support roadmap with partner ads teams - Increase alpha size to more pubs

All details on GitHub

Runtime

Status Update Fri May 01 2020

Recap

  • Justin

    • Auto link stacktrace frames to code in bug reports

    • Added support for module/nomodule script pairs

    • Fixed devAssert/userAssert for closure's type narrowing

    • Persistent browserify caching!

    • Helped remove AmpPass, various fixes to infra builds

    • Added linting to chai assertions, fixed tests

    • Added a few missing unresolved element CSS styles

    • Made blurry-image non-interactable when it's opacity: 0.

    • Fixed CEv1 in Safari 9 and Yandex

    • Made getMode().test and friends DCE in prod (again)

  • Jake

    • documentHeight bugfix, unit test, and integration test.

    • amp-script worker exceptions caught as user errors instead of dev errors. 

    • Protocol Adapters unit tests and manual e2e test.

    • Small improvements to the e2e testing flow (--extensions and --fast options)

  • Will

    • “intersect-resources” experiment

      • Fixed ads regression

      • Looks like 1-2% LCP, 5-6% FID improvement

    • Reviewed to-date progress on code mauve in CSI data


Learned

  • Persistent module state in unit tests is tricky

  • Old browsers still get a small (but noticeable) percentage in traffic

    • Does this effectively constrain our true browser support set?

All details on GitHub

Next

  • Justin

    • Hoping to add persistent file transform cache to Babel

    • Deferring buildCallback (should be easier, now that I've looked into it)

      • See if any elements expect really early buildCallback

  • Jake

    • New metric for in-viewport but not rendered latency

    • worker-dom Protocol Adapters PRs

    • IE11 Minimum support explorations

  • Will

    • Figure out and run a manual QA plan and start prod rollout 🤞
All details on GitHub

Analytics

Status Update Fri May 01 2020

What was accomplished

  • Performance Improvement
  • Running analytics-chunks experiment in canary. (Exclude AMPHTML ad)
  • Two existing errors surfaced due to the above experiment Issue Issue

  • Consent

  • Discussion on allowing consent dialog to take over fullScreen on page load Issue
  • Add metadata on top of the raw consent string. PR
  • Fixed consent dialog UI when the navigation bar is displayed. Issue
  • Agreed on expanding raw consent string storage limit up to 1kb.
    • The AMP team will monitor the "storage size exceed limit" error rate.
    • Update from Google AMP Viewer: open to expand the size limit to each domain, if it's the current limit is too small for the TCF V2 consent string.
All details on GitHub

What's next

  • Store consent metadata & pass metadata to vendors
  • Standalone analytics solution for AMPHTML Ad. Looking for early thoughts and ideas! Draft PR Draft PR.
All details on GitHub

Bento

Status Update Mon Apr 06 2020

What was accomplished 🍱 ✅

  • amp-render bindable src PR merged
  • Collaboration with caching team on validator changes for developer preview components (still under experiment)
  • Storybook upgraded to version 6
  • Investigating a visual diff test that outputs CLS changes
  • Discussion with bento.dev and legal for naming
  • Reviewing element that may cause issues for existing / future bento migrations
All details on GitHub

What's next ⏩

  • Remove existing implementation of display locking per changes to chromium team's support
  • Working with infra 👋 🏗️ to release npm binaries
  • Validate all developer preview components (still under experiment)
  • amp-sidebar toolbar feature in AMP mode
  • amp-render support for amp-script protocol and placeholder
  • amp-twitter ongoing work
  • Tune in for shadow DOM demo in today's deep dive
All details on GitHub

Runtime

Status Update Thu Apr 02 2020

Recap

  • Justin

    • Fixed CEv1 in IE 11, again

    • Fixed integration test in IE11, added simple amp-img test

    • Opened PR to use localName/tagName based on whether using uppercase/lowercase

    • Quick Promise.resolve() transform to share instance

    • Banning newer ES features, removingPromise.p.finally use

  • Jake

    • Mauve related

      • Removed force option from toggleLoading. Afterwards: fixed bugs it caused (gh/27508, gh/27905)

      • Removed unnecessary measures from the toggleLoading calls in hide() and the video-player (gh/27730, gh/27654, gh/27760, )

    • Other

      • Implemented draft of protocol adapter support in worker-dom (gh/worker-dom/850)

      • Found/fixed an iOS bug where we were missing a needed measure (gh/27729)

      • amp-script: improved illegal mutation messaging (gh/27834)

      • Added [data-tweetid] to the validator (gh/27787)

  • Will

    • Finished IntersectionObserver test plan, fixed a few more edge cases, and enabled in canary (4/28)

    • Wrapped up some email-related tasks in amp-list

    • Found documentHeight/premature remeasure bug


Learned

  • We need an integration test for documentHeight for email (do we have any for other viewer messages?)

  • Closure's Conformance config won't ban prototype accesses with BANNED_NAME

All details on GitHub

Next

  • Justin

    • Finish connectedCallback PR

      • Reduce dom mutations

      • Defer buildCallback

  • Jake

    • Mauve

      • Fix documentHeight bug

      • Runtime perf test pages

    • Other

      • Protocol adapters

    • Discuss: intern/step

  • Will

    • Try out IntersectionObserver in canary
All details on GitHub

Analytics

Status Update Thu Apr 02 2020

What was accomplished

  • amp-geo
  • Landed preset-us-ca support
  • self hosting amp-geo API supports subdivision
  • Performance improvement
  • Split analytics initialization into chunks. (need to run 'analytics-chunks' experiment with AMPHTML ads first)
  • Added analytics request handler to performance test to find potential delay on pageview delay
  • Created test pages array
  • Consent
  • Fix flaky e2e tests
  • Improved vendor facing docs
  • PRs on passing TCF required gdprApplies variable, and consent string type
  • Allowed fullScreen consent dialog when user open it via the postPromptUI button
All details on GitHub

What's next

  • Plan to launch Linker to all browsers (still under discussion)
  • AMP Consent TCF v2 related features support
  • Test and launch analytics-chunks experiment
  • Visibility trigger to support non-AMP element
All details on GitHub

Runtime

Status Update Wed Apr 01 2020

What was accomplished

  • First PreactBaseElement was merged!
  • Minimal CEv1 Polyfill launched
  • Work on IntersectionObserver based Resources, now enabled in experimental build
  • Updated enabling development mode for amp-script
  • amp-state can now be the source for an amp-list
  • Using performance.now for metrics deltas
  • DomPurify is now much faster for pages that have multiple amp-mustache templates
  • Caching amp-access evaluations, for faster evaluations
  • Fixed sourcemaps, multiple times.
  • Fixed iOS scrolling issues
  • Removed remeasure from toggleLoading

Lessons learned

  • The venerable 2015 MBP is slowly showing its age…
  • Verify Resource prototypes on real pages
All details on GitHub

What's next

  • Delaying BaseElement construction until connectedCallback
  • Speeding/prioritizing connectedCallback/buildCallback
  • Protocol adapters for remote data
  • InOb verification and fixes
  • More Perf work!
All details on GitHub

Runtime

Status Update Wed Apr 01 2020

Recap

  • Justin

    • TC39

    • Reviewed with Babel minifier transforms

    • Fixing sourcemaps (again)

    • Opened PR to delay constructing BaseElement construct until connectedCallback

  • Jake

    • optimization: removed remeasure from toggleLoading (gh/27482)

    • refactor: slightly cleaned up toggleLoading flow (gh/27527)

    • more toggleLoading changes in-flight

  • Will

    • IntersectionObserver testing & edge cases

    • Other stuff


Learned

  • Justin needs to get a new computer

All details on GitHub

Next

  • Justin

    • Land delaying BaseElement construction to connectedCallback

    • Make connectedCallback less expensive 

  • Jake

    • Complete inflight changes to toggleLoading

    • Create unit tests for loader.js and amp-loader.js
    • Protocol adapters

    • Performance

      • Skip amp-bind tree walking

      • Reduce cost of reparenting

      • Prioritize layout of in-viewport elements

  • Will

    • Finish testing & enable IntersectionObserver in canary
All details on GitHub

Analytics

Status Update Wed Apr 01 2020

What was accomplished

  • Opened PR to for gulp performance task to test locally hosted websites
  • Fixed bug with analytics variable expansion handling null
  • Worked on TCF v2 gdprApplies field for CMPs and publishers in amp-consent
  • Allowed one tracking iframe per AMP document
  • Support US-CA detection in <amp-geo> via preset-us-ca
All details on GitHub

What's next

  • Continue adding support for gdprApplies
  • Land performance task PR
  • Merge inline and vendor config server side
All details on GitHub

Monetization

Status Update Wed Apr 01 2020

What was accomplished

Amp monetization - Experiment for adding type=module crossorigin=anonymous on Google ready to be launched - Investigation of no-signing integration failures

Story ads - Fix story-ad-click regression - Design for auto-advance experiment - Monitoring placement change results

All details on GitHub

What's next

Amp monetization - No signing cleanup - Sticky ad CSS experiment follow-up

Story ads - Launch auto advance experiment - Animation in x-domain iframes

All details on GitHub

AMP for Email

Status Update Wed Mar 04 2020

Highlights

  • A lot of consensus on standardization efforts

WG Meeting Notes (12/13, 1/10, 2/13)

  • Unified sender registration form still in review across providers
  • Consensus on allowing CSS attribute selectors in spec
  • Consensus on banning AMP-Redirect-To feature in amp-form
  • Consensus on standardizing meta-based whitelists (https://github.com/ampproject/amphtml/issues/27094)
  • Consensus on allowing input[type=button] in spec, links with tel: URI scheme
  • Reviewed process proposal for incremental adoption of new AMP components
  • Discussed optional enforcement of email CSS rules in validator
  • Discussed standardizing enforcement of DMARC
  • Discussed standardizing email "hyper-collapsing"
  • Discussed standardization of MIME tree corner cases
  • Continued reviewing new email auth proposal
  • Created new "AMP for Email Ecosystem" group and Slack channel
All details on GitHub

Focus areas

  • Standardizing AMP for email behavior across providers by using AMP4EMAIL spec as single source of truth
All details on GitHub

Runtime

Status Update Tue Mar 03 2020

What was accomplished

Lessons learned

All details on GitHub

Analytics

Status Update Tue Mar 03 2020

What was accomplished

  • Enhanced gulp performance task to intercept and time requests based upon different team needs (also helps with pinpointing regressions)
  • Launch visibility trigger multi-selector capabilities to config size in amp-analytics
  • Decided to chunk the analytics initialization by triggers to reduce long tasks
  • More US-CA support work on server
All details on GitHub

What's next

  • Monitor analytics request delay using performance task on master for noise and evaluate it's effectiveness
  • QuerySelectorAll for visibility trigger
  • TCF v2 gdprApplies field for CMPs and publishers in amp-consent
  • analytics for ad design
All details on GitHub

Monetization

Status Update Tue Mar 03 2020

What was accomplished

AMP Monetization - Vendor splitting and ES module code 100% complete, experiment on - Discussed with Greg the technical routes of setting up client side experiments on Google AMP viewer, design doc TBD - IMA video not getting the canonical URL causing ad revenue loss: Coordinated a fix on the IMA SDK first - Web interstitial ads design WIP - Fixed bug in no singing around body attributes and restart experiment. - Fixed bug setting extension versions in template based ads.

Story Ads - Finished refactoring of story ads to isolate placement logic. - Started new experiment to test placement in shorter stories

All details on GitHub

What is next

AMP Monetization - Notifying ad vendors to test the vendor splitting - Evaluate vendor splitting outcome - Top sticky ad implementation - IMA video RTC design

Story ads - Set up auto advancing experiment - Placement design review

All details on GitHub

Runtime

Status Update Mon Mar 02 2020

What was accomplished

Lessons learned

All details on GitHub

Analytics

Status Update Mon Mar 02 2020

What was accomplished

  • ANALYTICS_VENDOR_SPLIT Clean up is done. Vendors need to submit .json file instead of .js file in the future
  • Consent String size limit was increased from 150 bytes to 200 bytes. Future increase is still under discussion
  • <amp-geo> falls back to geoApi when geo hot patch is not available. (e.g. self hosting)
  • Visibility trigger improvements for <amp-analytics>: multi-selector, querySelectorAll, and non-amp elements
  • <amp-consent> UX and a11y improvements rolled out
All details on GitHub

What's next

  • Benchmark individual features and heavy operations performance
  • Explore webworker solution for heavy operations
All details on GitHub

Runtime

Status Update Sun Mar 01 2020

What was accomplished

Lessons learned

All details on GitHub

Analytics

Status Update Sun Mar 01 2020

What was accomplished

  • Benchmark <amp-analytics> performance and pageView delay
  • Use existing performance testing framework to also measure request delay.
  • Explore solutions to reduce analytics related long tasks. (chunk, worker)
All details on GitHub

What's next

  • <amp-consent> gdprApplies field
  • Continue work to reduce analytics related long tasks
  • Reduce <amp-analytics> pageView delay. Some proposals include: include vendor predefined config inline, introduce a lite component for ads.
All details on GitHub

Performance

Status Update Sun Mar 01 2020

What was accomplished

Lessons Learned

All details on GitHub

Infrastructure

Status Update Mon Feb 03 2020

What we did

  • Updated amp.dev release schedule page
  • Release tagging is live (PR Use: In Stable / Beta / Experimental)
  • Updated cherry-pick template with new release channel names
  • Added a way to build only the core runtime via gulp build | dist | watch --core_runtime_only
  • Clarified process for adding amphtml dependencies using yarn
  • Triaged backlog of infrastructure issues
  • Renaming AMP_CANARY cookie to __Host-AMP_OPT_IN
All details on GitHub

What's next

  • Default minified build (gulp dist) will now add AMP_CONFIG to runtime files
  • Performance tests as part of CI / release workflow
  • Make LTS and nightly channel widely available
  • Take steps to reduce CI flakiness (sauce labs, percy)
All details on GitHub

Runtime

Status Update Mon Feb 03 2020

What was accomplished

Lessons learned

All details on GitHub

Analytics

Status Update Mon Feb 03 2020

What was accomplished

  • <amp-consent> a11y redesign implementation
  • <amp-consent>``enterFullScreen API is now only allowed after user interaction
  • <amp-consent> supports new API for CMPs to collect error messages
  • Design proposal to have <amp-geo> detect California in the format of ISO 3166-2 code
All details on GitHub

What's next

  • Fully launch the <amp-consent> UI enhancement including the tasks above (now protected by experimental flag)
  • Patch ISO 3166-2 code to amp-geo-0.1.js
  • Allow <amp-geo> to fallback to fetch geo location from a remote endpoint. (Discussion from #25873)
All details on GitHub

Viewers

Status Update Sat Feb 01 2020

What was accomplished

  • @newmuis wrote an I2I for the AMP Story Player which is independent from the amp-viewer project
  • It has a narrower scope than the existing player so it was decided to start from scratch.
  • @Enriqe is in progress of implementing the feature.
All details on GitHub

Stories

Status Update Sat Feb 01 2020

What was accomplished

Story a11y - Make CTAs not tabbable when not on active page #32840 - Improve tabbing on social-share and bookend #32859 - Rename i-amphtml-orig-tabindex #32867 - Pagination buttons alt text #32861 - Accessible close button in share menu and Twitter overlay #32863 - aria-label on amp-story-360 canvas #32871 - Empty img alt tags #32880 - Accessible close buttons #32925

amp-story-player - ♻️ Mini refactoring #32944

Story video - Do not downgrade a managed video that is already fully loaded #29498 - Manage bitrate on pool elements only (from amp video) #32618 - override aria-label with alt #32963

Story devtools - Add visual diff test for tab loading #31437

Others - amp-story: Images with missing or inadequate text descriptions #32493 - 🐛 Added layout fixed to page-attachment to fix CircleCI test #32732 - Story grid layer documentation - Singleton player experience UX design developments / gestures for closing - Desktop player experience UX design developments - Desktop blurred background technical planning - Google backend disclaimer documentation draft - Implementing CTA design updates - Demo story for responsive grid layer guidelines

All details on GitHub

What's next

  • Building Desktop player experience / planning LE
  • Google backend disclaimer documentation finalization
  • Implementing CTA design updates
  • Localization refactor planning
All details on GitHub

Monetization

Status Update Sat Feb 01 2020

What was accomplished

AMP Monetization - Merged a few prerequisites for amp-ad 3p vendor splitting, building vendor-specific integration Javascript files - FIE element eager building is ready to launch - Sticky ad through amp-ad merged in - PageEx + AMP ads workshop

Story Ads - Story ads placement design - Bug where desktop CTD ads are broken at certain window sizes

All details on GitHub

What is next

AMP Monetization - Amp-ad 3p vendor splitting (I2I forthcoming) - Top sticky ad (https://github.com/ampproject/amphtml/issues/31513) - Working with Kargo to provide a reference implementation of certain new ad formats - Ship eager building for inabox - One more pass at no signing optimizations

Story ads - Encapsulate logic for placement algorithm - Start new algorithm implementation

All details on GitHub

Infrastructure

Status Update Mon Jan 06 2020

What we did

  • LTS: Updated validator and other parts to support new release type
  • GH releases are now auto-published
  • WIP: Updates to release schedule
  • New cherry picking section of release dashboard
  • Network logging for E2E tests
  • Added coverage instrumentation for unminified builds
All details on GitHub

What's next

  • Wrap up docs / comms for LTS
  • Improve changelog creation
  • Network logging API for E2E tests
  • Measure code coverage during integration tests
All details on GitHub

Runtime

Status Update Mon Jan 06 2020

What was accomplished

Lessons learned

All details on GitHub

Infrastructure

Status Update Thu Jan 02 2020

What we did

  • Updated Release documentation
  • Forbid iframe-ing experiments page to prevent clickjacking
  • Release tagging works
  • Updated / unflaked e2e tests with new selenium version
  • Enforced JSDoc-based access controls in source code
  • New --core_runtime_only flag for gulp {build|watch|dist}
  • Published Infra doc for OpenJS
All details on GitHub

What's next

  • Interactive visualization for release schedule/cadence
  • Announce / monitor LTS launch
  • Rename AMP_CANARY cookie to __Host-AMP_OPT_IN
  • Automate deployment of internal GitHub apps
  • Refactor gulp changelog
  • Integrate perf tests into CI
  • Fix Sauce Labs disconnects (with help from Karma & Sauce)
All details on GitHub

Runtime

Status Update Thu Jan 02 2020

What was accomplished

Lessons learned

All details on GitHub

Infrastructure

Status Update Mon Dec 09 2019

What we did

  • Release names: stable, beta, experimental, nightly, lts
  • Design reviews for nightly and lts
  • Opt-in cookie for arbitrary RTVs
  • Fixed ~5k unit / integration tests that were using global sandbox
  • Added support for checking bundle-size of all JS files
  • Legacy bluebird promise cleanup
All details on GitHub

What's next

  • Deploy automated release tagger
  • More work on LTS and nightly releases
  • Validator changes to recognize LTS releases
  • Network logging for E2E tests
  • Enforce bundle-size check for JS files that opt in
All details on GitHub

Runtime

Status Update Mon Dec 09 2019

What was accomplished

Lessons learned

All details on GitHub

AMP for Email

Status Update Wed Dec 04 2019

Highlights

  • Held email mini-summit at ACS 2019 in NYC
  • Outlook.com launches AMP for Email to developer preview
  • VerizonMedia merged an OSS Java implementation of the AMP validator
  • Gmail rolls out AMP for Email to Android

WG Meeting Notes (9/12, 10/17, 11/8)

  • Working on unified sender registration process (shared form in review)
  • Received feedback on proposed shared HTML/CSS whitelist standards
  • Consensus on standardizing max email size (200KB), max template SSR size, etc. (#4)
  • More discussion on "CORS for email" proposal (#7)
  • New proposal for email sender authentication (ecosystem-friendly replacement for proxy assertion tokens)
  • Discussed AMP validator versioning and mitigating version skew across providers
  • Consensus on allowing limited CSS attribute selectors (e.g. useful for amp-selector)
  • Proposed new component in AMP4EMAIL spec: amp-autocomplete
  • Self-hosting AMP JS and rollout patterns
  • New outreach channels for email senders and ESPs
All details on GitHub

Focus areas

  • Standardizing AMP for email behavior across providers by using AMP4EMAIL spec as single source of truth
All details on GitHub

Infrastructure

Status Update Fri Nov 01 2019

What we did

  • OWNERS syntax check via API
  • Eliminating use of global sinon
  • Fixed breaks due to new Node LTS
  • Owners bot GCE → GAE (with tree, teams, and syntax guide)
  • Test infra for amp-github-apps
  • Fixed npm security vulnerabilities
  • Premium Travis VMs are live
All details on GitHub

What's next

  • Automate GitHub release creation and improve content
  • Auto-label PRs on release
  • Track bundle-size for extensions
  • Automate node LTS upgrades
  • Upgrade sinon and eliminate the use of global sandbox

All details on GitHub

Runtime

Status Update Fri Nov 01 2019

What was accomplished

Lessons learned

All details on GitHub

Infrastructure

Status Update Wed Oct 02 2019

What we did

  • New build-pipeline check for unknown dependencies
  • Automating GitHub release publication (tracking release CLs)
  • Owners Bot migrated to AppEngine w/ virtual repository
  • Public-facing owners tree & status pages
  • New style check for non-JS files (OWNERS, docs): gulp prettify
  • Lots of small documentation fixes
All details on GitHub

What's next

  • Make owners bot repo agnostic
  • Travis check for OWNERS syntax
  • First steps on monthly release channels
  • Automate GitHub release creation and improve content
  • Track bundle-size for extensions
  • Adopt new bundle-size checker
  • Un-break amphtml-validator for users of older Node versions
  • Automate node upgrades across all package.json files
All details on GitHub

Runtime

Status Update Wed Oct 02 2019

What was accomplished

  • Custom Elements v1 shipped
  • With IE11 cherry-pick
  • CL out for non-polyfill in supported browsers
  • Resources now invalidates children of Scroll boxes
  • Goal after of Layers failure
  • CL for removing query params before navigate (ITP 2.3)
  • CLs for Action Trust
  • Actions should propagate the trust they receive
  • Breaking async cycles

Lessons learned

  • IE11's HTMLElement class does not extend from Function
  • So, HTMLElement.call doesn't exist
  • Errors in cross-origin scripts aren't reported, still.
All details on GitHub

What's next

  • @choumx away at summit & training
  • @jridgewell on release duty
  • Adding crossorigin=anonymous to AMP scripts
All details on GitHub

Caching

Status Update Wed Oct 02 2019

What was accomplished?

  • Removed error categories in AMP Validator, and rev’d to Node 12.
  • Above caused some incompatibility issues, which have now been resolved.
  • Added SameSite=none to AMP CID cookie.
All details on GitHub

Infrastructure

Status Update Tue Oct 01 2019

What we did

  • Owners check is now blocking
  • Enabled automatic reviewer assignment
  • Added bundle-size support for arbitrary binaries / extensions
  • Reorganized build-system and repo root directory for better code ownership boundaries
  • Investigated ways to check owners file changes during CI
  • Presented 2019 Infra highlights during contributor summit
All details on GitHub

What's next

  • Deploy bundle-size checks for a few non-v0.js files
  • Investigate / fix missing PR-deploy button for some folks
  • Add a CI check for OWNERS file formatting
  • Follow up on open requests from contributor summit
All details on GitHub

Runtime

Status Update Tue Oct 01 2019

What was accomplished

  • AMP Contributor Summit

Lessons learned

  • ACS Debrief
  • Let’s improve documentation
All details on GitHub

What's next

  • 📧Email
  • Recursive XHR issue
  • Unified sender registration
  • SSR-dependent “documentHeight” message
  • 🍱React-based AMP components
  • Launch plan
  • ⚙Runtime
  • CSI migration design
All details on GitHub

Runtime

Status Update Tue Sep 03 2019

What was accomplished

  • [WIP] React-based AMP components
  • amp-script: amp-state [WIP], improved docs
  • Fixed DOM clobbering of AMP globals
All details on GitHub

What's next

  • React-based AMP components
  • amp-script + amp-state
All details on GitHub

Caching

Status Update Tue Sep 03 2019

What was accomplished?

  • Prep for SXG Contributor Summit Talk next week
All details on GitHub

Runtime

Status Update Mon Sep 02 2019

What was accomplished

  • Opt in for individual AMP experiments now uses LocalStorage instead of cookies.
  • Tons o' work on amp-bind
  • Perf improvements
  • amp-script launched!
  • Inline scripts support
  • Canvas support
  • LocalStorage support
  • AMP setState support
  • 1-pass build work
  • Concatenate and prune intermediate module dependencies into a single final JS file
  • Fix sourcemaps
  • Fixit week:
  • Faster ads/analytics configuration parsing via JSON.parse
  • amp-list DOM diffing instead of innerHTML
  • Bento
  • Exploring using React internally to simplify components
  • Exploring how to wrap React in AMP and "Bento" modes
  • Layers was disabled and removed
All details on GitHub

What's next

  • AMP Contributor Summit!
  • Continuing Bento explorations
  • Better support for AMP Emails
All details on GitHub

Infrastructure

Status Update Sun Sep 01 2019

What we did

  • Deployed owners bot after design review
  • Owners is now a non-blocking check on Github
  • Enabled brotli size tracking via bundle-size bot (not yet default)
  • Lazy-build is default gulp mode (to disable: --eager_build)
  • Re-wrote dev server as an in-process server
  • Sauce Labs start / stop scripts supported on Linux and Mac OS
  • Fixed bug that caused frequent Travis cache corruption
All details on GitHub

What's next

  • Owners bot: always / never notify owners, auto-assign reviewers, syntax checks
  • Improve Travis greenness
  • Release tooling (“is my PR in production?”)
All details on GitHub

Runtime

Status Update Sun Sep 01 2019

What was accomplished

All details on GitHub

Caching

Status Update Sun Sep 01 2019

What was accomplished?

  • Convert amppkg from dep to go mod
  • Validator verifies that template=”” matches a template id on the page
  • Beginning work on ACME cert renewal in amppkg
  • Welcome Allan Banaag to https://github.com/ampproject/wg-caching
  • <style amp-custom-length-check> special error in AMP Validator

This update includes several previous weeks.

All details on GitHub

AMP for Email

Status Update Thu Aug 01 2019

Highlights

  • Planning in-person meeting at ACS 2019 in NYC
  • Microsoft and VerizonMedia implementations still in progress

WG Meeting Notes (6/14, 7/12, 8/9)

  • Expanded wg-amp4email GitHub membership
  • Progress on alignment across provider-specific HTML/CSS whitelists and AMP4EMAIL spec
  • Consensus on deprecating proxy assertion tokens to avoid senders potentially only supporting large providers
  • Documented AMP viewer implementation guidelines
  • Consensus on approach for shared sender registration/whitelisting (with long-term goal of not having a sender whitelist at all)
  • Discussions on a new CORS mechanism specifically for AMP4EMAIL (#7)
  • Discussions on standardizing AMP MIME part expiry, max size, and max number of AMP elements (#4)
All details on GitHub

Focus areas

  • Adapting the AMP4EMAIL spec to avoid potential ecosystem fragmentation

/cc @jasti

All details on GitHub

Runtime

Status Update Thu Aug 01 2019

What was accomplished

  • Fix-it
  • Launch amp-script
  • jsonConfiguration()
  • amp-list: DOM diffing and error UI

Lessons learned

  • Code branching on const private props are not DCE’d
/** @const */
this.nope_ = false;

if (this.nope_) {
  foo(); // Still bundled.
}
All details on GitHub

What's next

  • amp-script + amp-state
All details on GitHub

Analytics

Status Update Thu Aug 01 2019

What was accomplished

  • Add PAGE_VIEW_ID_64 support
  • Add AD_START AD_END events in video analytics
  • Analytics Linker: No longer decorate internal navigation
  • Load analytics vendor's config lazily (currently running experiment)
  • Resolves NAV_TIMING macro earlier depending on the performance timing signal
All details on GitHub

What's next

  • <amp-experiment> 1.0 implementation review
  • Launch the improvement to load analytics vendor's config
  • Launch & Document nested macro feature
All details on GitHub

Infrastructure

Status Update Mon Jul 08 2019

Release quality

  • Initial version of PR deploy bot
  • Fixed amp-date-picker bug, wrote post mortem
  • Enabled dormant conformance checks for runtime code

Developer experience

  • Migrated CJS runtime deps to ESM
  • Babel transforms for multipass
  • Fixed babel global transform config
  • Fixed gulp watch bug (cancel on compilation error)
All details on GitHub

What's next

  • More work on PR deploy bot
  • Re-deploy owners bot with new reviewers assignment algorithm
  • Generate externs for all typedefs found in 3p/ads/bind
All details on GitHub

Analytics

Status Update Mon Jul 08 2019

What was accomplished

Issue triaging - Triaged 120 issues. Attached component labels. Closed 16 obsolete ones. Prioritized ~20 for fixit week.

Bug Fixes - Investigated a regression caused by [PR] (https://github.com/ampproject/amphtml/pull/22812). Cherrypicked a revert PR to inabox canary.

amp-experiment v2 - support selecting multiple elements PR pending

All details on GitHub

What is next

  • Lazily load analytics vendor config
All details on GitHub

Runtime

Status Update Tue Jul 02 2019

What was accomplished

  • amp-script: Local storage, better reference docs
  • worker-dom: Unwrap author script, upgrade TS, bug fixes and code clean up
  • 1-pass: Source map compat for intermediate bundles
  • AMP4EMAIL: Investigate mustache rules at runtime
  • amp-bind: Fix bug in canary
  • @jridgewell on release duty

Lessons learned

  • Read APIs carefully for DOM traversal edge cases
All details on GitHub

What's next

  • Launch amp-script
  • amp-script: Actions/events as component interface
  • Bento: Start design and prototyping for service decoupling
  • AMP4EMAIL: Error UI for amp-list and DOM diffing
All details on GitHub

Viewers

Status Update Mon Jul 01 2019

Infrastructure

Status Update Sun Jun 02 2019

Release quality

  • Fixed saucelabs safari 12.1 bug
  • Run integration tests on IE 11

Developer experience

  • Refactor of gulp test into gulp unit|integration|a4a
  • WIP: Bot to deploy in-flight PR code for demo / testing (on-demand)
  • Refactored / sped up unminified builds by 15%
All details on GitHub

What's next

  • Redeploy owners bot with new reviewers assignment algorithm
  • Generate externs for all typedefs found in 3p/ads/bind
All details on GitHub

Caching

Status Update Sun Jun 02 2019

What was accomplished?

  • Released amppkg v2.
  • Fixed etag issue with AMP Packager’s certificates.
  • Meta tag fix to transformers in AMP Cache, cease moving them all to head.
All details on GitHub

Analytics

Status Update Sun Jun 02 2019

What was accomplished

New Features - <amp-experiment> support mutating class attribute PR - Introduce requestOrigin to <amp-analytics> requests config fields. Issue - Introduce $EQUALS macro support in <amp-analytics> Issue - Convert all Analytics vendor config from js file to json file. This is part of the effort to lazily load analytics vendor configs. - Change Analytics Linker's default behavior to decorate all subdomains - Introduce $COOKIE macro support in <amp-analytics> Issue - Allow setting custom cookie expiration time when setting cookie with <amp-analytics>'s cookie config Issue

Bug Fixes - Fix regression where Analytics Linker decorate fragment url - Fix a race condition when resolving performanceTiming.loadEventEnd [PR] (https://github.com/ampproject/amphtml/pull/22812) - Fix race condition where video-percentage-played doesn't trigger Issue - Fix nested macro expansion bug Issue

All details on GitHub

What is next

  • <amp-experiment> v2 to support selecting multiple elements
  • <amp-experiment> v2 to support mutating style and src attribute
  • Lazily load analytics vendor config
All details on GitHub

Caching

Status Update Sat Jun 01 2019

What was accomplished?

  • Restore dns-prefetch cache transformers; broken recently.
  • Major changes to Email Validator to better match Gmail filtering rules.
  • Javascript fix to implement the 1000 byte inline CSS limit.
  • Fixed inner != outer issue in amppackager.
  • WIP improving/defining amppkg release process
All details on GitHub

Infrastructure

Status Update Thu May 02 2019

Release quality

  • E2E tests are now a blocking check
    • Viewer / Shadow, Chrome / FF
  • Integration tests on minified runtime
  • Unit tests on Chrome / FF
  • GH status:
    • Code coverage (non-blocking)
    • Failing tests (blocking)

Developer experience

  • Prettier adoption complete!
  • Closure compiler at v20190513
  • Travis CI build / test optimizations
  • Local testing: gulp pr-check
All details on GitHub

What's next

  • Enforce code coverage for lines changed by PRs
  • Move owners code to ampproject repo, reuse common libs
All details on GitHub

Caching

Status Update Thu May 02 2019

What was accomplished?

  • Basic image preloading in amppkg
All details on GitHub

AMP for Email

Status Update Wed May 01 2019

Highlights

WG Meeting Notes (5/10)

  • Shared goal: AMP4EMAIL spec is the source of truth for rendering compatibility in email providers
  • Corollary: Shared sender tooling that works across providers
  • Corollary: Migrating provider-specific whitelists (HTML/CSS) to AMP4EMAIL spec
  • Implementation details of provider adoption e.g. integrating a production-grade AMP validator
  • @ampproject/wg-caching is investigating open-sourcing internal C++ validator
  • Discussed 3P authentication with proxy assertion tokens
  • Discussed wg-amp4email GitHub membership
All details on GitHub

Focus areas

  • Cross-provider compatibility per AMP4EMAIL spec (above)
  • Allowing more components in AMP4EMAIL e.g. amp-animation, amp-analytics

/cc @jasti

All details on GitHub

Infrastructure

Status Update Wed May 01 2019

What was accomplished

Release quality

  • Progress on fixing failing E2E tests
  • IE-11 integration tests are back in blocking mode (tests must opt in)
All details on GitHub

Developer experience

  • Added babel transforms for version numbers and AMP.extension
  • Single pass now uses compiler.jar with zero custom passes
  • Refactored compilation code
  • WIP: PR checks for minified code

What's next

  • PR statuses for integration tests
  • Make e2e tests a blocking check
  • Investigate hermetic AMP tests
  • Prettier implementation
All details on GitHub

Analytics

Status Update Wed May 01 2019

What was accomplished

Fixit week - Added doc for Linker wildcard feature - Added amp-analytics integration tests for PWA - Fixing nest macro bug in var - Writing cookies to eTLD+1 to be consistent with CLIENT_ID - WIP amp-call-tracking bug

amp-experiment v2 - Introducing mutation limit and config size limit

All details on GitHub

What is next

amp-experiment v2 - Working towards GA launch with Optimizely

Linker - Enable Linker for eTLD+1 by default

All details on GitHub

Analytics

Status Update Tue Apr 02 2019

What was accomplished

amp-experiment v2 - Integrated with Action Network, had demo in AMP Conf

All details on GitHub

What is next

amp-experiment v2 - Working towards GA launch with Optimizely

ITP2.2 - Evaluate impact

Bugs - Fix nested macro bug #20816 - amp-call-tracking in AdWords #20551

All details on GitHub

Analytics

Status Update Fri Mar 01 2019

What was accomplished

amp-experiment v2 - Fixed a render-delaying service regression #21193

amp-analytics - a CSP friendly way for user to opt-out tracking WIP

Linker - Allow LINKER_PARAM to be used outside WIP

All details on GitHub

What is next

amp-experiment v2 - Version bump - Implement config parser - Security review

Linker - Allow LINKER_PARAM to be used outside cookie writer

amp-analytics - a CSP friendly way for user to opt-out tracking

All details on GitHub

Analytics

Status Update Sat Feb 02 2019

What was accomplished

amp-experiment v2 - bench mark for mutation operations. decided on mutation limit.

Linker - Support wildcard in destination domain setting

All details on GitHub

What is next

amp-experiment v2 - Version bump - Implement config parser - Fix Render-delaying services - Security review

Linker - Allow LINKER_PARAM to be used outside cookie writer

amp-analytics - lazy load vendor config design - a CSP friendly way for user to opt-out tracking

All details on GitHub

Caching

Status Update Wed Jan 02 2019

What was accomplished

  • AMP actions validator rules now available.
  • Correct handling of document fragments in the cache. #19688
  • Transformed AMP SXG now include
  • version of transformers used
  • original CSS string fragments
  • protect against data:... in CSS
  • css escaping logic
  • Validation of transformer cdn and version
All details on GitHub

What's next

  • Transformed AMP SXG to
  • strip comments from script tags
  • Validator to enable/disable tagspec based on type identifiers.
All details on GitHub

User Interface & Accessibility

Status Update Tue Mar 03 0201

What was accomplished

  • Various amp-render PRs out
  • amp-next-page analytics amp-next-page-scroll bug
  • amp-tiktok e2e tests out
  • SESSION_ID macro design review
  • amp-carousel event propagation to viewer bugfix
  • US Privacy String sent to doubleclick and adsense in A4A

Lessons learned

All details on GitHub

What's next

  • Continue work on amp-render (placeholder + fallback, dynamic resizing, amp-script case)
  • SESSION_ID implementation
  • Submit amp-tiktok PRs
  • amp-img depreciation
  • User Agent Client Hints low entropy in amp-analytics
  • Demographics and Interests Analytics in amp-analytics
All details on GitHub