La feuille de route du projet 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
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
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)
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
Analytics
Status Update Sat Aug 01 2020What was accomplished
- Web Worker in iframe: Non origin iframe: around 80ms delay in initialization, but can still access IndexDb db. 3P iframe: around 300ms delay in initialization.
- Support visibility tracking of non AMP element
- Consent UI Lightbox mode PR merged
What's next
- Consent: Remove consent string size restriction on publisher's origin when Storage API is not used.
- Store CID to localStorage on origin as backup
- Analytics: Visibility tracking to check element's size before using the intersectionRatio value from IntersectionObserver.
Analytics
Status Update Mon Jul 06 2020What was accomplished
- Fixed amp-analytics FID, LCP collection
- Investigated and Fixed IntersectionObserver polyfill issue in inabox
- Fixed scroll trigger issue
- Expanded
<amp-story-consent>
config support
Analytics
Status Update Thu Jul 02 2020What was accomplished
- Update
<amp-story-consent>
to support config in new format <amp-consent>
doc improvement (metaData, TCF support, promptUISrc, inline postPromptUI)<amp-consent>
UI lightbox mode when initial height is greater than 80vh. (#29204)- Decided to keep analytics service running and maintain states when the ampdoc becomes inactive. (This means the lower level timer trigger will continue to fire unless there's a
stopSpec
) - All 3rd background cross origin iframe usage in AMP will NOT be allowed w/o special approval. (#28471)
What's next
- SESSION_ID to support a session id that expires after a defined time
- Support tracking visibility of non AMP elements
Analytics
Status Update Tue Jun 02 2020What was accomplished
- Fixit week 9 closed issues
- Consent Metadata PRs landed. Introduced
getConsentMetadata
to get TCF v2 related consent meta data including consent string type, gdprApplies and additional consent string info. - Consent UI Lightbox design
- Enabled
data-vars
attribute for analytics events by default - Further expanded the consent info storage limit to 1200 in chars
- Add
expireCache
support to amp-consent reprompt action - Deprecated and clean up the analytics mApp support.
What's next
- OpenJS World Summit
- Consent UI lightbox mode API Design
- InOb Polyfill usage in analytics investigation
- Expand iframe-transport feature to all analytics vendors (still under discussion)
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
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.
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
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
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
Analytics
Status Update Mon Mar 02 2020What was accomplished
- ANALYTICS_VENDOR_SPLIT Clean up is done. Vendors need to submit .json file instead of .js file in the future
- Consent String size limit was increased from 150 bytes to 200 bytes. Future increase is still under discussion
<amp-geo>
falls back togeoApi
when geo hot patch is not available. (e.g. self hosting)- Visibility trigger improvements for
<amp-analytics>
: multi-selector, querySelectorAll, and non-amp elements <amp-consent>
UX and a11y improvements rolled out
What's next
- Benchmark individual features and heavy operations performance
- Explore webworker solution for heavy operations
Analytics
Status Update Sun Mar 01 2020What was accomplished
- Benchmark
<amp-analytics>
performance and pageView delay - Use existing performance testing framework to also measure request delay.
- Explore solutions to reduce analytics related long tasks. (chunk, worker)
What's next
<amp-consent>
gdprApplies
field- Continue work to reduce analytics related long tasks
- Reduce
<amp-analytics>
pageView delay. Some proposals include: include vendor predefined config inline, introduce a lite component for ads.
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)
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
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
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
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