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 01 2022What was accomplished
AMP Story Paywall
- 📖 amp-story-subscriptions documentation #38179
- ✨ Validator changes to launch amp-story-subscriptions #38194
Story analytics
- ✨ Added previous page index #38289
Story videocache
- 🐛 Video cache doesn't add crossorigin attribute to video element #38222
- 🔥 Apply hasAudio flag behind experiment #38285
Story localization
- 🚀 Removed localization strings from js #38280
Story video
- 🐛 Prerendered video unmounted fails to play #38263
- 🐛 Prerendered video unmounted fails to play #38264
Story bodymoving
- ✨ Support amp-bodymovin-animation on amp-story-grid-layer #38239
Story mediapool
- 🔥 Fix videos from mediapool with noaudio don't have audio when reused. #38216
Others
- Bad loading experience in Story: Flash of white between video poster and video playback #31358
What's next
Monetization
Status Update Mon May 09 2022What was accomplished
Amp monetization - 2 new ad network integrations - Google ads now having top sticky ads launched
Story ads - New round of auto ad+CTA experiment being launched - New CTA button option being tested - Progress bar overflow bug fixed - Story ads click rate decrease investigation
Performance
Status Update Mon May 09 2022What was accomplished
- Finished work on new render blocking font loading
- Written design document for version locking alternate binaries (such as ones without css in the JS binary)
Lessons Learned
Stories
Status Update Mon May 02 2022What was accomplished
Story Preview
- ✨ Allow all story pages and grid layers to be rendered in preview mode #38030
- ✨ Enable stories to play when in preview mode #38121
- 🐛 Enable amp-video to play in preview mode #38149
amp story 360
- 🐛 Remove GL context handling #38144
Amp story captions
- Allow Players to get/set the captions state #37898
- Render video captions with amp-story-captions when in an amp-story doc and served from cache #37899
- Implement default, overridable CSS #37900
- ✨ style-preset attribute with styles #37967
- ✨ get and set captions state from viewer #38009
i18n
- Do not use concatenation in localizable UI strings #38060
amp story shopping
- 📖 documentation #37987
- 🌐 i18n "reviews" string capitalization description #38032
- 📖 CTA casing in docs. Remove "draft" from doc metadata. #38119
amp-story-shopping
Story attachment
- 🐛 Fix cta-image=none showing link icon #38109
Story system-layer
- ✨ Add CC Icon that toggles captions #37884
amp-animation
- ✨ Adds a new attr that allows to override pan scaling factor. #37965
Others
- amp-story-cta-layer I2D #34450
- 🚀 amp-story: Use Services.urlForDoc instead of util functions #38026
- 🐛 amp-story-shopping does not display CTA if all tags are invalid and Fixes remote shopping data loading on refresh with page attachment open #38035
- 🌐 amp story shopping "Shop now" CTA casing #38096
- 🧪 Experiment: story auto advance and new cta button #38097
- 🐛 Move directories of md files for broken links (story-shopping, story-page-attachment, story-page-outlink) #38134
- Added the possibility to get page count to the story messaging api #38170
What's next
- amp story captions update docs #38146
- amp-video cache through amp-orig-src #37425
- Bad loading experience in Story: Flash of white between video poster and video playback #31358
Monetization
Status Update Mon May 02 2022What was accomplished
Story ads - Fixed the issue that the progress bar appears while seeing ads
Stories
Status Update Fri Apr 08 2022What was accomplished
amp-animation
- ✨ Adds a new attr that allows to override pan scaling factor. #37965
Story performance
- Not load all page attachment images when loading story #35534
- Lazy-load non-critical extensions #37680
- 🚀 Fix CLS caused from AMP runtime CSS showing story before amp-story.css #37990
Story animations
- 🐛 Center vertical panning #38017
amp-story-shopping
- Add productDescription to all templates and max length #37993
amp story captions
- 🐛 Close voice tags in example html .vtt files #37977
Page Attachments
- 🚀 Ensure that the page attachment container is not inadvertently rendered by the AMP Resources manager #37961
- 🖍 Add the 'Read more' string for translation #37991
amp story shopping
amp story page attachment
- 🐛 add path metadata docs #37988
AMP Story Paywall
- ✨ Handles grant status and show/hide paywall dialog in amp-story-subscriptions #37892
Story analytics
- 🐛 Fix prerender analytics not firing #37975
Story localization
- 🚀 #37969
Others
- ♻️ Story: refactor to treat story ad pages as story pages #37940
- 🚀 amp-story: Use Services.urlForDoc instead of util functions #38026
What's next
- ad loading experience in Story: Flash of white between video poster and video playback
- ✨ [Story interactive] Enable interactive disclaimer dialog
- 🐛 [Story performance] Disabling animations on initial page when first loaded
- amp-story-player: previous and next story buttons not visible in Safari
- [I2R] amp-video cache through amp-orig-src
- 🌐 [amp story shopping] i18n "reviews" string capitalization description
- ✨ [amp-animation] Adds a new attr that allows to override pan scaling factor.
Performance
Status Update Sat Apr 02 2022What was accomplished
- created document for render blocking font loading
- added render blocking font loading classes (to be reviewed)
Lessons Learned
What's Next
- additional monitoring for server services
- amp e2e use mjs files
- design document for version locking alternate binaries (such as ones without css in the JS binary)
Performance
Status Update Fri Apr 01 2022What was accomplished
- amp story translations server changes design document
- amp-story request transformer changes to handle translation language fallback
Lessons Learned
What's Next
- amp e2e use mjs files
- design document for version locking alternate binaries (such as ones without css in the JS binary)
Stories
Status Update Wed Mar 02 2022What was accomplished
amp story page attachment
- CTA tab-able inline CTA #37933
video cache
- ✨ Append captions track from cache response #37893
Story localization
Story performance
- 🚀 Remove FOUT on font loading of amp-story-education #37928
- 🚀 Remove CLS from system layer when adding buttons #37929
- 🚀 Set disabled animation on first page to 1 #37157
Observable
- ✨ Make observable safe to remove handler while firing. #37887
Story system-layer
- 🚮 Removing unused storyHasAudio state property #37220
amp story shopping
- Remove multi line border radius code #37808
- ✨ Change productBrand to productVendor and make it optional #37897
What's next
- Launch amp-story-shopping (analytics, validation & documentation)
- amp-story-captions (customizable CSS with smart default, automatically use amp-story-captions component)
Monetization
Status Update Wed Mar 02 2022What was accomplished
Amp monetization - Added synchronous UACH macro for amp-ad-exit use - Analysis of top sticky ads metrics
Story ads - Refactoring story pages to include ad pages - Analyzing a regression happened on story ads performance
What's next
Amp monetization - Ads auto advance launch
Story ads - Ads progress bar visual update - Different ads performance analysis
User Interface & Accessibility
Status Update Tue Mar 01 2022What was accomplished
Alan * OOO This sprint
Beck * Presented Bento resize guard at design review
Dhruv * Investigated changes required for amp-analytics to be compatible with GA4 * Investigated bug relating to amp-img and amp-render
Keshav * Maintainance work on tests, such as remap dependencies, enhancements to standalone unit tests and e2e tests
William * Worked with formidable on their porting of bento PRS
Lessons learned
What's next
- Implement bento resize guard
- Launch mustache support for bento date display and date countdown web components
- Upgrade mustache in third_part/
- Continue to enhance testing
Stories
Status Update Tue Mar 01 2022What was accomplished
Story localization
- ✨ Use inlined JSONs for localization bundles #37836
Story attachment
- 🐛 Opening outlink error for closeButton being null #37833
amp story shopping
- PDP Details section open / closing state setting #37763
- Support newlines in productDescription #37787
- 🖍 Border radius on single image in RTL #37803
- ✨ Optionally render rating #37805
- Error when loading story on page that uses remote data #37749
What's next
- Shipping the shopping components
- Finish story subscriptions component
- Lazy load localization strings
Monetization
Status Update Tue Mar 01 2022What was accomplished
Amp monetization - Fixed a Google Ads issue breaking ads' FIE rendering - Auto advance launch experiment data analysis
Story ads
What's next
Amp monetization - Ads auto advance launch
Story ads - Ads progress bar visual update
Monetization
Status Update Wed Feb 02 2022What was accomplished
Amp monetization - Auto ads to allow vendors to modify remote ads config - Fix viewer and top sticky ads conflict: now the ads will show below the anchor
Story ads - Ad badge and icon position update PR
What's next
Story ads - New design: Move the ad badge to bottom - Auto advance launch - Ads progress bar visual update
Stories
Status Update Tue Feb 01 2022What was accomplished
Story video
- 🚀 Use the inlined video response instead of issuing an XHR request, for the 1st video of the 1st web story page #37499
Story documentation
- 📖 Fix page attachment docs location #37669
amp story page attachment
amp story shopping
- Product tag functionality #36734
- Attachment template logic #36735
- PLP template logic #36736
- PDP template logic #36738
- PDP carousel #37091
- 🐛 Do not render shopping CTA if no shopping tags are on the page #37503
- ✅ Move i18n CTA label logic into shopping-attachment component #37515
- ♻️ Rename tag-id to product-id #37527
Others
- 🖍 Added shopping tag flip on too far position to the right #37195
- ✨added camelCase to amp-story-shoppping component #37533
- 🐛 amp-story-shopping Added correct margins for RTL mode #37568
What's next
- Shopping Dev Preview
- Amp story subscriptions (paywall)
- Performance
Monetization
Status Update Tue Feb 01 2022What was accomplished
Amp monetization - Vendor config updates
Story ads - Ad badge and icon position update - New analytics macro update: experiment started - Auto advance launch starting
What's next
Amp monetization - Fix the top sticky ads/viewer banner conflict issue
Story ads
Stories
Status Update Tue Jan 04 2022What was accomplished
Performance
- 🧪 Lazy load share menu on desktop on-demand #37044
- 🚀 Disable animations on first page if story is transformed #37135
- ♻️ Extract performance service into variable #37137
- 🚀 Remove unused strings from localization bundles #37229
- 🚀 Remove share menu from main amp-story bundle #37235
- 🌐 Removed sound text localizations after removal from system layer #37218
- 🚀 Move share menu to separate bundle #37179
Pagination buttons
- 🐛 Pagination forward button visibility state #37098
Shopping
- Set active product data in store service #37013
- Optional product-tag-text for shopping tag #37105
- 🖍 Prevent shopping tag dot and image from shrinking #37149
- Currency i18n #37246
System layer icons
- 🖍 Replaced icons and styles #37122
Videos
- ✨ Added ACAO headers #37160
What's next
- Reduce bundle size further with more removal of page-attachment ui, localization strings, and CSS
- Work on shopping tags and attachment
- Make system layer more responsive, add CC icon and update "Ad" tag
Monetization
Status Update Tue Jan 04 2022What was accomplished
Amp monetization - Web interstitial implementation PR
Story ads - Ad badge overlapping with close button fix
What's next
Amp monetization - Incoming ad network integrations
Story ads - Discover more ways for publishers to monetize - Story ads meta analytics tag implementation
Performance
Status Update Tue Jan 04 2022What was accomplished
- 🚀 Launched amp-story inlining css experiment.
- 🐛 Fix "latestVersion" bug in amp-toolbox.
- 🧪 Created tests for
amp-toolbox
AmpStoryCssTransformer in regards to LTS. - 💅 Add TS to Core and Bento.
- 🚀 Migrated build system to esbuild.
- 🐛 Fixes for AMP LCP for various LCP issues in amp-analytics.
What's Next
- Manual testing for amp-geo experiment
- Amp cache url rewriting code in amp-toolbox
- Typechecking more Bento directories
- WASM Jolt prototype
Stories
Status Update Mon Jan 03 2022What was accomplished
amp story shopping
Story analytics
- 📖 Use amp-story-share-menu for share analytics #37475
- ✅ Add test to check sharing happens with the right tag and eventType #37488
Amp story page attachment
- Refreshing page while attachment is open throws error. #37430
Story video
- ✨ Check if cache response contains audio #36283
Story performance
- 🚀 Remove interactive host styles #37472
amp story
- 🐛 Change toggleAttribute to set/removeAttribute #37420
What's next
- Shopping PLP and tags
- Amp story subscriptions (paywall)
- Performance
User Interface & Accessibility
Status Update Sat Jan 01 2022What was accomplished
- Fixed long outstanding bug where client id is missing on next page in viewer (#36984)
- Continue work on Bento refactor to update the class hierarchy for Bento & AMP components
- Continue work on React storybook tests
Lessons learned
What's next
- Build and publish @bentoproject/core
- Remove
bento
experiment flag - Start Investigating bento-analytics, bento port of amp-analytics
- Finish React storybook tests
Stories
Status Update Sat Jan 01 2022What was accomplished
Story performance
- 🚀 Move building share menu to share-menu.js #37209
- 🚀 Move open page attachment UI to extension #37278
- 🚀 Remove logging and development UI from the amp-story bundle #37279
- 🚀 Remove affiliate links #37280
- 🚀 Remove story access #37281
Story attachments
- 🐛 Fix attachment Firebase demos #37335
Story system layer
amp story
- 🐛 Replay/next page button bug fix #37316
amp story shopping
- Currency i18n #37126
Story documentation
- 📖 Cleanup experiment descriptions #37290
Others
What's next
- Bad loading experience in Story: Flash of white between video poster and video playback #31358
- [Story video] Check if cache response contains audio #36283
- amp-story-player: previous and next story buttons not visible in Safari #37211
Monetization
Status Update Sat Jan 01 2022What was accomplished
Amp monetization - Web interstitial user experience discussion
Story ads
- Ad badge overlapping with close button fix UX discussion
- New analytics macro proposal: used for story ads
- Analyzed story ads apparent regression
- amp-img server side rendering launched on Google transformer
What's next
Amp monetization
Story ads - Discover more ways for publishers to monetize - Story ads meta analytics tag implementation
Monetization
Status Update Mon Dec 06 2021What was accomplished
Amp monetization - Web interstitial implementation PR
Story ads - Decided: add story ads meta tags for analytics purposes - Investigated reported story ads bugs
What's next
Amp monetization - Web interstitial use storage review: for frequency capping - 3p iframe going to have a deterministic subdomain
Story ads - Discover more ways for publishers to monetize
Monetization
Status Update Mon Nov 08 2021What was accomplished
Amp monetization - amp-ad sticky ad query parameter fix and auto hiding fix for doubleclick - Reviewed proposals for Bento Google Ads
Story ads - Ads CTA missing investigation
What's next
Amp monetization - Web interstitial implementation - Ads transformer: experiment with amp-pixel server-side rendering removal
Story ads - Collect story metrics from traffic using Adsense/DoubleClick
User Interface & Accessibility
Status Update Fri Nov 05 2021What was accomplished
- move shared dependencies into
bento.js
- e2e testing of bento standalone components
- preparation for bento launch
- refactoring stories templating to use JSX (instead of
htmlFor()
and other templating strategies)
Lessons learned
What's next
- release Bento (🎉)
- bentojs.dev + next.js app for documenting bento usage
Stories
Status Update Fri Nov 05 2021What was accomplished
Story performance
- 🚀 Remove default translation and use english as default #36632
- 🚀 Rewrite styles only on desktop one-panel or bot rendering #36692
- 🚀 Remove media query matcher #36747
amp story shopping
amp story page advancement
- ♻️ handle clicks on drawer #36715
Story
- storyContentLoaded event doesn't fire when loading story on page index != 0 #36571
Others
What's next
- Continued work on the story shopping initiative
- Investigation of technical approaches for embedding stories
- Investigation of compatibility of
amp-subscriptions
inamp-story
- Investigation of performance and user experience improvements for initial page load
Stories
Status Update Tue Nov 02 2021What was accomplished
Amp story shopping
- Get and set JSON data #36699
- Add Object typedef for shopping data #36911
- ♻️ Attachment as element child #36989
Story performance
- 🚀 Use dvh if available, instead of vh #37003
Story responsiveness
- 🐛 Need to overflow visible with presets #36912
Story audio
- 🖍 Move audio equalizer from video to story system layer #36264
Documentation
- 📖 Added amp-video documentation that cache is not compatible with crossorigin #36772
amp story 360
- ♻️ Use JSX #36942
amp story panning media
Hint: hit control+c anytime to enter REPL.
What was accomplished
Amp story shopping
- Get and set JSON data #36699
- Add Object typedef for shopping data #36911
- ♻️ Attachment as element child #36989
Story performance
- 🚀 Use dvh if available, instead of vh #37003
Story responsiveness
- 🐛 Need to overflow visible with presets #36912
Story audio
- 🖍 Move audio equalizer from video to story system layer #36264
Documentation
- 📖 Added amp-video documentation that cache is not compatible with crossorigin #36772
amp story 360
- ♻️ Use JSX #36942
amp story panning media
amp-story-page-attachment
- ♻️ revise cta text in docs #36426
Story documentation
- 📖 Update embedded components documentation #36904
Story embeds
- 🚀 Remove support for expanded components like amp-twitter #36851
rel=stylesheet
- ✨Allow link which points to the amp-story-1.0.css in a transformed amp document #36844
Others
- Web Stories preview in FireFox browser has virtual devices spilling off screen #36964
What's next
- ✨ [Story interactive] Enable interactive disclaimer dialog
- 🐛 [Story performance] Disabling animations on initial page when first loaded
- ✨ [Story video] Check if cache response contains audio
- 🚀 [Story performance] Removed duplicated share styles [WIP]
- 🚀 [Story performance] Only change dvh if the transformer doesn't do that already. Bad loading experience in Story: Flash of white between video poster and video playback
User Interface & Accessibility
Status Update Sat Oct 02 2021What was accomplished
- Manual verification of Bento standalone mode + updating snippets in README
- E2E testing of Bento standalone mode
bento-timeago
bento-youtube
bento-fit-text
- Shipping Bento standalone as part of NPM
- Shipping
bento.js
- Remove
dist/
from z-index CSS checks
Lessons learned
What's next
- Moving shared dependencies into
bento.js
- Rendering dynamic templates in Standalone mode without Mustache
- AMP implementation of
dailymotion
in Bento
Stories
Status Update Sat Oct 02 2021What was accomplished
Story performance
amp-story-page-outlink
- 🐛 Force page outlinks to use target='_top' in order to prevent navigation from breaking on Safari #36428
story-ads
- 🐛 use target=_top #36419
amp story 360
- 🚮 Remove unnecessary .then statement #36409
Story documentation
- 📖 Added that autoplay is required on videos #36398
Story devtools
- 🐛 Fixed validator not loading #36404
Story loading
- 🐛 Send storyContentLoaded during prerendering #36307
Amp story panning media
- 🐛 Set width and height of amp img element #36340
desktop one page
- 2021-background preset not optimally aligning #35796
What's next
- Shopping experience development -LCP improvements
Monetization
Status Update Sat Oct 02 2021What was accomplished
Amp monetization - amp-lightbox amp-ad sticky css conflict fixed - amp-ad sticky attribute validator updated to allow top and bottom-right - amp-ad sticky ad query parameter fix and auto hiding fix for doubleclick
Story ads - Analytics timestamp missing issue is fixed - Exploration of ideas to loosen amp ads requirement - Fixed bug with yellow progress bar not filling correctly - Fixed bug around using top=_blank on swipe
What's next
Amp monetization - sticky ad experiment restart - Web interstitial ads frequency capping discussion
Story ads - Analytics redesign - Run auto-advance with new CTA to monitor impact - Finish doc for adding new inventory - New demo page for opt-in experiments
Stories
Status Update Fri Oct 01 2021What was accomplished
Story performance
- 🖍 Set css units on desktop for supports-landscape and regular one-panel #36033
- 🖍 Remove standalone classes #36127
Story video
- Add codec information received from video cache #36228
amp-story-panning-media
- 🐛 Set width on amp-img el #36217
Others
- 🚮 Clean up dead amp-sidebar code within stories #36178
- 🧪 Set animations experiment to 0 #36248
- amp-story-shopping design document.
What's next
- Developing amp-story-shopping design document
- Story video codec development
Monetization
Status Update Fri Oct 01 2021What was accomplished
Amp monetization - Sticky ads gutter launched - amp-sticky-ad to amp-ad upgrade experiment ran again: better-performing than before-fix, but still needs investigation - amp-auto-ads supports inserting top sticky ads - Resolving big backlog of new network integration PRs
Story ads - Analytics redesign discussion - Auto-advance launch analysis
What's next
Amp monetization - amp-sticky-ad to amp-ad upgrade experiment investigation - Fast fetch ad network timestamps
Story ads - Analytics redesign - Analytics timestamp investigation - Run auto-advance with new CTA to monitor impact
Bento
Status Update Fri Oct 01 2021What was accomplished 🍱
- bento cdn & npm builds + bento css
- documentation
- e2e testing
- knowledge transfer
Stories
Status Update Thu Sep 02 2021What was accomplished
Attachment Forms
- 🖍 Shorten the width of the publisher domain label #36114
- ✨ Create status indicators that display the page attachment form's submission status #36039
Amp story player
- ✨ Launch panel player #35423
Panning media
Story interactives
- 📖 Added docs for info dialog #36079
Story performance
- 🖍 Added CSS rules for units, and exaple stories #36007
Video
- fallback on origin sources if request to video cache fails #36071
Others
- Amp-story translations #35333
- 🖍 Restrict page attachment sticky header to non-iOS, non-Safari surfaces #36133
What's next
- Amp story shopping technical design
- LCP improvements
Monetization
Status Update Thu Sep 02 2021What was accomplished
Amp monetization
- Sticky ads gutter code complete (120px wide, on viewport >1024px wide)
- amp-sticky-ad to amp-ad upgrade experiment fix
- attribution-reporting
work code complete in viewer
Story ads - Pipeline fixes - Analytics improvements docs
What's next
Amp monetization - Web interstitial new design to be on the design review
Story ads - Launch new placement algorithm - Creative type based analytics
Bento
Status Update Thu Sep 02 2021What was accomplished 🍱
amp-reddit
: testingamp-iframe
: implement viewability featureamp-mathml
: converted to Bentoamp-lightbox-gallery
: bug fixesworker-dom
: improving performance- more documentation!
What's next ⏩
amp-dailymotion
: converting to bentoamp-analytics
: converting to bentoamp-jwplayer
: converting to bento- publishing bento packages to npm
Stories
Status Update Wed Sep 01 2021What was accomplished
Story performance
- 🚀 Set "load first page only" experiment to 50% #35770
- 🚀 Set up story prestyle #35829
- ♻️ Simplify templates CSS by using attr instead of class #35861
- 🚀 Set load first page only experiment to 1 #35970
Story animations
- 🐛 Fix prerender resume animation #35987
Story videos
- 📖 Add video documentation for Google cache #35609
Story images
- On iOS 15 stories, long pressing on images expands the image #35381
Amp story page attachment
- 🐛 Propagate title attribute to draggable drawer header #35863
Animation presets
- Desktop panels mode, start animations after page transition #29753
Others
- amp-story-page-outlink default value for cta-accent-color attribute #34983
- Pause button on story player not functional #35640
- 🐛 Reset page attachment scroll position upon attachment close #35778
- Remove desktop 3 panel UI and associated code. #35623
- Resolve ScreenOrientation lock Illegal invocation error on Chrome #35659
- 🐛 Toggle desktop attribute on tooltip overlay #35772
What's next
- Shopping integration in stories
- Translated strings update
Monetization
Status Update Wed Sep 01 2021What was accomplished
Amp monetization
- attribution-reporting
e2e testing
Story ads - Ecosystem analytics improvements - New CTA experiment starting - auto-advance launch rollout
What's next
Amp monetization
- attribution-reporting
support across different viewers
- web interstitial ads
Story ads - Monitor new CTA performance - Scoping auto-generated DV3 ads
Performance
Status Update Wed Sep 01 2021What was accomplished
- did investigatory work for non amp team [internal]
Lessons Learned
What's Next
- get baseline performance numbers for amp-story
- possibly incorporate changes needed to accomodate stories requirement for SemiTransformedDocument
Bento
Status Update Wed Sep 01 2021What was accomplished 🍱
Components
BentoDailymotion
code completeuseIntersectionObserver
custom hook merged and in use byamp-timeago
,amp-iframe
BentoCarousel
bug fixes in RTL support- Added support for toggling placeholder and fallback and consumed in AMP mode ampproject/amphtml#35821
- Renamed Bento Preact components to be
Bento
prefixed
Tooling
- Ongoing Storybook migration from knobs (deprecated) to controls
- Storybook doc updates to
testing.md
and styling recommendations - Fix for
eslint-plugin-react
where it would consider lowercase names (<div>
) as used variables https://github.com/yannickcr/eslint-plugin-react/pull/3070 README.md
files created for npm publishing for existing Bento components
What's next ⏩
- Build extension twice for Bento vs. AMP Web Components (bento-.js and amp-.js)
- Last mile bits for documentation following last sprint
amp-mathml
/bento-mathml
/BentoMathml
continued progressamp-dailymotion
/bento-dailymotion
continued progress
Stories
Status Update Tue Aug 03 2021Amp story
- Resolve ScreenOrientation lock Illegal invocation error on Chrome #35659
- 🐛 Toggle desktop attribute on tooltip overlay #35772
Story performance
- 🚀 Set "load first page only" experiment to 50% #35770
Animation presets
- Desktop panels mode, start animations after page transition #29753
Others
- Pause button on story player not functional #35640
- 🐛 Reset page attachment scroll position upon attachment close #35778
- [Page Attachment Forms] Remove the soft keyboard from view when the page attachment is closed #35798 (PR pending)
What's next
- Remove desktop 3 panel code #35623
- [Panning media] support portrait images and officially launch #31515
- [Story video] Optimize media play/pause operations on page navigation #29508
- [Story performance] Set up story prestyle #35829
- Allow amp-form in Story Page Attachments #35569
Bento
Status Update Tue Aug 03 2021What was accomplished 🍱
amp-date-display
: SupporttimeZoneName
andtimeZoneNameShort
amp-iframe
: wrap iframe in shadow-dom and ContainWrapper- fixed broken npm bento packages
- fixed sporadic render issues on SSR'd AMP pages
What's next ⏩
- Documentation Sprint
useIntersectionObserver
: custom hookamp-tiktok
: fixing CLS issuebento-dailymotion
: wipbento-reddit
: wip- fix Placeholder / Fallback toggling across Bento components
Stories
Status Update Mon Aug 02 2021What 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
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
Monetization
Status Update Mon Aug 02 2021What was accomplished
Amp monetization - Web interstitial ads design review - f.js deprecation notice started to be sent out
Story ads
What's next
Amp monetization - Server-sider controlled experiment of rendering amp-sticky-ad with amp-ad ramping up this week - Further work on web interstitial ads UI - Left/right sticky ads experimental support w/ a conservative size limit
Story ads
Bento
Status Update Mon Aug 02 2021General updates 🆕
- Welcome to the team @kvchari 🎉 🎉 🎉
What was accomplished 🍱
amp-audio
implementation has begunamp-brightcove
port completeamp-copy
implementation has begunamp-dailymotion
port in progress (Preact layer done)amp-iframe
investigation against native iframe - findingsamp-lightbox-gallery
port complete, barring gestures featureamp-sidebar
port complete, also barring gestures featureamp-render
launch follow-up bug fixesamp-twitter
placeholder bug fix
What's next ⏩
amp-analytics
early investigations and designamp-audio
continued progressamp-copy
discussion at design reviewamp-dailymotion
port in progress (AMP layer)amp-iframe
continued progress- Investigate existing gestures library and solutions going forward in Bento
User Interface & Accessibility
Status Update Sun Aug 01 2021What was accomplished
- Fixed two
amp-render
issues re: single template root element. - Autoplay workaround for
amp-dailymotion
(Classic) amp-consent
:- Remove two old experiment flags.
- Allow
SOURCE_URL
substitution. - Support
CONSENT_INFO
andCONSENT_PAGE_VIEW_ID_64
- Investigate
promptUI
flashing issue, design for a new API to prevent it. - Clearing up undefined behavior for
amp-story-consent
- Remove redundant
amp-story
check foramp-audio
actions - Fix CSS selector leaking into rendered amp.dev examples
- Forbidden terms maintenance
- Progress on Bento ports and compatibility:
amp-iframe
resizingamp-analytics
design- Port of
amp-dailymotion
- Port of
amp-reddit
Lessons learned
What's next
Kidist leaves us this week. Make sure to say goodbye!
- Finishing features for
amp-iframe
(intersection entries) - Fix for an
amp-next-page
issue - Progress on Bento ports and compatibility:
amp-iframe
resizingamp-analytics
design- Port of
amp-dailymotion
- Port of
amp-reddit
- Building separate
bento-*
binaries amp-consent
: Support relabeling of post-prompt button according to server response.
Stories
Status Update Sun Aug 01 2021What was accomplished
Story performance
- Disable animations on first page to 50% #35476
- Added load outside viewport to experiments #35548
- Set "load inactive pages outside viewport" experiment to 0.5 #35653
Amp story
Story sidebar
- Removed sidebar from docs #35616
Page attachments
AMP Story Docs
- Animation information hard to find #35398
Story Player
- Swipe animation appears to be broken on some integrations #31193
Others
- Amp Story Desktop One Panel I2I #34479
- Amp Story Desktop One Panel I2S #35267
- amp-story-desktop-one-panel background-blur Do not support images with transparency. #35441
What's next
- Launch performance experiments
- Launch new interactive components
- Launch forms in page attachments
Monetization
Status Update Sun Aug 01 2021What was accomplished
Amp monetization - Investigating an issue reported with respect to ads on Safari 11 - User agent client hint parameters proposed and implemented - Permitting ad attribution reporting - Correct Doubleclick extension ad request parameters for amp-ad sticky ads - Clean up amp-ad vendor list on amp.dev (Adding missing ones) - Preventing high-frequency repeated ad resizing requests
Story ads
What's next
Amp monetization - Follow-up work on web interstitial ads - Restarting amp-sticky-ad to amp-ad experiments
Story ads
Bento
Status Update Sun Aug 01 2021What was accomplished 🍱
- Auto-envelope is ready
amp-analytics:0.1
feature scoping and design discussionsamp-facebook-*
components now valid AMPamp-iframe
runtime-less dynamic resizing viaIntersectionObserver
in progress https://github.com/ampproject/amphtml/pull/35566amp-ima-video
in progress- Preparing example documentation for React/Preact and Bento modes
ProxyIframeEmbed
extrapolation from AMP-specific runtime dependencies (build constants,getMode
, etc.)
What's next ⏩
amp-analytics
Services inventory and investigationamp-dailymotion
WIPamp-iframe
WIPamp-ima-video
WIPamp-reddit
WIP- React/Preact compatibility improvements
User Interface & Accessibility
Status Update Wed Jul 07 2021What 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
andamp-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
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
Bento
Status Update Wed Jul 07 2021What was accomplished
- auto envelope changes to use restrictive methods
- IE polyfill for new Set
amp-lightbox-gallery
basic, grouping, captioning, and uniqueness featuresforceChangeHeight
->attemptChangeHeight
in Bento components for the AMP layer- started on
amp-iframe
amp-render
final launch bits, includingresizeToContents
, validations, and blogamp-tiktok
is merged- getting Bento compiler thread safe
- Remove
amp-viz-vega
- Consolidating
amp-facebook
discussed at design review + implementation overflow
support inPreactBaseElement
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
buildCallback
s - separating pieces that modify DOM, includingamp-fit-text
amp-dailymotion
implementation
User Interface & Accessibility
Status Update Thu Jul 01 2021What 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.
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
Monetization
Status Update Thu Jul 01 2021What 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
What's next
Amp monetization - Web interstitial ads - Experiment rendering amp-sticky-ad with amp-ad
Story ads - Launch auto-advancing ads
User Interface & Accessibility
Status Update Mon Jun 07 2021What 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 changeamp-render
validation changes- launched
amp-tiktok
amp-dailymotion
bento version PRs
Lessons learned
What's next
- Session Analytics:
LastEventTimestamp
andEngaged
- New AMP component for quicklinks, design
amp-iframe
bugamp-render
finish misc PRs-
amp-dailymotion
continue work
Monetization
Status Update Mon Jun 07 2021What 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
What's next
Amp monetization
Story ads - Start yellow progress experiment - New CTA design - Viewer experiment coordination design and review
Bento
Status Update Mon Jun 07 2021What 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
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
User Interface & Accessibility
Status Update Wed Jun 02 2021What was accomplished
- Finished final details for
amp-tiktok
- Continued work on bento
amp-dailymotion
- Landed
SessionId
foramp-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
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
Monetization
Status Update Wed Jun 02 2021What was accomplished
Amp monetization - Top sticky ad validator change - 3p Vendor splitting launched to 100%
Story ads - Starting story experiment for auto advance
What's next
Amp monetization
- Web interstitial ads performance considerations
- Deprecate <amp sticky
with empty sticky attribute
Story ads
User Interface & Accessibility
Status Update Sun May 02 2021What 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 documentationamp-tiktok
placeholder, loader, and validation
Lessons learned
What's next
- Bento dailymotion component
- Supplementary session data support
amp-render
look into layout container support + miscellaneous tasksamp-next-page
issues- Look into
amp-consent
reported issue
Monetization
Status Update Sun May 02 2021What 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
What's next
Amp monetization - AMP domain migration - between-navigation ads design - amp-img to img migration
Story ads
Bento
Status Update Sun May 02 2021What was accomplished
amp-facebook
consolidating internal implementations and testing in progressamp-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
)
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
User Interface & Accessibility
Status Update Sat May 01 2021What was accomplished
- Supporting text fragment highlight within the Viewer
amp-render
URL variable substitution supportamp-analytics
Session Analytics design review- Remove
amp-consent
consent storage limit on the Viewer
Lessons learned
What's next
- Session Analytics design review Privacy review for supplementary data
amp-analytics
SESSION_ID
low entropy supportamp-consent
reducing LCP for inline consent promptsamp-render
fallback/placeholder support + miscellaneous fixesamp-next-page
bugfixes
Bento
Status Update Sat May 01 2021What was accomplished
- Guide to building a Bento video player
- Support
amp make-extension
flag--nojss
amp-video-iframe
merged with validationamp-vimeo
merged with validationamp-ima-video
port in progress- Requires restructuring
ProxyIframeEmbed
for combined use withVideoBaseElement
- 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 toamp-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 withamp-img
in progress
What's next
- Continue in-progress tasks:
amp-ima-video
amp-sidebar
toolbarimg
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 forplaceholder
User Interface & Accessibility
Status Update Fri Apr 02 2021What 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 functionalityamp-next-page
bugfix for replacing history incorrectly when served in Vieweramp-tiktok
: Validator support, loader support, and fallback support
Lessons learned
What's next
- Session Analytics Design Review
- Intern planning
amp-render
url replacement supportamp-render
placeholder and fallback support- more
amp-next-page
P1s amp-img
deprecationSESSION_ID
inamp-analytics
Monetization
Status Update Fri Apr 02 2021What 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
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
Bento
Status Update Fri Apr 02 2021What was accomplished
amp-facebook-comments
initial implementationamp-render
xssi-prefix
and subobject support- URL replacement substitutions in review
amp-sidebar
toolbar feature discussed in design reviewamp-video-iframe
implementation in reviewamp-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
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
oramp-dailymotion
User Interface & Accessibility
Status Update Thu Apr 01 2021What was accomplished
amp-tiktok
merged- Working on
amp-img
validation for standalone images - Work started for
SESSION_ID
macro inamp-analytics
- Work on
amp-render
(amp-script support, fallback/placeholder) amp-next-page
triggering scroll events early bug fixedamp-carousel
indexing and shakey slides bugs fixed
Lessons learned
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
Bento
Status Update Thu Apr 01 2021What 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
What's next ⏩
- Continue Validator work on all developer preview components (still under experiment)
amp-render
support for object and amp-renderamp-sidebar
toolbar feature in AMP modeamp-twitter
ongoing workamp-next-page
initial assessment
User Interface & Accessibility
Status Update Wed Mar 03 2021What was accomplished
- Various
amp-render
PRs out amp-next-page
analyticsamp-next-page-scroll
bugamp-tiktok
e2e tests outSESSION_ID
macro design reviewamp-carousel
event propagation to viewer bugfix- US Privacy String sent to doubleclick and adsense in A4A
Lessons learned
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
Bento
Status Update Tue Mar 02 2021What 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, bindablesrc
andamp-state
protocol- Prototype for
amp-twitter
What's next ⏩
- Working with infra 👋 🏗️ to release npm binaries
- Validate all developer preview components (still under experiment)
amp-sidebar
toolbar feature in AMP modeamp-render
support foramp-script
protocol andplaceholder
amp-twitter
ongoing work- Tune in for shadow DOM demo in next week's deep dive
User Interface & Accessibility
Status Update Mon Mar 01 2021What was accomplished
amp-tiktok
PR out for reviewamp-render
continued workamp-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 ofamp-form
Lessons learned
What's next
- Submit
amp-tiktok
- Finish
amp-render
amp-next-page
replace history bugsession_id
macro inamp-analytics
- Splitting linker/cookie writer module from
amp-analytics
&-consent
design
User Interface & Accessibility
Status Update Mon Mar 01 2021What 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 feedbackaddtl_consent
added to doubleclick and adsense request urls- Text Fragment highlighting, exploring server side transformation
Lessons learned
What's next
amp-consent
granular consent launchsession_id
MACRO inamp-analytics
amp-tiktok
implementationamp-render
implementation
Monetization
Status Update Mon Mar 01 2021What 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
What is next
AMP Monetization - Launch vendor splitting experiment!
Story ads
- Implement existing algorithm as new StoryAdPlacementAlgorithm
subclass
- Implement new placement algorithm
Monetization
Status Update Mon Mar 01 2021What 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
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
Bento
Status Update Mon Mar 01 2021What was accomplished 🍱 ✅
amp-fit-text
server-side experiment to measure performance with v0amp-render
base implementationamp-sidebar
toolbar design- Investigating CLS in
amp-carousel
,amp-base-carousel
, and related
Lessons learned 👩🎓
What's next ⏩
- Bento npm publishing
amp-render
- loading from
amp-script
- placeholder support
- loading from
- Fixing some carousel CLS issues
- First look at
amp-twitter
- Video docking active development
Bento
Status Update Mon Mar 01 2021What was accomplished ✅
Fix it week 🔨
amp-youtube
supportscurrentTime
andduration
in imperative API https://github.com/ampproject/amphtml/pull/32804amp-selector
has stylistic support for hybriddisabled
+selected
state https://github.com/ampproject/amphtml/pull/32825amp-accordion
0.1
and1.0
respect pre-existingrole
attributes https://github.com/ampproject/amphtml/pull/32915amp-timeago
0.1
and1.0
migrated to latesttimeago.js
library (fromthird_party/
tonode_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, andamp-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/32936objstr
:- 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
- transform compiled output to
- 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 surecss/Z_INDEX.md
is up to date
Lessons learned 👩🎓
- We can stop prettier from exploding the boilerplate code on HTML documents by disabling prettier for the
<head>
node.
What's next ⏩
amp-lightbox-gallery
AMP layeramp-sidebar
active development- video docking active development
- Analysis of
amp-fit-text
0.1
->1.0
auto upgrade performance implications
User Interface & Accessibility
Status Update Mon Feb 01 2021What was accomplished
amp-next-page
handling multiple consents submittedamp-render
design reviewamp-tiktok
workamp-fit-text
deflaking e2e testamp-consent
TCF 2.0 PostMessage API & Granular Consent PRs
Lessons learned
What's next
amp-render
implementationamp-next-page
reader ID issueamp-tiktok
amp-fit-text
CSS issueamp-consent
TCF 2.0 PostMessage API & Granular Consent- Split Linker/Cookie Writer design
- Use
addtl_consent
in a4a url requests
User Interface & Accessibility
Status Update Mon Feb 01 2021What was accomplished
- PR to handle
amp-consent
withinamp-next-page
amp-render
designamp-tiktok
design reviewamp-fit-text
adding better testing- CID syncing in
amp-consent
via CookieWriter amp-consent
TCF PostMessage API legal approval
Lessons learned
What's next
- GA4 Planning
- Granular Consent
- amp-tiktok
- Text fragment highlighting support
- amp-render
Monetization
Status Update Mon Feb 01 2021What 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
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
Bento
Status Update Mon Feb 01 2021What 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.
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
Bento
Status Update Mon Feb 01 2021What 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
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
User Interface & Accessibility
Status Update Tue Jan 05 2021What was accomplished
amp-consent
CSS fix for docs served from vieweramp-carousel
cherry pick revert for CSS styling overriding publisher stylingamp-render
discussions with DevRel & Bento teamblock-rtc
&always-serve-npa
PR merged
Lessons learned
- Careful with
!important
styling as pubs may want to use their own styling
What's next
- Granular Consent design review
- GA4 discussions
amp-render
&-list
continued design work
Bento
Status Update Tue Jan 05 2021What 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
What's next
- Preparing amp.dev with high level Bento information and usage guides
- Developer preview of our first 16 components
amp-truncate-text
User Interface & Accessibility
Status Update Fri Jan 01 2021What was accomplished
- Working through
amp-next-page
viewer bugs amp-render
brainstorming and requirements--subset ofamp-list
amp-fit-text
ResizeObserver bugs fix and testamp-carousel
observe child elements bug fix- legal review for TCF PostMessage Proxy API
Lessons learned
What's next
- New SESSION_ID macro
amp-form
CORS error- GA4
amp-render
design review
Monetization
Status Update Fri Jan 01 2021What 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
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
Bento
Status Update Fri Jan 01 2021What 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
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
Infrastructure
Status Update Mon Dec 07 2020What 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
What's next
- Refactor Travis-specific CI pipeline code
- Continue work on other ongoing projects
Bento
Status Update Mon Dec 07 2020What was accomplished
- Most of carousel baseline features completed
- Accordion: display locking completed.
- Imperative APIs: design completed.
- Troubleshooting IntersectionObserver spec problems.
Lessons learned
User Interface & Accessibility
Status Update Wed Dec 02 2020What 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
bugfixesamp-fit-text
accessibility fix in review
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
Infrastructure
Status Update Mon Nov 09 2020What 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
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
Bento
Status Update Mon Nov 09 2020What 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
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
User Interface & Accessibility
Status Update Mon Nov 02 2020What was accomplished
- Added support for
prefetch
inamp-autocomplete
amp-sidebar
layout bug fixamp-render
design- Coordinating documentation and announcements for validation changes for
amp-img
deprecation - Running worker in iframe design finalized
analytics-chunk
experiment cleanupbackupCid
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
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
Bento
Status Update Mon Nov 02 2020What was accomplished
amp-accordion
:- external API restructure
- accessibility attributes
amp-base-carousel
snap-align
feature to view slides either atstart
orcenter
of carousel viewportamp-lightbox
initial implementationamp-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
fromBaseElement
- 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
isdisplay:none
in AMP but it is much more fragile (overridable) to use it in Bento mode.
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 scrollingdir="rtl"
supportamp-selector
integration with forms
Infrastructure
Status Update Fri Oct 02 2020What 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
Bento
Status Update Fri Oct 02 2020What 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
withIntersectionObserver
throughout the runtime.
Lessons learned
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.
Infrastructure
Status Update Thu Oct 01 2020What 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)
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
Infrastructure
Status Update Wed Sep 02 2020What 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)
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)
Analytics
Status Update Wed Sep 02 2020What 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
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
Infrastructure
Status Update Tue Sep 01 2020What 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
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
Runtime
Status Update Tue Sep 01 2020Accomplished
- 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
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
Analytics
Status Update Tue Sep 01 2020What 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
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)
Infrastructure
Status Update Mon Aug 03 2020What 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
What's next
- Planning for improvements to CI pipeline
- Instrument minified builds, augment dev server middleware
- Continue work on in-flight projects mentioned above
Runtime
Status Update Mon Aug 03 2020Accomplished
- Justin
- amp-img SSR CLs have landed
- Made sure SSR'd
<img>
is visible: https://github.com/ampproject/amphtml/pull/29955
- Made sure SSR'd
- 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
- amp-img SSR CLs have landed
- 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
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
Runtime
Status Update Mon Aug 03 2020What 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
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
Analytics
Status Update Mon Aug 03 2020What 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.
What's next
- [Discussion] Running 3p scripts in web worker in iframe
- Support Consent meta data collection via macros
Analytics
Status Update Mon Aug 03 2020What 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>
What's next
- Benchmark delay of creating a web worker within a non origin iframe
- More granular consent blocking on client side
Infrastructure
Status Update Sat Aug 01 2020What 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 defaultgulp
server - New database for test case level reporting for unit / integration tests
- Error reporting / monitoring for module/nomodule rollout
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
Runtime
Status Update Sat Aug 01 2020What 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
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
Analytics
Status Update Sat Aug 01 2020What 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
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.
Analytics
Status Update Mon Jul 06 2020What 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
Runtime
Status Update Thu Jul 02 2020What 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
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"
Analytics
Status Update Thu Jul 02 2020What 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)
What's next
- SESSION_ID to support a session id that expires after a defined time
- Support tracking visibility of non AMP elements
Analytics
Status Update Tue Jun 02 2020What 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.
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)
Infrastructure
Status Update Sat May 02 2020What 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)
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
Runtime
Status Update Sat May 02 2020Recap
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
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
Analytics
Status Update Sat May 02 2020What 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.
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
Runtime
Status Update Fri May 01 2020Recap
- 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
- “intersect-resources” experiment
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?
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 🤞
Analytics
Status Update Fri May 01 2020What 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.
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.
Bento
Status Update Mon Apr 06 2020What 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
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 modeamp-render
support foramp-script
protocol andplaceholder
amp-twitter
ongoing work- Tune in for shadow DOM demo in today's deep dive
Runtime
Status Update Thu Apr 02 2020Recap
- 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)
- Mauve related
- 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
Next
- Justin
- Finish connectedCallback PR
- Reduce dom mutations
- Defer buildCallback
- Finish connectedCallback PR
- Jake
- Mauve
- Fix documentHeight bug
- Runtime perf test pages
- Other
- Protocol adapters
- Discuss: intern/step
- Mauve
- Will
- Try out IntersectionObserver in canary
Analytics
Status Update Thu Apr 02 2020What 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
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
Runtime
Status Update Wed Apr 01 2020What 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
What's next
- Delaying
BaseElement
construction untilconnectedCallback
- Speeding/prioritizing
connectedCallback
/buildCallback
- Protocol adapters for remote data
- InOb verification and fixes
- More Perf work!
Runtime
Status Update Wed Apr 01 2020Recap
- 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
Next
- Justin
- Land delaying BaseElement construction to connectedCallback
- Make connectedCallback less expensive
- Jake
- Complete inflight changes to toggleLoading
- Create unit tests for
loader.js
andamp-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
Analytics
Status Update Wed Apr 01 2020What 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>
viapreset-us-ca
What's next
- Continue adding support for
gdprApplies
- Land performance task PR
- Merge inline and vendor config server side
Monetization
Status Update Wed Apr 01 2020What 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
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
AMP for Email
Status Update Wed Mar 04 2020Highlights
- 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 inamp-form
- Consensus on standardizing
meta
-based whitelists (https://github.com/ampproject/amphtml/issues/27094) - Consensus on allowing
input[type=button]
in spec, links withtel:
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
Focus areas
- Standardizing AMP for email behavior across providers by using AMP4EMAIL spec as single source of truth
Analytics
Status Update Tue Mar 03 2020What 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
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
Monetization
Status Update Tue Mar 03 2020What 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
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
Analytics
Status Update Mon Mar 02 2020What 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 togeoApi
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
What's next
- Benchmark individual features and heavy operations performance
- Explore webworker solution for heavy operations
Analytics
Status Update Sun Mar 01 2020What 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)
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.
Infrastructure
Status Update Mon Feb 03 2020What 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 usingyarn
- Triaged backlog of infrastructure issues
- Renaming
AMP_CANARY
cookie to__Host-AMP_OPT_IN
What's next
- Default minified build (
gulp dist
) will now addAMP_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)
Analytics
Status Update Mon Feb 03 2020What 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
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)
Viewers
Status Update Sat Feb 01 2020What 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.
Monetization
Status Update Sat Feb 01 2020What 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
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
Infrastructure
Status Update Mon Jan 06 2020What 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
What's next
- Wrap up docs / comms for LTS
- Improve changelog creation
- Network logging API for E2E tests
- Measure code coverage during integration tests
Infrastructure
Status Update Thu Jan 02 2020What 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 forgulp {build|watch|dist}
- Published Infra doc for OpenJS
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)
Infrastructure
Status Update Mon Dec 09 2019What 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
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
AMP for Email
Status Update Wed Dec 04 2019Highlights
- 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
Focus areas
- Standardizing AMP for email behavior across providers by using AMP4EMAIL spec as single source of truth
Infrastructure
Status Update Fri Nov 01 2019What 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
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
Infrastructure
Status Update Wed Oct 02 2019What 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
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
Runtime
Status Update Wed Oct 02 2019What 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.
What's next
- @choumx away at summit & training
- @jridgewell on release duty
- Adding crossorigin=anonymous to AMP scripts
Caching
Status Update Wed Oct 02 2019What 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.
Infrastructure
Status Update Tue Oct 01 2019What 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
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
Runtime
Status Update Tue Oct 01 2019What was accomplished
- AMP Contributor Summit
Lessons learned
- ACS Debrief
- Let’s improve documentation
What's next
- Recursive XHR issue
- Unified sender registration
- SSR-dependent “documentHeight” message
- 🍱React-based AMP components
- Launch plan
- ⚙Runtime
- CSI migration design
Runtime
Status Update Tue Sep 03 2019What was accomplished
- [WIP] React-based AMP components
- amp-script: amp-state [WIP], improved docs
- Fixed DOM clobbering of AMP globals
Caching
Status Update Tue Sep 03 2019Runtime
Status Update Mon Sep 02 2019What 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
What's next
- AMP Contributor Summit!
- Continuing Bento explorations
- Better support for AMP Emails
Infrastructure
Status Update Sun Sep 01 2019What 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
What's next
- Owners bot: always / never notify owners, auto-assign reviewers, syntax checks
- Improve Travis greenness
- Release tooling (“is my PR in production?”)
Runtime
Status Update Sun Sep 01 2019What was accomplished
What's next
Caching
Status Update Sun Sep 01 2019What 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.
AMP for Email
Status Update Thu Aug 01 2019Highlights
- 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)
Focus areas
- Adapting the AMP4EMAIL spec to avoid potential ecosystem fragmentation
/cc @jasti
Runtime
Status Update Thu Aug 01 2019What 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.
}
Analytics
Status Update Thu Aug 01 2019What 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
What's next
<amp-experiment>
1.0 implementation review- Launch the improvement to load analytics vendor's config
- Launch & Document nested macro feature
Infrastructure
Status Update Mon Jul 08 2019Release 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)
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
Analytics
Status Update Mon Jul 08 2019What 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
Runtime
Status Update Tue Jul 02 2019What 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
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
Viewers
Status Update Mon Jul 01 2019What was accomplished
- Published AMP Viewer API Documentation
- Published AMP for Email specific viewer documentation
Infrastructure
Status Update Sun Jun 02 2019Release quality
- Fixed saucelabs safari 12.1 bug
- Run integration tests on IE 11
Developer experience
- Refactor of
gulp test
intogulp unit|integration|a4a
- WIP: Bot to deploy in-flight PR code for demo / testing (on-demand)
- Refactored / sped up unminified builds by 15%
What's next
- Redeploy owners bot with new reviewers assignment algorithm
- Generate externs for all typedefs found in
3p/ads/bind
Caching
Status Update Sun Jun 02 2019What 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.
Analytics
Status Update Sun Jun 02 2019What 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
What is next
<amp-experiment>
v2 to support selecting multiple elements<amp-experiment>
v2 to support mutatingstyle
andsrc
attribute- Lazily load analytics vendor config
Caching
Status Update Sat Jun 01 2019What 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
Caching
Status Update Thu May 02 2019AMP for Email
Status Update Wed May 01 2019Highlights
- Launched in Gmail in March!
- Commitment from Microsoft, Yahoo, and Mail.ru
- AMP Conf '19: "AMP for Email: Pushing the boundaries of email with AMP"
- Early Gmail partner results are promising: 2x CTR for one, 60% higher CTR and 60% higher conversions for another.
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
Focus areas
- Cross-provider compatibility per AMP4EMAIL spec (above)
- Allowing more components in AMP4EMAIL e.g. amp-animation, amp-analytics
/cc @jasti
Analytics
Status Update Wed May 01 2019What 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
What is next
amp-experiment v2 - Working towards GA launch with Optimizely
Linker - Enable Linker for eTLD+1 by default
Analytics
Status Update Tue Apr 02 2019What was accomplished
amp-experiment v2 - Integrated with Action Network, had demo in AMP Conf
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
Analytics
Status Update Fri Mar 01 2019What 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
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
Analytics
Status Update Sat Feb 02 2019What was accomplished
amp-experiment v2 - bench mark for mutation operations. decided on mutation limit.
Linker - Support wildcard in destination domain setting
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
Caching
Status Update Wed Jan 02 2019What 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
What's next
- Transformed AMP SXG to
- strip comments from script tags
- Validator to enable/disable tagspec based on type identifiers.