AMP プロジェクトのロードマップ
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
Performance
Status Update Tue Mar 02 2021What was accomplished
- fixed the new ts server not respecting the host and font when transforming the documents https://github.com/ampproject/amphtml/pull/33425
- ongoing work to support avif
Lessons Learned
What's Next
- additional font testing exploration focused on sub font and fallback font
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
Stories
Status Update Mon Mar 01 2021What was accomplished
Story interactives - 🐛 Fixed text align of buttons #33217
Page attachments - Attachments do not open when clicked using TalkBack #33186 - Launching the CTA update with images in an experiment #33142 - Click listener on shadow root container #33187
Story video - 🐛 Fix video downgrading on load #33170
Story a11y - ♿ Improve screen reader output for interactive components #32969
Story player - ♿ Add label for next story and add i18n for pagination buttons #33205 - 📖 Rename skip-next control to skip-to-next #33164
What's next
- CTA improvements
- Panning media lock bounds
- Monti support
- Deprecate the bookend and sidebar
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
Stories
Status Update Mon Feb 01 2021What was accomplished
Story autoanalytics - Added repeat: false on story-page-visible #32296
Story devtools - Rename logs and move Page Experience #32451
Story responsiveness - Added documentation to presets on amp.dev #32311
Story video - Add cached sources with different qualities to amp-video #32337
Panning media - Respect prefers-reduced-motion #32282 - Add early exit on animation loop #32320
Story Player - Load player iframes sequentially when starting from other than first story #31212 - Improvements on documentation
What's next
- Release documentation on Player
- More improvements on video performance
- Desktop experience update (Removing 3 panel UI)
- Work on panning-media component
- Work on primary CTA experience
Stories
Status Update Mon Feb 01 2021What was accomplished
- Player:
- [amp-story-player] Player refactoring ♻️ #32115
-
[amp-story-player] Introduce render() method ♻️ #32153
-
Auto analytics:
- [Story auto-analytics] Added validation and tests #32288
- [Story auto-analytics] Initialize extension #32241
-
amp-analytics linkers config not working on all web stories links #32060
-
Panning media:
- [Panning media] Transition sibling group #31932
- [Panning media] Accelerate transitions using translate3d #32254
- [Panning media] Position / scale element #31503
- [Panning media] Transition between pages #31504
-
[Panning media] Animate with JS #32098
-
Story dev tools (in browser debugging tool):
- [Story devtools] Stories don't load on preview tab if starting on other tabs #32124
- [Story devtools] Finalize UI details: dark scrollbar, center devices, change tab order #32126
- [Story devtools] Device details #32074
-
[Story devtools] Added logs status icon on tab selector #31709
-
Story page layer:
-
[Story page-layer] Internal support for scaling-factor on grid-layer #31282
-
Other:
- [amp-story] 🐛 Add role=button back to components that need it #32283
- [amp-story] 🐛 Hiding story education layer when viewport warning layer is visible #32230
What's next
- Player simplification / performance refactor
- Panning media locked bounds attributes #31522 #31505
- CTA UX / UI updates
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
Performance
Status Update Tue Jan 05 2021What was accomplished
- IntersectionObserver:
- IntersectionObserver polyfill
{root:document}
support launched: https://github.com/w3c/IntersectionObserver/pull/465 - Integration updated to select best one on a per-instance basis: https://github.com/ampproject/amphtml/pull/31453
- E2E tests for documentHeight-based viewers (gmail): https://github.com/ampproject/amphtml/pull/31526
- Removed polyfills from esm web-worker, cutting -0.3kb: https://github.com/ampproject/amphtml/pull/31494
- Removed some usages of measuring APIs (https://github.com/ampproject/amphtml/pull/31693, https://github.com/ampproject/amphtml/pull/31730, https://github.com/ampproject/amphtml/pull/31753)
- Holidays! 🎁
Lessons Learned
- Can make empty commits via: git commit --allow-empty -m "Trigger Build"
What's Next
- Continue removing usages of measuring APIs
- Resume compiler research
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
Stories
Status Update Fri Jan 01 2021What was accomplished
- Player:
- Desktop navigation button should show "next" on the last page of a story #31224
-
Documentation revamp
-
diagnostic tooling (dev-tools):
-
Add success page for logs #31906
-
Interactives:
-
disclaimer on interactive components #31447
-
Other:
- iOS 14.2 and 14.3 Unmuted navigation is bug fix (#31911)[https://github.com/ampproject/amphtml/issues/31911]
- Page attachment UI to show URL #27941
- Prerendered story branching URL bug fix #29351
What's next
- Analytics component planning
- Desktop panels experience
- Player performance enhancement planning
cc @ampproject/wg-stories
Performance
Status Update Fri Jan 01 2021What was accomplished
- v0.js and extensions are now more resilient to double loading of the amp library (https://github.com/ampproject/amphtml/pull/31828)
- fixed module build bug where
AMP.require
would sometimes not exist (caused by race condition https://github.com/ampproject/amphtml/pull/31988) - turned down module build to fix p0's
- added bento component generator
gulp make-component --bento --name=my-component
Lessons Learned
- separate out test features in isolated PR as they are hard to cherry pick if they are merged with runtime features/additions/removals
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
Monetization
Status Update Mon Dec 07 2020What was accomplished
AMP Monetization - Run experiment to measure the CWV impact from BTF ad iframes - No signing debugging - Fixed sticky ad loading indicator bug - amp-ad sticky ad now available on fast fetch extensions
Story Ads - Began work on impression tracking changes
What is next
AMP Monetization - Collaborate with Google Ads team on experimenting new browser APIs for privacy safe ad conversion tracking. - Port remaining features of amp-sticky-ad to amp-ad - Implement top sticky ad
Story ads - Finalize impression tracking changes - Adsense availability blog post - Tooling updates
Performance
Status Update Mon Dec 07 2020What was accomplished
- module build rollout is in 100%
- Started privacy & legal reviews for adding CWV metrics from Google AMP cache to Page Experience tool
- exclude iOS < 11 specifically from module build insertion
Lessons Learned
What's Next
- fixes for double exec of module/nomodule in iOS < 11 in the runtime
- Working on APIs for CWV metrics from Google AMP Cache
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
User Interface & Accessibility
Status Update Mon Nov 09 2020What was accomplished
- Exposed consentMetadata to 3p ad
- Exposed CONSENT_STRING macro to analytics
- Turned on visibility-trigger-improvements experiments in canary. This experiment supports multi selector and non AMP element’s visibility trigger
- Fixed bug on base carousel currentIndex
- Added visual diff test for amp-carousel
- Fixed bug on amp-autocomplete where the first focus event is not received (PR not merged due to experimentA build failure)
- Add support to prefetch remote data in amp-autocomplete
- Created example pages to demonstrate that
<img>
doesn’t work well with<amp-consent>
<amp-image-lightbox>
<amp-analytics>
and<amp-bind>
- Created valid and invalid
<img>
examples and their corresponding validator output files - Tested web worker behaviors in cross origin iframe/non origin iframe created by srcdoc/non origin iframe created by data:text/html) in different browsers
What's next
<amp-render>
- Easy way for publishers to always serve npa
- Add a new sandbox nodom version of worker dom
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
Stories
Status Update Mon Nov 09 2020What was accomplished
AMP Story Player
- Dev preview documentation README.md
- Custom UI Controls API amphtml/issues/30031
- "Expand to fullscreen" button amphtml/issues/30377
- Hide close button when tweet is expanded amphtml/issues/29718
amp-story-360
- Filed WebGL
loseContext
WebKit bug with one pager and example app - Validator improvements
- amphtml/pull/30869
- amphtml/pull/31028 (PR pending)
- Compress testing and diff assets amphtml/pull/31002
- Manage webGL resources (PR pending) amphtml/issues/29512
- Component visual diff tests (PR pending) amphtml/issues/30739
- Manual QA testing guide
Others
- Improve how storyProgress analytics metric are computed amphtml/issues/30821
- Fix rendering of transformed amp-story document amphtml/issues/30798
- Visual diff test for transformed amp-story document amphtml/pull/31001
What's next
Content layout
- Extension to preview story responsiveness amphtml/issues/31031
Large image panning component
- A persistent image component that transitions between pages
cc @ampproject/wg-stories
Performance
Status Update Mon Nov 09 2020What was accomplished
- Turn on esm tests in travis https://github.com/ampproject/amphtml/pull/28336
- investigated A2HS support, but decided not to pursue further
Lessons Learned
What's Next
- mjs tracking for bundle size bot
- de-flake amp-user-notification tests
- write document for SxG experiment methodology
- ramp module/nomodule to 100%
- investigating new rules for Pixi
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
Stories
Status Update Mon Nov 02 2020What was accomplished
- Story format:
- Enforce navigational safe zone on desktop amphtml/issues/30825
-
Ignore links that prevent navigation amphtml/issues/31108
-
360 Component:
- Fixed: Animation does not always play amphtml/issues/31062
- Fixed: Inactive pages do not stay paused amphtml/issues/31121
- Fixed: Gyroscope mode amphtml/issues/31061
- Deallocate resources on page navigation amphtml/issues/29512
- Improve duration validation amphtml/issues/31028
-
Added documentation amphtml/issues/29511
-
Player:
- Allow no initial stories amphtml/issues/31192
- Merged documentation
- Improve player behavior on scrolling amphtml/issues/28009
-
Expose go to page API amphtml/issues/31047
-
Dev-tools:
- Created extension and trigger amphtml/issues/31194
- Added header and tabs amphtml/issues/31265
What's next
- More AMP Story dev-tools
- Aspect-ratio guidance implementation
- Launch 360 component
- Large image panning
- Fix player improvements and bugs after launch
Monetization
Status Update Mon Nov 02 2020What was accomplished
AMP Monetization - Module / No module fully launched for inabox. - Verified that the new security model fixed a Safari regression seen in the no-signing experiment. - 3p vendor splitting design - Resolved Visual diff flakiness
Story Ads - E2E testing done for AdSense on canonical AMP stories. Found a potential loophole for advertisers to manipulate CTA buttons. - Working on CSS protection of story ads CTA on canonical AMP stories
What is next
AMP Monetization - Launch no-signing experiment - 3p vendor splitting - Port real time config to amp-ima-video
Story ads - CSS protection of story ads CTA on canonical AMP stories. - Launch AdSense on canonical AMP stories.
Performance
Status Update Mon Nov 02 2020What was accomplished
- Worked on TDD for adding AMP Cache CWV metrics to Page Experience Tool
- mjs files now need to be approved when increased in size
- build and upload esm tests when integration tests are modified
Lessons Learned
What's Next
- Developing Page Experience Tool rule to ensure placeholder inside amp-img uses only data src (no network requests)
- experiment design doc to have a hold over A/B test for module vs nomodule performance
- Fix bug in Google AMP cache transformer where the document from origin already has module/nomodule pattern in markup
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
Stories
Status Update Fri Oct 09 2020What was accomplished
Interactive Components (quizzes/polls)
- Official documentation published amphtml/issues/29468
- Fix prompt alignment https://github.com/ampproject/amphtml/issues/30531
360
- 360 video support ampproject/amphtml#29509
- Feature discovery UI & animation amphtml/pull/30406
- Pause animation on long press https://github.com/ampproject/amphtml/issues/29593
Others
- Build pagination buttons for prerendered stories https://github.com/ampproject/amphtml/pull/30503
AMP Story Player
- Fix responsive layout validation https://github.com/ampproject/amphtml/issues/30414
- Fix responsive layout sizing https://github.com/ampproject/amphtml/issues/30423
What's next
AMP Story Player
- Dev preview documentation
- Custom UI Controls API https://github.com/ampproject/amphtml/issues/30031
- Fetch stories from endpoint https://github.com/ampproject/amphtml/issues/29864
Interactive Components (quizzes/polls)
360
- Manage webGL resources amphtml/issues/29512
- Default heading for gyroscope amphtml/issues/30002
cc @ampproject/wg-stories
User Interface & Accessibility
Status Update Fri Oct 02 2020What was accomplished
- A11y Fixit Week
- Backup CID in localStorage (in experiment)
<amp-list>
infinite scroll performance improvement
What's next
- TCF v2 API support
<amp-carousel>
visual diff test- Validator change to support native
<img>
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
Stories
Status Update Fri Oct 02 2020What was accomplished
New team member
- Welcome @raxsha!!
AMP Story Player
- Fetch more stories from a remote JSON API endpoint amphtml/issues/29864
- Fix a P0 where an amp-story-player fails to render entirely amphtml/issues/30783
Interactive Components (quizzes/polls)
- Remove confetti effects if user vote is being loaded ampproject/amphtml#30584
- Binary polls won't properly clamp long options to two lines amphtml/issues/30657
amp-story-360
- 360 video support demo ampproject/amphtml#29509
- Gyroscope default heading optimizations amphtml/issues/30002
Others
- Fix .getImpl race condition on Android, that was probably causing completely blank stories on render ampproject/amphtml#30598
- Disable the video equalizer on Stories with no audio UI amphtml/issues/29933
- Fix Story
amp-video
usage withamp-analytics
amphtml/issues/29938 - Fix story video poster stretched on first page amphtml/issues/30651
What's next
AMP Story Player
- Dev preview documentation
- Custom UI Controls API amphtml/issues/30031
360
- Manage webGL resources amphtml/issues/29512
- Component visual diff tests amphtml/issues/30739
cc @ampproject/wg-stories
Performance
Status Update Fri Oct 02 2020What was accomplished
- integration fixture files are now transformed through postHTML
- safari fix for block scoping performance regression (can be 3x to 10x slower)
- Investigated Firefox amp-sidebar FixedLayer bug, turned out to be testing setup misconfiguration (https://github.com/ampproject/amphtml/issues/30819)
- Removing
{BaseElement.viewportCallback}
: 3 PRs currently in flight, as well as a few merged (https://github.com/ampproject/amphtml/pull/30647, https://github.com/ampproject/amphtml/pull/30802, https://github.com/ampproject/amphtml/pull/30859). One already merged (https://github.com/ampproject/amphtml/pull/30761) - Various test fixes, including aligning unit tests with prod-config: https://github.com/ampproject/amphtml/pull/30535
Lessons Learned
- function definitions can be recursively redefined. (
function f() { f = () => 5; return 7}
)
What's Next
- esm to 100% (monitoring safari performance)
- esm e2e tests
- continue removing
viewportCallback
as well as associated code - research two Dynamic Mail bugs probably related to
intersect-resources
.
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.
User Interface & Accessibility
Status Update Thu Oct 01 2020What was accomplished
Becca
- Led Design Review for amp-img deprecation
- Phase 1 - Approved - moving forward, digging into Validator to make img's valid amp
Caroline
- Finalizing launch for pixi
- Transitioning back to bento, planning for developer preview, e2e tests for carousel
- Prototype stream-gallery
Kevin
- Finished up tests and storybook for amp-date-countdown
- Starting to take a look amp-accordion
Priyam
- Led Design Review for amp-youtube (bento)
- Prototyped amp-youtube and automated tests
Analytics - Inabox ad visibility tracking: Listen to window resize event - Enable CMP iframe to run in the background for 1 second so they can send out update after user action - Easy configuration to always serve non personalized ad - Backup CLIENT_ID in localStorage - Debugging: Analytics not loading when user scroll to the bottom fast
Lessons learned
What's next
Becca
- Update Validator and and working on a few other components for img deprecation
Caroline
- Thumbnails for stream-gallery
Go to slide
issue for amp-base-gallery
Kevin
- Continue work on amp-accordion
Priyam
- Adding prefixes for Preact base-element
- Starting work on amp-lightbox
Analytics
- Analytics service listen to img's onload event (part of the effort of <amp-img>
deprecation)
- Discussion: Element level granularity consent decision support
- Discussion: Pass TCF 2.0 consent string via postMessages to iframes
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
Performance
Status Update Thu Oct 01 2020What was accomplished
- fix esm ads performance/query tracking
- make sure to opt-out control of LTS reporting
- correctly cache busted control (this caused control to have higher cache hit rate as it was using production resources)
- make performance-impl more robust in performanceobserver observe calls https://github.com/ampproject/amphtml/pull/30554
Lessons Learned
- do not do a/b testing during the rollout phase and have a separate clean a/b testing environment
Bento
Status Update Thu Oct 01 2020What was accomplished
- Design work has started on the AMP/JSX templates.
- YouTube component is in progress.
- More carousel features added such as controls and snapping.
- DateCountdown component - code-complete.
- Accordion: animations done.
- amp-img SSR is launching and collecting metrics.
- Instagram component completed.
- Aspect ratio supported for
layout=responsive
. Unfortunately, it doesn't work forlayout=intrinsic
. - Did some evaluations and filed bugs on Goober - a potential alternative for JSS.
Lessons learned
- Animations could potentially be easier solved with Web Animations API. The big benefit is that some CSS properties can be easier managed for setup and cleanup as the keyframes definition.
What's next
- Video docking.
- StreamGallery component.
- Complete accordion features.
- Make decision on auto-envelope for dev preview.
- LIghtbox components.
- Start reducing AMP Runtime reliance on the measuring code.
Stories
Status Update Tue Sep 08 2020What was accomplished
Web Player
- Dispatch end of stories event https://github.com/ampproject/amphtml/issues/29865
- Fix fragment param issue https://github.com/ampproject/amphtml/pull/30069
- End of stories behavior API finalized https://github.com/ampproject/amphtml/issues/29289
- show() improvements https://github.com/ampproject/amphtml/pull/30085
Interactive Components (quizzes/polls)
- Create public documentation for new sizing strategy https://github.com/ampproject/amphtml/issues/30035
- Size components with relative units https://github.com/ampproject/amphtml/issues/29925
- Show ellipsis with 4 lines https://github.com/ampproject/amphtml/issues/29897
- Change amp-story-interactive version to 0.1 https://github.com/ampproject/amphtml/pull/30080
A11y
- Make education screens buttons focusable for screen readers ampproject/amphtml#30021
Others
- Fix audio race conditions. ampproject/amphtml#29520
- "swipe to go to next story" animation bug https://github.com/ampproject/amphtml/issues/30025
What's next
Web Player
- UI Controls API https://github.com/ampproject/amphtml/issues/30031
- End of stories behavior https://github.com/ampproject/amphtml/issues/29289
- More samples / documentation
Interactive Components (quizzes/polls)
- Create animations for the results component ampproject/amphtml#29818
- Work on supporting multiple layouts for interactive components ampproject/amphtml#29925
Animations
- Example story for new animation presets https://github.com/ampproject/amphtml/issues/30028
360
- Public documentation https://github.com/ampproject/amphtml/issues/29511
- Feature discovery UI ampproject/amphtml#29591
Accessibility
- Talkback: provide a way to navigate to the next story page ampproject/amphtml#29974
cc @ampproject/wg-stories
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)
Stories
Status Update Wed Sep 02 2020What was accomplished
Interactive Components (quizzes/polls)
- Official documentation in progress amphtml/issues/29468
360
- Feature discovery UI & animation amphtml/pull/30406
Others
- Reduce bundle size of interactives by 11% ampproject/amphtml/pull/30233/issues/30274
- System UI updates amphtml/issues/30274
- Smooth drop animation ampproject/amphtml/pull/30220
What's next
Interactive Components (quizzes/polls)
- Official documentation amphtml/issues/29468
360
- 360 video support ampproject/amphtml#29509
cc @ampproject/wg-stories
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
Monetization
Status Update Wed Sep 02 2020What was accomplished
AMP Monetization - Scheduled security review for findings in remove AMPHTML signing requirement - Changes to close button for new sticky formats - AMP ad v2 planning
Story Ads - Identified bug causing new RDA GDN format not to serve - GDN ads for select adsense pubs on cache now serving
What is next
AMP Monetization - Implement security team recommendations for no signing.
Story ads - AdSense ads in canonical story implementation - Implement changes for RDA to serve in prod
Performance
Status Update Wed Sep 02 2020What was accomplished
- Identified performance bottlenecks with amp.dev including inlined SVGs at top of body, unused CSS (https://github.com/ampproject/amp.dev/issues/4650), unnecessary layers (https://github.com/ampproject/amp.dev/issues/4665), and using custom carousel instead of amp-carousel (https://github.com/ampproject/amp.dev/issues/4670)
- Started build-in-chunks experiment to improve FID (https://github.com/ampproject/amphtml/pull/30301)
- support "mjs" in local/test server routes https://github.com/ampproject/amphtml/pull/30378
- refactor postHTML transformers to support bad or implied localhost URL's (like relative paths) (https://github.com/ampproject/amphtml/pull/30292)
- fix bug in module build for amp-ad's. Transfer the parent document's amp-runtime CSS into the amp-ad friendly iframe (https://github.com/ampproject/amphtml/pull/30257)
Lessons Learned
- web.dev suggests a maximum of 1,500 DOM nodes per page
What's Next
- Continue to identify FID & LCP issues affecting amp.dev (and large AMP sites)
- allow for module/nomodule pattern in JavaScript validator (following c++ changes)
Bento
Status Update Wed Sep 02 2020What was accomplished
amp-video
complete.- MediaSession support for videos: close to be done.
- VideoIframe component has been started.
- Loading model is redone via
loading
prop. layout=responsive
implementation viaaspect-ratio
CSS completed- social-share: fixed error handling
- social-share: refresh of all styles and icons completed
- date-countdown: AMP mapping in progress
- JSS support has been completed on the infra side.
- finished analysis for JSS competitors: Emption, Goober, and Aphrodite.
- Instagram: code complete, tests WIP.
- Improved AMP mode in the storybook to make parameter selections sticky.
- Shadow DOM support: automatically discover slot distribution changes.
- Multi-attribute parsing supported where different input formats can map to a single Preact prop.
- Fixed Closure bugs on destructured property typing.
- Auto-envelope experimentation in progress to execute extensions w/o v0.js.
Lessons learned
What's next
- Working on dev preview launch plans.
- Start templates-via-JSX design.
- Start YouTube component.
- Start Accordion component.
- Complete date-countdown and instagram support.
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
Stories
Status Update Tue Sep 01 2020What was accomplished
Web Player
- Started work on UI Controls API https://github.com/ampproject/amphtml/issues/30031
- Scoping for player developer preview milestone
Interactive Components (quizzes/polls)
- Create animations for the results component ampproject/amphtml#29818
- Work on supporting multiple layouts for interactive components ampproject/amphtml#29925
- Explore other interactive components (range sliders, image quizzes & polls) ampproject/amphtml#29838
Animations
- Example story for new animation presets https://github.com/ampproject/amphtml/issues/30028
Accessibility
- Talkback: provide a way to navigate to the next story page ampproject/amphtml#29974
cc @ampproject/wg-stories
What's next
(Pending update)
cc @ampproject/wg-stories
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)
Monetization
Status Update Tue Sep 01 2020What was accomplished
AMP Monetization - Removing AMPHTML ads signing WIP in experiment. Still see a small regression after the last fix. Looking further into it. - Working with Kargo team identify more ad formats to bring to AMP - Debugging a sticky ad issue.
AMPHTML ads - Debugging an issue in module/no-module build
Story Ads - GDN ads eligible for 100% of select GAM pubs - Debugging GDN ads for adsense pubs on cache
What is next
AMP Monetization - Launch removing AMPHTML ads signing.
Story ads - AdSense ads in canonical story. - Analytics improvements
Performance
Status Update Tue Sep 01 2020What was accomplished
- fixed AMP deployment of worker-dom artifacts (https://github.com/ampproject/amphtml/pull/30141)
- prototyped moving compilation of
worker-dom
to downstream repos. (https://github.com/ampproject/worker-dom/pull/937) - added
amp-debug
andamp-production
binaries toworker-dom
. (https://github.com/ampproject/worker-dom/pull/929) - prototyped adding
content-visibility
css automatically for valid AMP components. - created repo to test amp.dev performance and discovered svg issue causing slowdown
Lessons Learned
What's Next
- visual diffs for module build
- improve compatibility of
worker-dom
Element.innerHTML
setter.
Bento
Status Update Tue Sep 01 2020What was accomplished
- Initial amp-inline-gallery and amp-inline-gallery-pagination completed.
- Improved style propagation from Web components to Preact components.
- Started experimentation with auto-envelope for Bento: a smaller custom-element wrapper that could allow us to run Bento components w/o runtime.
- amp-date-countdown design and initial work on Preact component completed.
- JSS support completed and ready for use.
- Completed design review for ad-frame components (amp-facebook-comments and amp-twitter).
- Prototyping completed for
::part
CSS.
Lessons learned
- Using fake timer when testing Preact has to be done very carefully to avoid "stuck" global queues. Always call
clock.runAll()
inafterEach
. A more stable solution is in research. - The
::part
CSS could be very natural for Bento. However, our typical markup is incompatible with it and would need to be changed. However, that often limits some of the CSS/markup that we've been using.
What's next
- Review light-DOM components, especially template-based ones.
- amp-instagram support.
- amp-date-countdown AMP/Bento bindings.
- Working on "developer preview" plans.
User Interface & Accessibility
Status Update Mon Aug 03 2020What was accomplished
Kevin - Completed Design Doc for Handling Colors in Bento Social Share - Started protoype of Preact Component for amp-date-countdown (Bento)
Priyam
- PR in review for Facebook Comments component for attribute deprecation
- Created Design Doc for Preact Component for Facebook Comments 🎉 🎉
- Prototype in Progress for Preact Component
Rebecca
- Continue to work on design doc
- Completed design review for amp-img
- Collected examples and constructed example sets, what we'll be replacing amp-img
Lessons learned
Priyam
- First time writing design doc @ Google!
- Understanding structure of AMP component and AMP framework
Rebecca
- Dev tools can be set to a particular device (such as an iphone), adjust size of screen, behave with or w/o 3G
What's next
Kevin
- Deep dive on Handling Colors for Social Share Bento
- Continue to build out amp-date-countdown (bento)
Priyam
- Go over design doc in design review
- Complete Preact Component
- Start work on Facebook Likes Component
Rebecca
- Continue to progress on amp-img work
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
Stories
Status Update Mon Aug 03 2020What was accomplished
Web Player
- Publish programmatic API documentation ampproject/amphtml#29730
- AMP version of the Web Player ampproject/amphtml#29312
- Dispatch events on Story page navigation with page ID and Story progress ampproject/amphtml#29878
Interactive Components (quizzes/polls)
- Add new designs of results components ampproject/amphtml#29793
- Work on supporting multiple layouts for interactive components ampproject/amphtml#29925
360
- Prompt for iOS gyroscope permissions ampproject/amphtml#29590
- Gyroscope support ampproject/amphtml#29513
- Scale down image if too large for device GPU ampproject/amphtml#29738
Others
- Allow meta tags for Story generators to mark the story ampproject/amphtml#29991
- Messaging queue for incoming viewer communication ampproject/amphtml#29906
- Fix vertical gaps around amp-twitter within a Story ampproject/amphtml#29194
What's next
Web Player
- Capability to support "Swipe down to close" gestures ampproject/amphtml#28397
- show() API method improvements ampproject/amphtml#28987
- Fix for Edge browser ampproject/amphtml#27358
Interactive Components (quizzes/polls)
- Create animations for the results component ampproject/amphtml#29818
- Work on supporting multiple layouts for interactive components ampproject/amphtml#29925
Videos
- Downgrade bitrate on slow initial load ampproject/amphtml#29501
- Optimize media play/pause operations on page navigation ampproject/amphtml#29508
360
- Feature discovery UI ampproject/amphtml#29591
Accessibility
- Talkback: provide a way to navigate to the next story page ampproject/amphtml#29974
- Make education screens buttons focusable for screen readers ampproject/amphtml#30021
cc @ampproject/wg-stories
Stories
Status Update Mon Aug 03 2020What was accomplished
- UI Animations for quizzes/polls highlight on page navigation
- Update polls/quizzes API endpoints (base64 encode URL, use component ID over page ID, use
:vote
method on POST request) - Category results page for multi-polls story
- Fixing audio state propagation from story to story in a Player
- Ability to navigate back using TalkBack
What's next
- Percentage results page for multi-quizzes story
- Moving interactive components to their own extension
- Interactive components validation
- Prompt gyroscope data access on iOS for amp-story-360
- Player entry point: singleton preview
- Player entry point: circular wrapping
- Player API: proxy to getDocumentState/setDocumentState API
- Restart active page advancement when swiping back to a Story (#28927)
- Fix joint latency video metrics (#29105)
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
Monetization
Status Update Mon Aug 03 2020What was accomplished
AMP Monetization - Removing AMPHTML ads signing WIP in experiment. Saw some regression and had a fix. - Supporting Kargo team to implement SideKick - launched ampdoc-fie - Debugged a RC release regression, identified the root cause as working as intended - Fixed a video ad not playing bug: https://github.com/ampproject/amphtml/pull/29853
Story ads - Drafted design for AdSense story ads on canonical domain
AMPHTML ads - Ramping up module experiment
What is next
AMP Monetization - Launch removing AMPHTML ads signing. - Work with Kargo to get their part delivered for Sidekick ad.
Story ads - AdSense story ads on canonical domain
Monetization
Status Update Mon Aug 03 2020What was accomplished
AMP Monetization - Removing AMPHTML ads signing WIP. More PRs merged. - Shared sidekick demo with kargo. Unblocked their engineering work. - Started the ampdoc-fie experiment. - Get amp-auto-ads work with amp-access
Story ads - Reporting ad experiments via amp-analytics (PR pending)
What is next
AMP Monetization - Removing AMPHTML ads signing - SideKick creative - Launch ampdoc-fie
Bento
Status Update Mon Aug 03 2020What was accomplished
- Video Manager Preact implementation in review
- New Bento Storybook mode deployed to @ampproject/storybook-addon
- Mutation Observer system imlpemented
- Supported declarative shadow DOM spec (proof of concept)
- Started work on auto-eveloped extensions prototype
- JSS supported for Bento components and recompiled for AMP mode.
- Imperative API support
Lessons learned
What's next
- JSS design review on Sep 2nd
- Inline gallery Bento implementation
- amp-date-countdown Bento implementation
- Continue video manager work
Bento
Status Update Mon Aug 03 2020What was accomplished
- Started Video Player implementation
- Started work on advanced carousel components: inline-gallery and streaming-gallery
- Context API: subscriber and component APIs in review
- CSS design ready based on JSS framework
- Model for container wrappers based on the
contain
CSS as an alternative to AMP's layouts. - amp-img SSR work in progress.
- Main social-share redesign complete with more advanced customization.
- New embedding mode with non-empty passthrough when a shadow DOM is given a slot only when children are available. This allows us to support text nodes as well as elements as children.
- Renewed focus on unit and integration testing of both: Preact and AMP elements.
Lessons learned
- Our carousel ecosystem is very advanced.
- How useful
display:none
in React world?
What's next
- Start using Context API
- Storybook: Bento mode that does not reload the whole AMP page.
- Continued progress on advanced carousels
- Continued progress on video players
- Prototype auto-enveloped extensions that can run without v0.js
- CSS implementation for components and shadow DOM.
User Interface & Accessibility
Status Update Sat Aug 01 2020What was accomplished
amp-img
- Wrote up intent-to-deprecate and presented at design review
Bento
- Welcome Priyam 🎉 🎉 🎉 who is ramping up on AMP and Bento
- Video docking feature
- Prototyped two approaches to
amp-inline-gallery
- Type definitions and SVGs for
amp-social-share
- Deep dive about
passthroughNonEmpty
andamp-social-share
AMP page experience tool
- Ramped up on amp.dev infrastructure, AMP linter, project architecture
- Implemented skeleton pipeline
Display locking API
content-visibility: hiddenmatchable
andbeforematch
are available in Chrome Canary, experiment withamp-accordion-display-locking
here!
Lessons learned
- AMP components are cool
What's next
amp-img
- Acting on feedback from design review
Bento
- Video docking performance issues
- Design for
amp-facebook-*
components - Design doc for colors and styling in
amp-social-share
- Storybook samples for
amp-social-share
- Investigating
amp-sidebar
AMP page experience tool
- Implement 100% of checks, prepare for QA.
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
Stories
Status Update Sat Aug 01 2020What was accomplished
Web Player
- Make initial load 52% faster ampproject/amphtml#29703
- Add stories to the player programmatically (
player.add(storiesArray)
) ampproject/amphtml#29280 - Expose page attachment state ampproject/amphtml#29219
- Visual tests ampproject/amphtml#29372
Interactive Components (quizzes/polls)
- Validation rules ampproject/amphtml#29465
- UI animation to show interactive elements are tappable ampproject/amphtml#29466
- Move code to a new extension (~10% savings on
amp-story.js
) ampproject/amphtml#29464 - Implement percentage results page for quizzes ampproject/amphtml#29458
- Add transparent style to all components ampproject/amphtml#29791
- Improve tap targets to only block page navigation on tap when needed ampproject/amphtml#29792
Videos
- Fix joint latency that would not be tracked on the first page ampproject/amphtml#29105
- Send video performance metrics on last Story page ampproject/amphtml#28650
360
- Prompt for iOS gyroscope permissions in code review ampproject/amphtml#29590
- Gyroscope support in code review ampproject/amphtml#29513
- Scale down image if too large for device GPU in code review ampproject/amphtml#29738
Animations
- Refactoring all the presets default timing functions demo ampproject/amphtml#29684
- New preset: Scale fade ampproject/amphtml#29685
Others
- Talkback: provide a way to navigate to the previous story page ampproject/amphtml#28422
- New optional metadata attributes to represent the creator entity ampproject/amphtml#28992
- Swiping back to a story restarts its active page ampproject/amphtml#28927
- Option to opt-out from history localStorage ampproject/amphtml#29645
What's next
Web Player
- Capability to support "Swipe down to close" gestures ampproject/amphtml#28397
- show() API method improvements ampproject/amphtml#28987
- Publish programmatic API documentation ampproject/amphtml#29730
- Fix for Edge browser ampproject/amphtml#27358
Interactive Components (quizzes/polls)
- Early launch 🎉
- Add new designs of results components ampproject/amphtml#29793
- Create animations for the results component ampproject/amphtml#29818
- Prototype other types of interactive components ampproject/amphtml#29838
Videos
- Downgrade bitrate on slow initial load ampproject/amphtml#29501
- Optimize media play/pause operations on page navigation ampproject/amphtml#29508
360
- Feature discovery UI ampproject/amphtml#29591
- Public documentation ampproject/amphtml#29511
- Merge Prompt for iOS gyroscope permissions ampproject/amphtml#29590
- Merge Gyroscope support ampproject/amphtml#29513
- Merge Scale down image if too large for device GPU ampproject/amphtml#29738
Others
- Fix vertical gaps around amp-twitter within a Story ampproject/amphtml#29194
- Ensure services are not included in sub extensions bundles ampproject/amphtml#29282
cc @ampproject/wg-stories
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.
Monetization
Status Update Sat Aug 01 2020What was accomplished
AMP Monetization - Removing AMPHTML ads signing WIP code complete. Starting experiment. - Sidekick ad code complete. - Debugged an ampdoc-fie experiment regression in some ad stats. Looking forward to launching it. - Met with Taboola team to identify their requirements and brainstormed their AMP solutions
Story ads - Reporting ad experiments via amp-analytics - Ramping up GDN experiment - Prototyping solutions for adsense publishers
What is next
AMP Monetization - Launch removing AMPHTML ads signing. - Launch ampdoc-fie - Work with Kargo to get their part delivered for Sidekick ad.
Story ads - Launch GDN alpha to adsense publisher (cache only) - Design adsense canonical solution - Introduce experiment reporting amp-analytics config to selected stories
User Interface & Accessibility
Status Update Mon Jul 06 2020What was accomplished
OpenJS World Summit
Bento
- Foundational Preact prototype for
amp-base-carousel
- Documenting Bento component design principles
Lessons learned
What's next
- Kris goes on Paternity leave again.
Bento
- Continued progress on
amp-base-carousel
and friends - Changes in review for
amp-social-share
open items - Documentation of
amp-social-share
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
User Interface & Accessibility
Status Update Fri Jul 03 2020What was accomplished
Becca Worked on documents (I2I and I2D) for amp-youtube and amp-img
Kevin Bento implemented a new way of handling children, how to style the individual social share components
Caroline Working on inline gallery features for amp-base-carousel, amp-base-carousel extension is live Allowlisted amp accordion actions in email, fixed template rendering bug for ssr code
Wassim Merged a PR to allowlist select menus Has a PR in review for supporting icon fonts in amp-next-page
Lessons learned
Becca Learned about the flow required for creating new major features in amp
Kevin How shadow group works and how children function in bento
Caroline Did a WFH physical health checkup, and learned you should take a standing break every hour
What's next
Becca Design review for Amp-img and amp-youtube
Kevin Working on tests for amp-social-share
Caroline Amp-base-carousel, amp-inline-gallery, accessibility changes
Wassim Fixing as many amp-next-page issues as possible Completing transition elements
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"
Stories
Status Update Thu Jul 02 2020What was accomplished
- Viewer
- Show(), go(), play/pause(), mute/unmute(), add() callbacks
- Exposed a navigation event
- Bug fixes
- Adding visual tests
- New github dashboard for tracking player-related tasks
- "Interactions" (formerly quizzes & polls)
- Results page implementation
- Demos and documentation of API
- Emoji burst animation
- Videos
- Two fixes for videos on first story page, and simplifying video playback code to reduce surface for bugs
- Custom adaptive bitrate implementation MVP
- Other
- 360 images launch with programmatic animations
What's next
- Viewer
- Preview mode for amp-story-player
- Starting implementation work on entry points
- Wrap to first story after finishing last one
- Merging amp-story-player AMP extension
- "Interactions" (formerly quizzes & polls
- Additional demos and documentation
- Emoji validation for emoji confetti
- Other
- 360 component to support video and gyroscope
- Animation preset enhancements
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
Monetization
Status Update Thu Jul 02 2020What was accomplished
AMP Monetization - Removing AMPHTML ads signing WIP. PRs merged for head validation & ad rendering https://github.com/ampproject/amphtml/issues/27189 - Working a prototype of SideKick creative. Set up joint goals with Kargo.
Story Ads - Onboarded more advertisers with story ad creatives.
Releases - Caught 2 regressions in RC and prevented them from entering prod. - Enhancing inabox auto releaser to use nightly build.
What is next
AMP Monetization - Removing AMPHTML ads signing - SideKick creative task breakdown and implementation
Bento
Status Update Thu Jul 02 2020What was accomplished
- Context API introduced to AMP for discovery phase, value propagation in progress
- Using externs to define types for props, allowing direct prop access and destructuring in components
amp-social-share
:- update experiment name
- design documentation
- configurable
color
andbackgroundColor
for preconfigured providers
- Video players design
amp-base-carousel
:- Initial Preact implementation with looping and smooth scrolling
- AMP layer and default arrow UI in progress
What's next
- Continued progress on Context API
- Add
passthrough-non-empty
foramp-social-share
- Continued progress on Carousel
- Prototype video players
- Prototype extension "auto-envelope" for Bento and AMP modes
User Interface & Accessibility
Status Update Wed Jul 01 2020What was accomplished
Alan Completed design of Video components for Bento and reviewed with Bento team
Caroline Implemented and merged Bento Carousel features including: smooth scrolling and looping Amp version of component and default arrows feature currently in review
Kevin Merged moving of handling iOS target links from AMP to Preact for Social-Share Discussed approach for color of social-share-icons and handling of children with Bento team
Wassim Reviewed Whatsapp implementation Transition out of UI team in progress In process of looking for new host for intern
Lessons learned
What's next
Alan Begin implementation of video components
Caroline Typedefs for existing bento components Continue on Carousel
Kevin Work on passthrough-non-empty children handling for bento and other Social Share features
User Interface & Accessibility
Status Update Mon Jun 08 2020What was Accomplished
- Alan - Workaround for virtual keyboards for datepickers inside lightboxes
- Caroline - Added Bento support for intrinsic and responsive layout, Sizer elements now have a spot to go into shadow DOM when relevant
- Kevin - Completed another iteration on Social-Share, removing bindings from Preact component
- Naina - Completed recording a talk for JS Conference
- Rebecca - Complete amp-img bug (errors were being thrown from event helper in runtime), Draft PR in progress for next bug
Lessons Learned
- Caroline -
amp-carousel:0.2
does not directly rely onamp-base-carousel
- Kevin - Empty commits can be used to kickoff failed travis build on github, Learned more about Closure compiler and type annotations
- Rebecca - More experience with xcode, how to edit host file, how to use travis, how to read pantheon, Learned that you can restart only the broken part of a travis build
What's Next
- All - Fixit week!
- Alan - Video in Bento, Amp story animation docs
- Caroline - Prototyping carousel for bento
- Kevin - Create a design doc for social share to document the various designs and the tradeoffs for them
- Naina - Recording more talks (including Amp contributor summit talk)
User Interface & Accessibility
Status Update Tue Jun 02 2020What was accomplished
-
Final changes in for
<amp-social-share>
in Bento -
amp-img documentation for
<img>
cache transform. -
amp-youtube ad configuration parameter.
-
amp-next-page infinite loop issue
-
Team-wide dogfooding exercise
- Team-wide Fix-it
Lessons learned
- A lot of stale issues
- Lots of setbacks dogfooding!
What's next
- OpenJS World summit next week!
- I2I amp-youtube ad configuration parameter.
- Launch Storybook AMP addon
- Planning priorities for rest of the year.
Stories
Status Update Tue Jun 02 2020What was accomplished
- Started work on results-page components and multi-option polls
- Interactive poll animations (PR pending) https://github.com/ampproject/amphtml/pull/28931
- Fixit week: 25 bugs closed
- Accessibility fixes (https://github.com/ampproject/amphtml/pull/28860, https://github.com/ampproject/amphtml/pull/28780, https://github.com/ampproject/amphtml/issues/28408, https://github.com/ampproject/amphtml/issues/28294)
- complete docs regarding analytics in STAMP
- audio bug fixes
- increased tap target for swipe up
- tooltip dark-theme
- fix sandbox flag bug in player
- Fixed bugs related to video playback and media pool (on story replay)
- 360 videos and images implementation ongoing, with two projections
- Removed amp-story v0.1 (~2 years after deprecation 😅 )
What's next
- Planning 360 media component
- Figure out solutions to improve the audio UX
- Ongoing video performance work (hoping to get bitrate selection prototypes)
- implement show() callback in player
- expose swipe down to close handlers for players
- Starting to design/implement UI primitives / API methods for the story player
- Demos, documentation, and tooling for fixed aspect ratio grid layers
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)
Monetization
Status Update Tue Jun 02 2020What was accomplished
FixIt week - Fixed/closed 11 issues
AMP Monetization - Removing AMPHTML ads signing WIP. Introduced an experiment flag and diversion point in code. Implemented response stream writer. - Launched then reverted removing centering css on amp-ad. Fixed an issue and rolled forward. - Launched JSON targeting expansion experiment to 1% - Launched an experiment to add a padding to sticky ad for devices ad interaction may be impaired (e.g. rounded edge of iPhone X)
Story ads - Now hiding share and volume icons (if ad has no sound) when the ad is showing. - Fixed infinite loop edge case.
Q3 OKR planning
What is next
OpenJS World & Collab summit - The whole wg-ads working group will be attending. - @calebcordry is going to give a talk about the "removing AMPHTML ads signing" work.
AMP Monetization - Work with @dvoytenko to launch the ampdoc-fie experiment - Removing AMPHTML ads signing - Create a reference implementation of Safeframe-based new creative format
Story Ads - Still working to ramp up GDN demand. - Early discussions of experiment framework so we can iterate on optimizations.
User Interface & Accessibility
Status Update Sat May 02 2020What was accomplished
Storybook 📖
- Worked on open sourcing the Storybook addon for AMP
Bento 🍱
- Preact modifications to
SocialShare
merged, ongoing discussions on AMP modifications - Merged initial
amp-selector
andamp-fit-text
implementations - Modified
PreactBaseElement
to create a slot for internal AMP services, i.e. the sizer forlayout=responsive
- Bumped Bento components by a full integer (
0.1
=>1.0
instead of0.1
=>0.2
)
Bugs 🐛
- Kevin's first week on triage!! 🎉
amp-img
missingsrc
leads to obscure error message bug fixamp-carousel:0.2
autoadvance during prerender bug fix
UX 🖥️
amp-lightbox
andamp-image-lightbox
for AMP4Email
Other
- Validating
amp-story-animation
& docs
Lessons learned
return
type of internal objects should be astruct
- static methods inside component functions should be hoisted to improve performance (instantiation)
- Preact props need to be quoted, otherwise they get obscured by the compiler
- You need a computer to do things
- Zewen doesn't like dark mode during the day -- the range of colors expressing the information hierarchy leaves more to be desired
What's next
- modifications to
amp-social-share
- ongoing discussion & design review for lightbox in email
- prototype carousels for Bento
- more bugs to be fixed
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
Stories
Status Update Sat May 02 2020What was accomplished
- a11y bugs related to TalkBack
- Animations for
amp-story-reaction
- Gyroscope experimentation
- Binary polls
- Launched API for programmatic control of the
amp-story-player
- Fixed audio bugs
- Support remote attachments in Safari in the
amp-story-player
What's next
- Continue launching APIs for the
amp-story-player
- Continue work on binary poll
- Documentation pass on analytics
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
Monetization
Status Update Sat May 02 2020What was accomplished
AMP Monetization - Design review done for the new proposed sticky ads format (SideKick ads) - FIE ads chunking in experiment
Story ads - GDN ads ramping up slowly - Some impact to metrics with latest chrome release
What is next
AMP Monetization - Resume no-signing work - Finalize UX decisions and prototype SideKick ads
AMP Ad - Launch removing centering css on amp-ad - Launch chunking on ad component
Story Ads - Reviewing support roadmap with partner ads teams - Increase alpha size to more pubs
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 🤞
Stories
Status Update Fri May 01 2020What was accomplished
amp-story-animation
launched- Video performance bug fixes
amp-story-reaction
refactoring in preparation for new components (quizzes, polls) and finalizing API.- Animation investigation for
amp-story-reaction
- Refactoring of
LocalizationService
- Ability to override story language via an attribute at the player level (wip).
- amp-story-player
- Load stories inside the player from the AMP cache of the publisher's choice. This is specified as an
amp-cache
attribute in the player tag. (e.g.amp-cache="cdn.ampproject.org"
) - Progress on programmatic API hooks for publishers to use (onReady, loadStory, etc..)
- Scoping work for entry points to the player (upcoming interns project).
What's next
- Implementation of animations for
amp-story-reaction
. - Launch API for programmatic control of the
amp-story-player
. - Working through embedded components
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.
Monetization
Status Update Fri May 01 2020What was accomplished
AMPHTML ads - Inabox regression cause found. Ran many experiments to catch back up. Currently back on track with normal amp release. (new regression found in canary with known cause) - Internal review of new format docs. - CSS change experiment currently running at 5% - IntersectionObserver on Firefox testing flakiness issues discussion in progress with Mozilla - Chunking experiment 0.1% on canary
Story ads - GDN alpha test with live publisher starting.
What is next
AMPHTML ads - Resume no-signing work - Monitor and optimize chunking experiment (many experiments running at the same time) - Launch CSS change - Bring new ad format design to external review.
Story Ads - Roll out GDN to larger set of publishers.
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
Stories
Status Update Thu Apr 02 2020What was accomplished
- Work to support
<amp-animation>
support within<amp-story>
- Prototype of polls in stories
- Work to support player
- Manual QA test cases to improve reliability
- Fix for bug where videos don't fall back to other sources if the first source failed to decode
What's next
- Work to fix race conditions that prevent video playback
- Expose JS APIs to programmatically control player
- Start work to productionize polls in stories
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
Monetization
Status Update Thu Apr 02 2020What was accomplished
AMPHTML ads - Debugging inabox performance regressions across April releases. - Continued work on chunking of FIE load (I2I: ampproject/amphtml#27584 & PR: ampproject/amphtml#27585) - CSS change experiment
Story ads - GDN backfill test complete. GAM Demo is ready. Some outstanding questions around adsense. - Monetization metrics exploration
What is next
AMPHTML ads - Continue to investigate regression losses. - Introduce manual regression test and explore other ways to optimize finding of root causes. - Investigation of popular unsupported reservation formats - Resume signing work
Story Ads - Alpha trial of auto generated creatives. - Finalize monetization metrics.
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 AMPHTML ads - More profiling of ff fallback, sticky ad & 3p network doc - Introduce chunking into long promise chain I2I: ampproject/amphtml#27584 & PR: ampproject/amphtml#27585
Story ads - Experiment and E2E testing of auto generated demand - Exploration of introduction of new story ads network
What is next
AMP Monetization AMPHTML ads - Submit chunking experiment and monitor results - Introduce manual regression test - Explore resuming no signing work.
Story Ads - Support integration of new ad server - Ramp up auto generated creatives experiment
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
Monetization
Status Update Tue Mar 03 2020What was accomplished
AMP Monetization
AMPHTML ads - Organized fast fetch findings into doc - Explored with Google Ad Manager team data on reservation formats - Module/nomodule: explore serving only module script for modern browsers - I2I for performance bisection script
Story ads - Ramping up new PM, working to prioritize impression tracking and serving changes. - Strategy around finding existing asset pipeline - Started discussion around available cookies in different serving contexts
What is next
AMP Monetization
AMPHTML ads - Profiling of fast fetch fallback code path - Introduce chunking into long promise chains for fast fetch eg load event - Find out if Ad Manager has potential to attract more amp ads supplies
Story Ads - Work with creation tools interested in integrating new ad server - Re-engage with GDN auto generated creatives
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
Monetization
Status Update Mon Mar 02 2020What was accomplished
AMP Monetization - Exploring "expand to scroll" ads format to better support the multi-size ads.
AMPHTML ads - Removing AMPHTML ads singing WIP: refactoring DOM streaming code. - Ran module/no-module experiment for inabox. Found issue with ads transformer.
Story ads - Design of impression tracking changes to be more inline with in-app interstitials
What is next
AMP Monetization - UX review & design review for "expand to scroll" ads format - Meeting Axios & Kargos to understand the current monetization challenges
AMPHTML ads - Removing AMPHTML ads singing WIP: Connect to new streaming logic. - Fixing the ads module/nomodule transformer and rerun module/nomodule experiment.
Story Ads - Working through impact of ad impression tracking with partner ad networks - Exploration of alternative ad placement strategies to help with shorter stories.
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.
Monetization
Status Update Sun Mar 01 2020What 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 Sun Mar 01 2020What 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
Monetization
Status Update Sun Mar 01 2020What was accomplished
AMP Monetization
AMPHTML ads - Exploration of fast fetch ads performance, identified potential targets - Removing AMPHTML ads singing WIP: working to understand crossover with perf improvements - Exploring new ads format, and established connection with Celtra to bring them to their users - Reviewing the module/nomodule experiment data, finding that inabox ads on Edge has underreported a lot of active views
Story ads - Met with Ad Manager teams around performance tracking, some concerns about web vs app tracking.
What is next
AMP Monetization
AMPHTML ads - Finalize ideas for potential UX metric improvements in conjunction with ad networks. - Removing AMPHTML ads singing WIP: may be reprioritized - Fixing inabox ads on Edge issues - Performance profiling for inabox ads
Story Ads - Escalation of impression tracking changes.
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.
Stories
Status Update Sat Feb 01 2020What was accomplished
Story a11y - Make CTAs not tabbable when not on active page #32840 - Improve tabbing on social-share and bookend #32859 - Rename i-amphtml-orig-tabindex #32867 - Pagination buttons alt text #32861 - Accessible close button in share menu and Twitter overlay #32863 - aria-label on amp-story-360 canvas #32871 - Empty img alt tags #32880 - Accessible close buttons #32925
amp-story-player - ♻️ Mini refactoring #32944
Story video - Do not downgrade a managed video that is already fully loaded #29498 - Manage bitrate on pool elements only (from amp video) #32618 - override aria-label with alt #32963
Story devtools - Add visual diff test for tab loading #31437
Others - amp-story: Images with missing or inadequate text descriptions #32493 - 🐛 Added layout fixed to page-attachment to fix CircleCI test #32732 - Story grid layer documentation - Singleton player experience UX design developments / gestures for closing - Desktop player experience UX design developments - Desktop blurred background technical planning - Google backend disclaimer documentation draft - Implementing CTA design updates - Demo story for responsive grid layer guidelines
What's next
- Building Desktop player experience / planning LE
- Google backend disclaimer documentation finalization
- Implementing CTA design updates
- Localization refactor planning
Monetization
Status Update Sat Feb 01 2020What 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
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
Monetization
Status Update Sun Jan 05 2020What was accomplished
AMP Monetization - Fix partial elements in no signing - No signing speed optimizations - Caught an regression on Beta release channel that was caused by a recent change in RTC
Story Ads - Impression tracking change code complete - Adsense blog post
What is next
AMP Monetization - Port remaining features of amp-sticky-ad to amp-ad (start an experiment) - Implement top sticky ad - Investigate RTC regression
Story ads - Start impression change experiment
Monetization
Status Update Fri Jan 03 2020What was accomplished
AMP Monetization Met with Kargo to understand their experiences with AMP.
AMPHTML ads Started refactor work needed for AMPHTML ads signing. Introducing new statefulness to amp-ad-exit
Story ads Launched Bed Bath & Beyond Fixed CTA button rendering bug in Firefox.
What is next
AMP Monetization Explore design for an AMP bridge for Kargo and other Celtra based creatives. Reach out directly to Celtra team. Explore support of new types of creatives.
AMPHTML ads Changes to A4A base implementation and introduce experiment for removing signing. Investigate a test issue relating to Firefox reported by Google.
Story Ads Discussion around how impression logic should be implemented (web vs native options)
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)
Monetization
Status Update Thu Jan 02 2020What was accomplished
AMP Monetization - Done security review removing signing requirement for AMPHTML ads.
AMPHTML ads - Exploring opportunities for AMPHTML ads to protect user privacy
Story ads - Supporting Adsense team for GDN launch - New "mobile like" view for fullscreen desktop - Fixed impression tracking logic
What is next
AMP Monetization - Implementation of removing signing
AMPHTML ads - Building more format examples of AMPHTML ads
Story Ads - Continue working towards launch of GDN creatives - Discussion around impression logic / parity with existing standards for other story products.
Monetization
Status Update Wed Jan 01 2020What 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
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
Infrastructure
Status Update Thu May 02 2019Release quality
- E2E tests are now a blocking check
- Viewer / Shadow, Chrome / FF
- Integration tests on minified runtime
- Unit tests on Chrome / FF
- GH status:
- Code coverage (non-blocking)
- Failing tests (blocking)
Developer experience
- Prettier adoption complete!
- Closure compiler at v20190513
- Travis CI build / test optimizations
- Local testing:
gulp pr-check
What's next
- Enforce code coverage for lines changed by PRs
- Move owners code to ampproject repo, reuse common libs
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
Infrastructure
Status Update Wed May 01 2019What was accomplished
Release quality
- Progress on fixing failing E2E tests
- IE-11 integration tests are back in blocking mode (tests must opt in)
Developer experience
- Added babel transforms for version numbers and AMP.extension
- Single pass now uses compiler.jar with zero custom passes
- Refactored compilation code
- WIP: PR checks for minified code
What's next
- PR statuses for integration tests
- Make e2e tests a blocking check
- Investigate hermetic AMP tests
- Prettier implementation
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.
User Interface & Accessibility
Status Update Tue Mar 03 0201What 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