CINXE.COM
The Forrester Wave™: Customer Identity And Access Management, Q4 2023
<!doctype html> <html lang="en"> <head > <title>The Forrester Wave™: Customer Identity And Access Management, Q4 2023</title> <meta content="width=device-width, initial-scale=1" name="viewport"/> <link rel="dns-prefetch" href="https://fonts.gstatic.com"/> <link rel="dns-prefetch" href="https://fonts.googleapis.com"/> <link rel="dns-prefetch" href="https://kit.fontawesome.com"/> <link rel="dns-prefetch" href="https://images.hushly.com"/> <!-- Place your kit's code here --> <script src="https://kit.fontawesome.com/8fd9244eb7.js" crossorigin="anonymous" async></script> <link rel="stylesheet" href="/font-css/ef5af0b6-fb86-11ec-8859-067373548d75.css"> <link rel="stylesheet" href="/assets/application-d0b1320b5745ff86dcaf89422dc83513.css" /> <link rel="stylesheet" href="/assets/theme1-ce5c46e515fd8aa85e73b65cc97689cf.css" /> <script type="text/javascript" src="/assets/hubs-v3-index-ef9c806123a25ec213250ed1e1ac1069.js" ></script> <link rel="icon" type="image/x-icon" href="https://www.pingidentity.com/etc.clientlibs/settings/wcm/designs/pic6/assets/resources/images/favicon-new.png" id="fav-icon"> <style> :root { --hly-tiles-align: default; --hly-tiles-per-row: 3; --hly-show-read-watch-time: true; --hly-show-excerpts: true; --hly-snlp-recommendations-position: row; --hly-btn-border-radius-light-hover: 0; --hly-btn-border-radius-light: 0; --hly-btn-border-width-light-hover: 1px; --hly-btn-border-width-light: 1px; --hly-btn-border-light-hover: #992226; --hly-btn-border-light: #b3282d; --hly-btn-text-light-hover: #992226; --hly-btn-text-light: #b3282d; --hly-btn-bg-light-hover: #FCFCFD; --hly-btn-bg-light: #ffffff; --hly-btn-border-radius-secondary-hover: 0; --hly-btn-border-radius-secondary: 0; --hly-btn-border-width-secondary-hover: 1px; --hly-btn-border-width-secondary: 1px; --hly-btn-border-secondary-hover: #992226; --hly-btn-border-secondary: #b3282d; --hly-btn-text-secondary-hover: #992226; --hly-btn-text-secondary: #b3282d; --hly-btn-bg-secondary-hover: #ffffff; --hly-btn-bg-secondary: #ffffff; --hly-btn-border-radius-primary-hover: 0; --hly-btn-border-radius-primary: 0; --hly-btn-border-width-primary-hover: 1px; --hly-btn-border-width-primary: 1px; --hly-btn-border-primary-hover: #992226; --hly-btn-border-primary: #b3282d; --hly-btn-text-primary-hover: #fff; --hly-btn-text-primary: #FCFCFD; --hly-btn-bg-primary-hover: #992226; --hly-btn-bg-primary: #b3282d; --hly-text-light: #69747d; --hly-text-secondary: #505d68; --hly-text-primary: #101828; --hly-font-primary: 'Plus Jakarta Sans', sans-serif; --hly-font-secondary: 'Inter', sans-serif; } </style> <style id="hly-theme-css"> @font-face{font-family:"gotham-black";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Black.otf");} @font-face{font-family:"gotham-bold";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Bold.otf");} @font-face{font-family:"gotham-medium";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Medium.otf");} @font-face{font-family:"gotham-book";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Book.otf");} @font-face{font-family:"gotham-light";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Light.otf");} @font-face{font-family:"gotham-xlight";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-XLight.otf");} @font-face{font-family:"gotham-xblack";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/GothamCond-XBlack_Web.woff2");} @font-face{font-family:"gotham-xmedium";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Medium_Web.woff2");} @font-face{font-family:"gotham-xbold";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/GothamNarrow-Black_Web.woff2");} body, a, h1, h2, h3, h4, h5, h6, div, span { font-family: "gotham-book" !important; } /* Button icon to center */ .hly-download img { position: relative; top: 2px; } /* pagination to center */ .hly-page-numbers { margin:auto; } </style> <script type="application/javascript"> Hushly.HubV3.hub = {"id":"ldtpp6kklvu47lrstub6rb1g32","name":"hub.pingidentity","language":{"id":1,"name":"English","code":"en"},"autoPlayVideo":false}; Hushly.HubV3.asset = {"guid":"nsr2v893h7r6cjfuk3u33umd8i","name":"The Forrester Wave\u2122: Customer Identity And Access Management, Q4 2023","title":"The Forrester Wave\u2122: Customer Identity And Access Management, Q4 2023","description":"Ping Identity named a leader in the Forrester Wave\u2122 CIAM report.","contentType":"Document","typeCode":"analyst-report","totalSize":1.0,"previewSize":1.0,"thumbnailUrl":"https://hushly.s3.amazonaws.com/22884/docs/41638/thumbnail.jpg?t=1720536611000","entityId":41638,"previewRange":"1","mediaId":490864,"seoTitle":"The Forrester Wave\u2122: Customer Identity And Access Management, Q4 2022","seoDescription":"Ping Identity named a leader in the Forrester Wave CIAM Report.","ungated":false,"downloadToken":"bpmoi7jec32jio5qj1al1cprg9","thumbnailUrl1":"https://hushly.s3.amazonaws.com/22884/docs/41638/thumbnail1.jpg?t=1720536611000","type":"Analyst Report","type_en":"Analyst Report","languageCode":"en","anonymousDownload":false,"enableContentConversation":false}; Hushly.HubV3.stream = {"id":"fak6d1r95o5m110s9631sqj2kr","name":"Analyst Reports","language":"en","slug":"analyst-reports","hubId":"ldtpp6kklvu47lrstub6rb1g32"}; Hushly.HubV3.company = {"id":22884,"name":"Ping Identity"}; Hushly.HubV3.visitorData = {"countryId":187,"countrySource":"ipAddress"}; Hushly.HubV3.settings = {"landingPageScript":"//Fired before the Experience Trigger is activated, This event is fired only when the user is interacting with Experiences.\r\nHushly.HubV3.execute(\"bind\", 'before-trigger-activate', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_before_trigger_activate',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId\r\n });\r\n});\r\n\r\n//Fired after the Hushly Experience is popped or the Stream Content Page is viewed.\r\nHushly.HubV3.execute(\"bind\", 'content-view', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_content_view',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fired when a user interacts with the content like scrolling the pages or clicking the Play button for video-type content\r\nHushly.HubV3.execute(\"bind\", 'content-interaction', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_content_interaction',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'interaction_category': options.category,\r\n 'interaction_type': options.type,\r\n 'page_number': options.pageNumber,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n\r\n//When a user selects content in the Recommendation section by clicking on it and views the Content Page.\r\nHushly.HubV3.execute(\"bind\", 'recommendation-open', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_recommendation_open',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fired when a user views the Hushly Form in an Experience or Stream Item Page\r\nHushly.HubV3.execute(\"bind\", 'form-view', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_form_view',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'country': options.country,\r\n 'page_url': options.pageUrl,\r\n 'referrer': options.referrer,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fires when a form submission is failed. Eg. when a user submits a non-business email address or a role email address.\r\nHushly.HubV3.execute(\"bind\", 'invalid-form-submit', function(formData) {\r\n dataLayer.push({\r\n 'event': 'hushly_invalid_form_submit',\r\n 'asset_id': formData.assetId,\r\n 'asset_name': formData.assetName,\r\n 'asset_type': formData.assetType,\r\n 'experience_id': formData.experienceId,\r\n 'experience_name': formData.experienceName,\r\n 'stream_id': formData.streamId,\r\n 'stream_name': formData.streamName,\r\n 'trigger_type': formData.triggerType,\r\n 'content_rule_id': formData.contentRuleId,\r\n 'country': formData.country,\r\n 'page_url': formData.pageUrl,\r\n 'referrer': formData.referrer,\r\n 'abm_visitor': formData.visitor,\r\n 'abm_account': formData.account,\r\n 'abm_page': formData.page\r\n });\r\n});\r\n\r\n//Fired when a user successfully submits a Hushly Form in an Experience or Stream Item Page\r\nHushly.HubV3.execute(\"bind\", 'form-submit', function(formData) {\r\n dataLayer.push({\r\n 'event': 'hushly_form_submit',\r\n 'asset_id': formData.assetId,\r\n 'asset_name': formData.assetName,\r\n 'asset_type': formData.assetType,\r\n 'experience_id': formData.experienceId,\r\n 'experience_name': formData.experienceName,\r\n 'stream_id': formData.streamId,\r\n 'stream_name': formData.streamName,\r\n 'trigger_type': formData.triggerType,\r\n 'content_rule_id': formData.contentRuleId,\r\n 'country': formData.country,\r\n 'page_url': formData.pageUrl,\r\n 'referrer': formData.referrer,\r\n 'abm_visitor': formData.visitor,\r\n 'abm_account': formData.account,\r\n 'abm_page': formData.page\r\n });\r\n});\r\n\r\n//Fired when the Experience is closed, This event is fired when the user closes the Experience.\r\nHushly.HubV3.execute(\"bind\", 'experience-close', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_experience_close',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId\r\n });\r\n});\r\n\r\n//Fired when the user anonymously downloads an Asset at the Experience or Stream level.\r\nHushly.HubV3.execute(\"bind\", 'anonymous-download', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_anonymous_download',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'widget_id': options.widgetId,\r\n 'content_rule_id': options.contentRuleId,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fired when the user performs a search in the Hub.\r\nHushly.HubV3.execute(\"bind\", 'search', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_search',\r\n 'query': options.query\r\n });\r\n});\r\n\r\n//Fired when the user clicks on the CTA Button.\r\nHushly.HubV3.execute(\"bind\", 'abm-cta-click', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_abm_cta_click',\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});","fullTextIndexing":false,"conversationalContent":true,"showOptInField":true,"disableDoubleOptIn":true,"hiddenFields":["Marketo_Temp_CampaignID__c"]}; Hushly.HubV3.reportingVendors = [{"code":"GoogleTagManager","attributes":{"EVENTS":{"content-view":true,"content-interaction":true,"invalid-form-submit":true,"form-submit":true,"anonymous-download":true,"stream-view":true,"abm-cta-click":true,"hub-cta-click":true,"embed-stream-item-click":true,"webx-impression":true,"conversion":true}}}]; Hushly.HubV3.setQueryParams(); </script> <style type="text/css" id="hly-custom-css"> </style> <div id="webdev_navbar_3rd_party" data-config-path="/www_en_reimagineNavbarConfigs.json"> <div style="height: 88px;"></div> </div> <script> var streamLang = Hushly.HubV3.stream.language; var enNav = "/www_en_reimagineNavbarConfigs.json"; var deNav = "/www_de_reimagineNavbarConfigs.json"; var frNav = "/www_fr_reimagineNavbarConfigs.json"; var esNav = "/www_es_reimagineNavbarConfigs.json"; var ptNav = "/www_pt_reimagineNavbarConfigs.json"; var jaNav = "/www_ja_reimagineNavbarConfigs.json"; var navLang = document.querySelector("#webdev_navbar_3rd_party"); if(streamLang === "en"){ navLang.setAttribute("data-config-path", enNav); } else if(streamLang === "de"){ navLang.setAttribute("data-config-path", deNav); } else if(streamLang === "fr"){ navLang.setAttribute("data-config-path", frNav); } else if(streamLang === "es"){ navLang.setAttribute("data-config-path", esNav); } else if(streamLang === "pt"){ navLang.setAttribute("data-config-path", ptNav); } else if(streamLang === "ja"){ navLang.setAttribute("data-config-path", jaNav); } else{ navLang.setAttribute("data-config-path", enNav); } </script> <script defer src="https://www.pingidentity.com/api_cached/navbar/latest/dist/hash/client3rdStepInit.js"> </script> <style> @font-face{font-family:"gotham-black";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Black.otf");} @font-face{font-family:"gotham-bold";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Bold.otf");} @font-face{font-family:"gotham-medium";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Medium.otf");} @font-face{font-family:"gotham-book";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Book.otf");} @font-face{font-family:"gotham-light";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Light.otf");} @font-face{font-family:"gotham-xlight";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-XLight.otf");} @font-face{font-family:"gotham-xblack";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/GothamCond-XBlack_Web.woff2");} @font-face{font-family:"gotham-xmedium";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/Gotham-Medium_Web.woff2");} @font-face{font-family:"gotham-xbold";src:url("https://hushly.s3.amazonaws.com/22884/static/fonts/GothamNarrow-Black_Web.woff2");} body, a, h1, h2, h3, h4, h5, h6 { font-family: "gotham-book" !important; } span.vjs-icon-placeholder, div.vjs-volume-panel, .vjs-next-button .vjs-icon-placeholder, button.vjs-play-control, li.vjs-menu-item { font-family: "VideoJS" !important; } ul.top-nav__collapse > li, .navbar-nav.top-nav__upper-navs > li > div, li.navbar__buttons > a, li#signOn-top-nav__upper-navs > a, div.navbar-nav.top-nav__alert-banner > a, a.navbar__menu-item, .top-nav__upper-nav .navbar-nav top-nav__alert-banner > a a.hly-menu-item-link, .hly-menu-item-link, .ping-pic.ping-pic__footer .footer__nav>li>h2, .hly-streamItem-page .ping-pic.ping-pic__footer .page__footer .footer__nav li h2, .hly-stream-page .ping-pic.ping-pic__footer .page__footer .footer__nav li h2, .button.button--1 > span, .button.button--red > span, div.top-nav__language { font-family: "gotham-medium" !important; } .hly-search-left-title { font-family: "gotham-bold" !important; } .hly-tile-img img { height: auto !important; } #heroContainer, .container-9d7ffe8c-bdcf-4bd2-8752-a3b35c8887e7, .container-5180037f-901f-4e46-a7e0-0a840d781a46, .container-6ae430fd-d133-46a2-9f74-fadac2d11974, #ping-pic__custom-carousel, #container-005014dd-8db8-4487-a91d-1c3399a6e7bc, #container-7976b696-fd62-409c-bcf8-1650ce3296bb, #container-bc688177-01b3-4339-a546-0ff6b561bcfa, #container-a5534158-5c43-4e3f-8bf2-2015c43ee6f4 { /* display: none !important; */ } .hly-document .hly-pages-container .hly-toolbar.sticky { top: 87px !important; } .hly-tile, .hly-search-input input, .hly-search-input .hly-search-icon { border-radius: unset !important; } .hly-search-input input { border-right: unset !important; } a.hly-menu-item-link:hover { text-decoration: underline !important; } ul.hly-filter-options { list-style: none; padding: 0; padding-bottom: 28px; } li.hly-filter-option { margin-top: 20px; line-height: 20px !important; cursor: pointer; } div.hly-filter-checkbox.hly-side-filter-checkbox{ display: block; margin-left: 33px; cursor: pointer; } .hly-filter-checkbox input[type=checkbox]:not(:checked) { border: 1px solid #69747d; } .hly-filter-checkbox input[type=checkbox] { -webkit-appearance: none; -moz-appearance: none; appearance: none; position: absolute; margin-right: 8px; margin-left: -33px; background: #fbfbfc; height: 20px; width: 20px; cursor: pointer; } .hly-filter-checkbox input[type=checkbox]:checked::after { content: "X"; font-size: 17px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; color: #b3282d; border: 1px solid #b3282d; width: 20px; height: 20px; padding-left: 1px; } .hly-filter-checkbox input[type=checkbox]:checked+label { color: #b3282d !important; } .hly-search-left-title, .hly-filter-name { font-size: 20px !important; font-weight: 200 !important; line-height: 28px !important; color: #051727 !important; } .hly-filter-option .hly-filter-checkbox .hly-filter-label { margin-left: unset !important; } .hly-cta .hly-cta-container .hly-cta-content { background-size: contain !important; background-repeat: no-repeat; } .hly-item-recommendations .hly-cta { min-height: 360px !important; } .hly-recommendations .hly-recommend-list .hly-recommendation-item { border-radius:0!important; } .hly-recommendations{ border-radius:0!important; } .hly-previous-item, .hly-next-item, .hly-paginate img{ border-radius:0!important; } .hly-search-left { top: 110px !important; } .hly-tile article figure img { /* height:auto !important; */ object-fit: unset !important; } .hly-search-result-container .hly-tile article figure img { /* height: unset !important; */ object-fit: unset !important; } .hly-asset-time{ display:none!important; } #hushlyBlogEmbed{ height:1500px; } .hly-stream-item-recommendations-header{ font-size:21px; } .hly-loader-container{ border-radius:0px!important; } .hly-loader-tile{ border-radius:0px!important; } .left-msg .msg-img-holder{ display:flex; justify-content:center; } .left-msg .msg-img-holder .msg-img{ background-image:url(https://images.pingidentity.com/image/upload/f_auto,q_auto,w_127,h_132,c_scale/ping_dam/content/dam/picr/img/m/pingy.png), url(https://s3.us-west-1.amazonaws.com/statics.hushly.com/22884/qr45fhbo9m5lnjmq19fdtrmekb.png)!important; top:0!important; left:0!important; width:30px!important; height:31px!important; align-self:center; border-radius:0!important; } /* Moesources/psd2-and-open-banking-solution-guide-1?hly-preview=1bile */ @media only screen and (max-width: 768px) { .hly-item-recommendations { z-index: unset !important; } .hly-menu.hly-hub-menu active, .hly-menu:not(.hly-non-responsive) { top: 105px !important; } .hly-document .hly-pages-container .hly-toolbar.sticky { top: 60px !important; } .hly-stream-page .multiple-filter, .hly-streamItem-page .multiple-filter { top: 100px !important; } .hly-stream-page .filter-body, .hly-streamItem-page .filter-body { height: calc(88vh - 140px); } .checkbox input:checked+label:before { background: unset !important; border: 1px solid #b3282d; } div.checkbox input:checked+label:after { content: 'X'; color: #b3282d !important; top: 0px !important; left: 3px !important; } .hly-xs-filter-checkbox input[type=checkbox]:checked+label { color: #b3282d !important; } .hly-header { /* z-index: unset !important; */ } .page__header { z-index: 99999 !important; } } @media only screen and (max-width: 1025px) { .hly-document .hly-pages-container .hly-toolbar.sticky { top: 70px !important; z-index: 99 !important; } .hly-search-left.hly-sticky-70.hly-mobile-none { z-index: unset !important; } .hly-menu:not(.hly-non-responsive) { position: fixed; top: 100px; } .hly-header { z-index: 9999; } .hly-header.hly-stuck { z-index: 999 !important; } .page__header { z-index: 99999 !important; } } </style> <style> .hly-cta { background-color: #D6311B; background-image: linear-gradient(to top right, #D84332, #D6311B, #B3282D)!important; padding:0!important; min-height: 465px; } .hly-cta-container { background-color:transparent!important; } .hly-cta-header { font-size:28px!important; color:#fff!important; text-align:left!important; font-weight:700!important; padding-top:50px!important; background-image:url(https://images.pingidentity.com/image/upload/f_auto,q_auto,w_1000,c_scale/ping_dam/content/dam/picr/nav/Logo-Ping-Horizontal-White.svg); background-repeat:no-repeat!important; background-size:50%!important; font-family: 'gotham-bold'!important; } .hly-cta-content { background-color:transparent!important; } .hly-cta-btn { color:#000!important; background-color:#fff!important; } </style> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-N97H8ZP9');</script> <!-- End Google Tag Manager --> <script> window.getHushlyConfig = function (callback) { let result = {ungated: false}; //Function to read value of a cookie function readCookie(name) { var cookiename = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(cookiename) == 0) return c.substring(cookiename.length,c.length); } return null; } var munchkinId = readCookie('_mkto_trk'); let ungated = sessionStorage.getItem('ungated'); if(munchkinId && ungated == undefined) { const leadRequest = new Request('https://app.hushly.com/runtime/marketoLead?companyId=22884&id=' + encodeURIComponent(munchkinId)); fetch(leadRequest) .then((response) => { if (!response.ok) { throw new Error(`HTTP error! Status: ${ response.status }`); } return response.json(); }) .then((response) => { //console.log('Lead Response: ', response); sessionStorage.setItem('ungated', response.extantLead); result.ungated = (response.extantLead); result.anonymousDownload = (response.extantLead); callback(result); }); } else { if(ungated == 'true') { result.ungated = true; result.anonymousDownload = true; } callback(result); } } </script> <script> //below allows for downloads without email on ungated assets when param is hlyungate=true if(document.location.href.includes('hlyungate=true')){ console.log('ungated query param success'); window.getHushlyConfig = function (callback) { let result ={ungated: true, anonymousDownload: true}; console.log('Hub Result is:', result); callback(result); }; } else{} //end hlyungate </script> <meta name="title" content="The Forrester Wave™: Customer Identity And Access Management, Q4 2022"> <meta property="og:title" content="The Forrester Wave™: Customer Identity And Access Management, Q4 2022"> <meta name="description" content="Ping Identity named a leader in the Forrester Wave CIAM Report."> <meta property="og:description" content="Ping Identity named a leader in the Forrester Wave CIAM Report."> <meta property="og:image" content="https://hushly.s3.amazonaws.com/22884/docs/41638/thumbnail.jpg?t=1720536611000"> <link rel="canonical" class="hly-canonical-url" href="https://hub.pingidentity.com/resources/forrester-wave-ciam"> </head> <body class=" hly-streamItem-page hly-streamItem-page-nsr2v893h7r6cjfuk3u33umd8i"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N97H8ZP9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="content" role="main"> <section class="hly-header"> <!-- Navbar Section --> <div class="header-item-center hly-container"> <div class="hly-menu-mobile-overlay"></div> <nav role="navigation" aria-label="Hub Menu" class="hly-menu hly-hub-menu" id="hly-menu"> <div class="hly-menu-mobile-header"> <button type="button" class="hly-menu-mobile-arrow" aria-label="Back" title="Back"> <img src="/assets/arrow-left.svg" alt="Back"> </button> <div class="hly-menu-mobile-title"></div> <button type="button" class="hly-menu-mobile-close" aria-label="Close" title="Close"> <img src="/assets/close.svg" alt="Close"> </button> </div> <ul class="hly-menu-bar" role="menubar"> <li class="hly-menu-item "> <a href="/" class="hly-menu-item-link" target="_self" aria-haspopup="false">All Resources <span class="hly-menu-navigate-right"></span> </a> </li> <li class="hly-menu-item hly-menu-item-has-children hly-is-hoverable"> <a href="/ciam" class="hly-menu-item-link" target="_self" aria-controls="hly-menu-1" aria-expanded="false" aria-haspopup="true">Customer Identity <span class="hly-menu-navigate-right"></span> </a> <div id="hly-menu-1" aria-label="Customer Identity" class="hly-sub-nav"> <h4>Customer Identity</h4> <hr> <ul role="menu"> <li class="hly-sub-nav-menu-item" role="presentation" ><a href="/customer-experience" role="menuitem">Customer Experience</a></li> <li class="hly-sub-nav-menu-item" role="presentation" ><a href="/passwordless-ciam" role="menuitem">Passwordless</a></li> <li class="hly-sub-nav-menu-item" role="presentation" ><a href="/fraud" role="menuitem">Fraud Prevention</a></li> </ul> </div> </li> <li class="hly-menu-item hly-menu-item-has-children hly-is-hoverable"> <a href="/workforce-identity" class="hly-menu-item-link" target="_self" aria-controls="hly-menu-2" aria-expanded="false" aria-haspopup="true">Workforce Identity <span class="hly-menu-navigate-right"></span> </a> <div id="hly-menu-2" aria-label="Workforce Identity" class="hly-sub-nav"> <h4>Workforce Identity</h4> <hr> <ul role="menu"> <li class="hly-sub-nav-menu-item" role="presentation" ><a href="/governance" role="menuitem">Governance</a></li> <li class="hly-sub-nav-menu-item" role="presentation" ><a href="/zero-trust" role="menuitem">Zero Trust</a></li> </ul> </div> </li> </ul> </nav> </div> <div class="hly-header-container hly-header-body"> <button type="button" class="hly-menu-mobile-toggle" title="Menu" id="hly-menu-mobile" aria-label="Menu"> <img src="/assets/xs-menu.svg" alt="Menu" class="pointer"> </button> <div class="hly-justify-content-between hly-desktop-none hly-mobile-filters"> <div style="overflow: hidden"> <img src="/assets/xs-search.svg" alt="Keyword to Search" class="pointer xs-search-icon" role="button" aria-controls="hly-mobile-search"> <img src="/assets/xs-filter.svg" alt="Filters" class="pointer xs-filter-icon" role="button" aria-controls="hly-mobile-filter"> </div> <div class="xs-input" id="hly-mobile-search" role="dialog"> <input type="text" class="xs-input-control" id="hly-xs-search-input" placeholder="Find Resources" value=""> <img src="/assets/xs-input-close.svg" alt="Close" class="xs-input-close"> </div> <!-- filter mobile start --> <div class="multiple-filter xs-filter" id="hly-mobile-filter" role="dialog"> <div class="filter-header hly-filter-header"> <h4 class="hly-header-md">Filters</h4> <img src="/assets/xs-close.svg" alt="Close" class="xs-filter-cancel pointer"> </div> <div class="filter-body"> <div class="hly-p-20 hly-border-right"> <h4 class="hly-filter-name">Content Type</h4> <ul class="list-unstyled"> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="2524" data-filter-code="content_type_1" class="hly-filter-input" name="Analyst Report" value="analyst-report" data-code="" > <label for="2524"> Analyst Report</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5368" data-filter-code="content_type_1" class="hly-filter-input" name="Article" value="article" data-code="" > <label for="5368"> Article</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5369" data-filter-code="content_type_1" class="hly-filter-input" name="Blog" value="blog" data-code="" > <label for="5369"> Blog</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5370" data-filter-code="content_type_1" class="hly-filter-input" name="Brief" value="brief" data-code="" > <label for="5370"> Brief</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5371" data-filter-code="content_type_1" class="hly-filter-input" name="Customer Story" value="customer-story" data-code="" > <label for="5371"> Customer Story</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5372" data-filter-code="content_type_1" class="hly-filter-input" name="Datasheet" value="datasheet" data-code="" > <label for="5372"> Datasheet</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5373" data-filter-code="content_type_1" class="hly-filter-input" name="Demo" value="demo" data-code="" > <label for="5373"> Demo</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5374" data-filter-code="content_type_1" class="hly-filter-input" name="eBook" value="ebook" data-code="" > <label for="5374"> eBook</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5375" data-filter-code="content_type_1" class="hly-filter-input" name="Guide" value="guide" data-code="" > <label for="5375"> Guide</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5376" data-filter-code="content_type_1" class="hly-filter-input" name="Infographic" value="infographic" data-code="" > <label for="5376"> Infographic</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5377" data-filter-code="content_type_1" class="hly-filter-input" name="List" value="list" data-code="" > <label for="5377"> List</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5378" data-filter-code="content_type_1" class="hly-filter-input" name="Misc" value="misc" data-code="" > <label for="5378"> Misc</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5380" data-filter-code="content_type_1" class="hly-filter-input" name="Survey Report" value="survey-report" data-code="" > <label for="5380"> Survey Report</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5381" data-filter-code="content_type_1" class="hly-filter-input" name="Video" value="video" data-code="" > <label for="5381"> Video</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5383" data-filter-code="content_type_1" class="hly-filter-input" name="Webinar" value="webinar" data-code="" > <label for="5383"> Webinar</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5384" data-filter-code="content_type_1" class="hly-filter-input" name="White Paper" value="white-paper" data-code="" > <label for="5384"> White Paper</label> </div> </li> </ul> </div> <div class="hly-p-20 hly-border-right"> <h4 class="hly-filter-name">Industry</h4> <ul class="list-unstyled"> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6372" data-filter-code="industry" class="hly-filter-input" name="Automotive" value="automotive" data-code="" > <label for="6372"> Automotive</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="763" data-filter-code="industry" class="hly-filter-input" name="Financial Services" value="financial-services" data-code="" > <label for="763"> Financial Services</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="768" data-filter-code="industry" class="hly-filter-input" name="Healthcare" value="healthcare" data-code="" > <label for="768"> Healthcare</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6373" data-filter-code="industry" class="hly-filter-input" name="Insurance" value="insurance" data-code="" > <label for="6373"> Insurance</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="764" data-filter-code="industry" class="hly-filter-input" name="Manufacturing" value="manufacturing" data-code="" > <label for="764"> Manufacturing</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6374" data-filter-code="industry" class="hly-filter-input" name="Media & Telco" value="media-telco" data-code="" > <label for="6374"> Media & Telco</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="765" data-filter-code="industry" class="hly-filter-input" name="Public Sector" value="public-sector" data-code="" > <label for="765"> Public Sector</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="767" data-filter-code="industry" class="hly-filter-input" name="Retail" value="retail" data-code="" > <label for="767"> Retail</label> </div> </li> </ul> </div> <div class="hly-p-20 hly-border-right"> <h4 class="hly-filter-name">Capability</h4> <ul class="list-unstyled"> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="774" data-filter-code="capability" class="hly-filter-input" name="Administration" value="administration" data-code="" > <label for="774"> Administration</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="770" data-filter-code="capability" class="hly-filter-input" name="API Security" value="api-security" data-code="" > <label for="770"> API Security</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="771" data-filter-code="capability" class="hly-filter-input" name="Authentication" value="authentication" data-code="" > <label for="771"> Authentication</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="773" data-filter-code="capability" class="hly-filter-input" name="Digital Credentials" value="digital-credentials" data-code="" > <label for="773"> Digital Credentials</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="769" data-filter-code="capability" class="hly-filter-input" name="Directory" value="directory" data-code="" > <label for="769"> Directory</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="772" data-filter-code="capability" class="hly-filter-input" name="Dynamic Authorization" value="dynamic-authorization" data-code="" > <label for="772"> Dynamic Authorization</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5349" data-filter-code="capability" class="hly-filter-input" name="Fraud Detection" value="fraud-detection" data-code="" > <label for="5349"> Fraud Detection</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5350" data-filter-code="capability" class="hly-filter-input" name="Identity Governance" value="identity-governance" data-code="" > <label for="5350"> Identity Governance</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5351" data-filter-code="capability" class="hly-filter-input" name="Identity Management" value="identity-management" data-code="" > <label for="5351"> Identity Management</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5352" data-filter-code="capability" class="hly-filter-input" name="Identity Verification" value="identity-verification" data-code="" > <label for="5352"> Identity Verification</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5353" data-filter-code="capability" class="hly-filter-input" name="MFA" value="mfa" data-code="" > <label for="5353"> MFA</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5354" data-filter-code="capability" class="hly-filter-input" name="Orchestration" value="orchestration" data-code="" > <label for="5354"> Orchestration</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5355" data-filter-code="capability" class="hly-filter-input" name="Personal Identity" value="personal-identity" data-code="" > <label for="5355"> Personal Identity</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5423" data-filter-code="capability" class="hly-filter-input" name="Risk Management" value="risk-management" data-code="" > <label for="5423"> Risk Management</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6370" data-filter-code="capability" class="hly-filter-input" name="SSO" value="sso" data-code="" > <label for="6370"> SSO</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6371" data-filter-code="capability" class="hly-filter-input" name="Web/API Access" value="web-api-access" data-code="" > <label for="6371"> Web/API Access</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6793" data-filter-code="capability" class="hly-filter-input" name="Access Request" value="access-request" data-code="" > <label for="6793"> Access Request</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6794" data-filter-code="capability" class="hly-filter-input" name="Access Review" value="access-review" data-code="" > <label for="6794"> Access Review</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6795" data-filter-code="capability" class="hly-filter-input" name="Authorization" value="authorization" data-code="" > <label for="6795"> Authorization</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6796" data-filter-code="capability" class="hly-filter-input" name="Lifecycle Management" value="lifecycle-management" data-code="" > <label for="6796"> Lifecycle Management</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6797" data-filter-code="capability" class="hly-filter-input" name="Relationship Management" value="relationship-management" data-code="" > <label for="6797"> Relationship Management</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6798" data-filter-code="capability" class="hly-filter-input" name="Segregation of Duties" value="segregation-of-duties" data-code="" > <label for="6798"> Segregation of Duties</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6799" data-filter-code="capability" class="hly-filter-input" name="Threat Protection" value="threat-protection" data-code="" > <label for="6799"> Threat Protection</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6845" data-filter-code="capability" class="hly-filter-input" name="B2B Identity" value="b2b-identity" data-code="" > <label for="6845"> B2B Identity</label> </div> </li> </ul> </div> <div class="hly-p-20 hly-border-right"> <h4 class="hly-filter-name">Product</h4> <ul class="list-unstyled"> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6482" data-filter-code="product" class="hly-filter-input" name="PingGateway" value="pinggateway" data-code="" > <label for="6482"> PingGateway</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="777" data-filter-code="product" class="hly-filter-input" name="PingAccess" value="pingaccess" data-code="" > <label for="777"> PingAccess</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="782" data-filter-code="product" class="hly-filter-input" name="PingAuthorize" value="pingauthorize" data-code="" > <label for="782"> PingAuthorize</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="779" data-filter-code="product" class="hly-filter-input" name="PingCentral" value="pingcentral" data-code="" > <label for="779"> PingCentral</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="783" data-filter-code="product" class="hly-filter-input" name="PingDirectory" value="pingdirectory" data-code="" > <label for="783"> PingDirectory</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="775" data-filter-code="product" class="hly-filter-input" name="PingFederate" value="pingfederate" data-code="" > <label for="775"> PingFederate</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="780" data-filter-code="product" class="hly-filter-input" name="PingID" value="pingid" data-code="" > <label for="780"> PingID</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="781" data-filter-code="product" class="hly-filter-input" name="PingIntelligence for APIs" value="pingintelligence-for-apis" data-code="" > <label for="781"> PingIntelligence for APIs</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6710" data-filter-code="product" class="hly-filter-input" name="PingOne Advanced Identity Cloud" value="pingone-advanced-identity-cloud" data-code="" > <label for="6710"> PingOne Advanced Identity Cloud</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="786" data-filter-code="product" class="hly-filter-input" name="PingOne Advanced Services" value="pingone-advanced-services" data-code="" > <label for="786"> PingOne Advanced Services</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="776" data-filter-code="product" class="hly-filter-input" name="PingOne Authorize" value="pingone-authorize" data-code="" > <label for="776"> PingOne Authorize</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5655" data-filter-code="product" class="hly-filter-input" name="PingOne (PingOne Cloud Platform)" value="pingone-pingone-cloud-platform" data-code="" > <label for="5655"> PingOne (PingOne Cloud Platform)</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5424" data-filter-code="product" class="hly-filter-input" name="PingOne Credentials" value="pingone-credentials" data-code="" > <label for="5424"> PingOne Credentials</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="784" data-filter-code="product" class="hly-filter-input" name="PingOne DaVinci" value="pingone-davinci" data-code="" > <label for="784"> PingOne DaVinci</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="1226" data-filter-code="product" class="hly-filter-input" name="PingOne MFA" value="pingone-mfa" data-code="" > <label for="1226"> PingOne MFA</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5365" data-filter-code="product" class="hly-filter-input" name="PingOne Neo" value="pingone-neo" data-code="" > <label for="5365"> PingOne Neo</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5628" data-filter-code="product" class="hly-filter-input" name="PingOne Protect" value="pingone-protect" data-code="" > <label for="5628"> PingOne Protect</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="5367" data-filter-code="product" class="hly-filter-input" name="PingOne Verify" value="pingone-verify" data-code="" > <label for="5367"> PingOne Verify</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6803" data-filter-code="product" class="hly-filter-input" name="Ping Integration Kits" value="ping-integration-kits" data-code="" > <label for="6803"> Ping Integration Kits</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6804" data-filter-code="product" class="hly-filter-input" name="PingAM" value="pingam" data-code="" > <label for="6804"> PingAM</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6805" data-filter-code="product" class="hly-filter-input" name="PingDevOps" value="pingdevops" data-code="" > <label for="6805"> PingDevOps</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6806" data-filter-code="product" class="hly-filter-input" name="PingDS" value="pingds" data-code="" > <label for="6806"> PingDS</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6807" data-filter-code="product" class="hly-filter-input" name="PingIDM" value="pingidm" data-code="" > <label for="6807"> PingIDM</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6808" data-filter-code="product" class="hly-filter-input" name="PingOne SSO" value="pingone-sso" data-code="" > <label for="6808"> PingOne SSO</label> </div> </li> <li class="hly-my-10"> <div class="checkbox hly-xs-filter-checkbox"> <input type="checkbox" id="6818" data-filter-code="product" class="hly-filter-input" name="Ping Government Identity Cloud" value="ping-government-identity-cloud" data-code="" > <label for="6818"> Ping Government Identity Cloud</label> </div> </li> </ul> </div> </div> <div class="filter-footer"> <div> <a href="#" class="hly-btn hly-btn-secondary hly-btn-circle hly-btn-sm" role="button" id="hly-filter-reset"> Reset </a> </div> <div> <form id="hlyFilterForm" action="/search" style="display: inline-block"> <input type="hidden" name="query" value="" id="hly-filter-query"> <a href="#" class="hly-btn hly-btn-primary hly-btn-circle hly-btn-sm hly-btn-apply-filter" role="button"> Apply Filter </a> </form> </div> </div> </div> </div> <script type="application/javascript"> let mobileFilterConfig = {}; mobileFilterConfig.hubId = "ldtpp6kklvu47lrstub6rb1g32"; mobileFilterConfig.isSearch = ""; mobileFilterConfig.requestQueryParams = {}; Hushly.HubV3.MobileFilter.init(mobileFilterConfig); </script> </div> </section> <section class="hly-hub-container"> <script type="application/javascript"> //Fired before the Experience Trigger is activated, This event is fired only when the user is interacting with Experiences. Hushly.HubV3.execute("bind", 'before-trigger-activate', function(options) { dataLayer.push({ 'event': 'hushly_before_trigger_activate', 'asset_id': options.assetId, 'asset_name': options.assetName, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'trigger_type': options.triggerType, 'content_rule_id': options.contentRuleId }); }); //Fired after the Hushly Experience is popped or the Stream Content Page is viewed. Hushly.HubV3.execute("bind", 'content-view', function(options) { dataLayer.push({ 'event': 'hushly_content_view', 'asset_id': options.assetId, 'asset_name': options.assetName, 'asset_type': options.assetType, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'stream_id': options.streamId, 'stream_name': options.streamName, 'trigger_type': options.triggerType, 'content_rule_id': options.contentRuleId, 'abm_visitor': options.visitor, 'abm_account': options.account, 'abm_page': options.page }); }); //Fired when a user interacts with the content like scrolling the pages or clicking the Play button for video-type content Hushly.HubV3.execute("bind", 'content-interaction', function(options) { dataLayer.push({ 'event': 'hushly_content_interaction', 'asset_id': options.assetId, 'asset_name': options.assetName, 'asset_type': options.assetType, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'stream_id': options.streamId, 'stream_name': options.streamName, 'trigger_type': options.triggerType, 'content_rule_id': options.contentRuleId, 'interaction_category': options.category, 'interaction_type': options.type, 'page_number': options.pageNumber, 'abm_visitor': options.visitor, 'abm_account': options.account, 'abm_page': options.page }); }); //When a user selects content in the Recommendation section by clicking on it and views the Content Page. Hushly.HubV3.execute("bind", 'recommendation-open', function(options) { dataLayer.push({ 'event': 'hushly_recommendation_open', 'asset_id': options.assetId, 'asset_name': options.assetName, 'asset_type': options.assetType, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'stream_id': options.streamId, 'stream_name': options.streamName, 'trigger_type': options.triggerType, 'content_rule_id': options.contentRuleId, 'abm_visitor': options.visitor, 'abm_account': options.account, 'abm_page': options.page }); }); //Fired when a user views the Hushly Form in an Experience or Stream Item Page Hushly.HubV3.execute("bind", 'form-view', function(options) { dataLayer.push({ 'event': 'hushly_form_view', 'asset_id': options.assetId, 'asset_name': options.assetName, 'asset_type': options.assetType, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'stream_id': options.streamId, 'stream_name': options.streamName, 'trigger_type': options.triggerType, 'content_rule_id': options.contentRuleId, 'country': options.country, 'page_url': options.pageUrl, 'referrer': options.referrer, 'abm_visitor': options.visitor, 'abm_account': options.account, 'abm_page': options.page }); }); //Fires when a form submission is failed. Eg. when a user submits a non-business email address or a role email address. Hushly.HubV3.execute("bind", 'invalid-form-submit', function(formData) { dataLayer.push({ 'event': 'hushly_invalid_form_submit', 'asset_id': formData.assetId, 'asset_name': formData.assetName, 'asset_type': formData.assetType, 'experience_id': formData.experienceId, 'experience_name': formData.experienceName, 'stream_id': formData.streamId, 'stream_name': formData.streamName, 'trigger_type': formData.triggerType, 'content_rule_id': formData.contentRuleId, 'country': formData.country, 'page_url': formData.pageUrl, 'referrer': formData.referrer, 'abm_visitor': formData.visitor, 'abm_account': formData.account, 'abm_page': formData.page }); }); //Fired when a user successfully submits a Hushly Form in an Experience or Stream Item Page Hushly.HubV3.execute("bind", 'form-submit', function(formData) { dataLayer.push({ 'event': 'hushly_form_submit', 'asset_id': formData.assetId, 'asset_name': formData.assetName, 'asset_type': formData.assetType, 'experience_id': formData.experienceId, 'experience_name': formData.experienceName, 'stream_id': formData.streamId, 'stream_name': formData.streamName, 'trigger_type': formData.triggerType, 'content_rule_id': formData.contentRuleId, 'country': formData.country, 'page_url': formData.pageUrl, 'referrer': formData.referrer, 'abm_visitor': formData.visitor, 'abm_account': formData.account, 'abm_page': formData.page }); }); //Fired when the Experience is closed, This event is fired when the user closes the Experience. Hushly.HubV3.execute("bind", 'experience-close', function(options) { dataLayer.push({ 'event': 'hushly_experience_close', 'asset_id': options.assetId, 'asset_name': options.assetName, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'trigger_type': options.triggerType, 'content_rule_id': options.contentRuleId }); }); //Fired when the user anonymously downloads an Asset at the Experience or Stream level. Hushly.HubV3.execute("bind", 'anonymous-download', function(options) { dataLayer.push({ 'event': 'hushly_anonymous_download', 'asset_id': options.assetId, 'asset_name': options.assetName, 'experience_id': options.experienceId, 'experience_name': options.experienceName, 'widget_id': options.widgetId, 'content_rule_id': options.contentRuleId, 'abm_visitor': options.visitor, 'abm_account': options.account, 'abm_page': options.page }); }); //Fired when the user performs a search in the Hub. Hushly.HubV3.execute("bind", 'search', function(options) { dataLayer.push({ 'event': 'hushly_search', 'query': options.query }); }); //Fired when the user clicks on the CTA Button. Hushly.HubV3.execute("bind", 'abm-cta-click', function(options) { dataLayer.push({ 'event': 'hushly_abm_cta_click', 'abm_visitor': options.visitor, 'abm_account': options.account, 'abm_page': options.page }); }); </script> <div> <div class="hly-stream-item hly-stream-item-nsr2v893h7r6cjfuk3u33umd8i"> <section class="hly-stream-item-header-container hly-py-60"> <div class="hly-container"> <div class="hly-stream-item-header"> <div> <ul class="hly-stream-item-breadcrumb"> <li><a href="/">Home</a></li> <li><a href="/analyst-reports">Analyst Reports</a></li> <li> The Forrester Wave™: Customer Identity And Access Management, Q4 2023 </li> </ul> <h1 class="hly-stream-item-name"> The Forrester Wave™: Customer Identity And Access Management, Q4 2023 </h1> <div class="hly-stream-item-desc"> <markdown><span>Ping Identity named a leader in the Forrester Wave™ CIAM report.</span> </markdown> </div> </div> </div> </div> </section> <section class="hly-stream-item-section"> <div class="hly-stream-item-content hly-container"> <div class="hly-article"> <div class="hly-item-content"> <div class="hly-document"> <div class="hly-pages-container"> <div class="hly-toolbar sticky"> <div></div> <div class="hly-page-numbers"> <span id="hly-page-number"></span> of <span>1</span> </div> <div class="hly-tools"> <a class="hly-btn hly-btn-primary hly-btn-circle-primary hly-btn-sm hly-btn-pull-right hly-download" role="button" id="hly-download-btn" title="Download"> <img src="/assets/download.svg" alt="Download" title="Download" /> Download </a> </div> </div> <div class="hly-pages"> <img id="1" data-src="https://images.hushly.com/5o5fzdd6ClrRNOF2twUPGZdD36LMpEyZ3cxzEayfKV0/aHR0cHM6Ly9jZG4uaHVzaGx5LmNvbS8yMjg4NC9kb2NzLzQxNjM4L2M4MGM3MzVjLWNlZGEtNDdjMy1iNWFmLWU4OTAyZGE5OGQ4MS5qcGc_X3Q9MTcyMDUzNjYxMTAwMA" src="https://images.hushly.com/tJ3Wxx5t1HLYCaXFIr0XxIER4CVbBxWG_EJBUk8hz6M/f:jpeg/rs:fit:50:50:1/aHR0cHM6Ly9jZG4uaHVzaGx5LmNvbS8yMjg4NC9kb2NzLzQxNjM4L2M4MGM3MzVjLWNlZGEtNDdjMy1iNWFmLWU4OTAyZGE5OGQ4MS5qcGc_X3Q9MTcyMDUzNjYxMTAwMA" class="lozad hly-document-img" alt="The Forrester Wave™: Customer Identity And Access Management, Q4 2023" title="The Forrester Wave™: Customer Identity And Access Management, Q4 2023"/> <div class="hly-form hly-form-full "> <div style="display: none" id="hly-form-anonymous-container"> <span onclick="downloadContent()" class="hly-btn hly-btn-primary hly-btn-circle hly-btn-sm hly-submit-btn hly-anonymous-download-btn" target="_blank" role="button" title="Get the Complete Analyst Report"> <img src="/assets/download.svg" alt="Download" title="Download"/> Get the Complete Analyst Report </span> <div class="hly-poweredBy"> <span>Powered by <a href="https://www.hushly.com" target="_blank" rel="noreferrer" title="Hushly">Hushly</a> - <a href="https://www.hushly.com/privacy-policy" target="_blank" rel="noreferrer" title="Privacy Policy & Terms">Privacy Policy & Terms</a></span> </div> </div> <div id="hly-form-container" class="hly-form-container"> <div class="hly-loading-mask"> <img src="/assets/spinner.gif" title="Loading"> </div> </div> <script type="application/javascript"> let formConfig = {}; formConfig.streamItem = {"id":117450,"name":null,"slug":"forrester-wave-ciam"}; formConfig.hubId = 'ldtpp6kklvu47lrstub6rb1g32'; formConfig.form = {"name":"Default Form","type":"STANDARD"}; formConfig.settings = {"landingPageScript":"//Fired before the Experience Trigger is activated, This event is fired only when the user is interacting with Experiences.\r\nHushly.HubV3.execute(\"bind\", 'before-trigger-activate', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_before_trigger_activate',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId\r\n });\r\n});\r\n\r\n//Fired after the Hushly Experience is popped or the Stream Content Page is viewed.\r\nHushly.HubV3.execute(\"bind\", 'content-view', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_content_view',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fired when a user interacts with the content like scrolling the pages or clicking the Play button for video-type content\r\nHushly.HubV3.execute(\"bind\", 'content-interaction', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_content_interaction',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'interaction_category': options.category,\r\n 'interaction_type': options.type,\r\n 'page_number': options.pageNumber,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n\r\n//When a user selects content in the Recommendation section by clicking on it and views the Content Page.\r\nHushly.HubV3.execute(\"bind\", 'recommendation-open', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_recommendation_open',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fired when a user views the Hushly Form in an Experience or Stream Item Page\r\nHushly.HubV3.execute(\"bind\", 'form-view', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_form_view',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'asset_type': options.assetType,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'stream_id': options.streamId,\r\n 'stream_name': options.streamName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId,\r\n 'country': options.country,\r\n 'page_url': options.pageUrl,\r\n 'referrer': options.referrer,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fires when a form submission is failed. Eg. when a user submits a non-business email address or a role email address.\r\nHushly.HubV3.execute(\"bind\", 'invalid-form-submit', function(formData) {\r\n dataLayer.push({\r\n 'event': 'hushly_invalid_form_submit',\r\n 'asset_id': formData.assetId,\r\n 'asset_name': formData.assetName,\r\n 'asset_type': formData.assetType,\r\n 'experience_id': formData.experienceId,\r\n 'experience_name': formData.experienceName,\r\n 'stream_id': formData.streamId,\r\n 'stream_name': formData.streamName,\r\n 'trigger_type': formData.triggerType,\r\n 'content_rule_id': formData.contentRuleId,\r\n 'country': formData.country,\r\n 'page_url': formData.pageUrl,\r\n 'referrer': formData.referrer,\r\n 'abm_visitor': formData.visitor,\r\n 'abm_account': formData.account,\r\n 'abm_page': formData.page\r\n });\r\n});\r\n\r\n//Fired when a user successfully submits a Hushly Form in an Experience or Stream Item Page\r\nHushly.HubV3.execute(\"bind\", 'form-submit', function(formData) {\r\n dataLayer.push({\r\n 'event': 'hushly_form_submit',\r\n 'asset_id': formData.assetId,\r\n 'asset_name': formData.assetName,\r\n 'asset_type': formData.assetType,\r\n 'experience_id': formData.experienceId,\r\n 'experience_name': formData.experienceName,\r\n 'stream_id': formData.streamId,\r\n 'stream_name': formData.streamName,\r\n 'trigger_type': formData.triggerType,\r\n 'content_rule_id': formData.contentRuleId,\r\n 'country': formData.country,\r\n 'page_url': formData.pageUrl,\r\n 'referrer': formData.referrer,\r\n 'abm_visitor': formData.visitor,\r\n 'abm_account': formData.account,\r\n 'abm_page': formData.page\r\n });\r\n});\r\n\r\n//Fired when the Experience is closed, This event is fired when the user closes the Experience.\r\nHushly.HubV3.execute(\"bind\", 'experience-close', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_experience_close',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'trigger_type': options.triggerType,\r\n 'content_rule_id': options.contentRuleId\r\n });\r\n});\r\n\r\n//Fired when the user anonymously downloads an Asset at the Experience or Stream level.\r\nHushly.HubV3.execute(\"bind\", 'anonymous-download', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_anonymous_download',\r\n 'asset_id': options.assetId,\r\n 'asset_name': options.assetName,\r\n 'experience_id': options.experienceId,\r\n 'experience_name': options.experienceName,\r\n 'widget_id': options.widgetId,\r\n 'content_rule_id': options.contentRuleId,\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});\r\n\r\n//Fired when the user performs a search in the Hub.\r\nHushly.HubV3.execute(\"bind\", 'search', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_search',\r\n 'query': options.query\r\n });\r\n});\r\n\r\n//Fired when the user clicks on the CTA Button.\r\nHushly.HubV3.execute(\"bind\", 'abm-cta-click', function(options) {\r\n dataLayer.push({\r\n 'event': 'hushly_abm_cta_click',\r\n 'abm_visitor': options.visitor,\r\n 'abm_account': options.account,\r\n 'abm_page': options.page\r\n });\r\n});","fullTextIndexing":false,"conversationalContent":true,"showOptInField":true,"disableDoubleOptIn":true,"hiddenFields":["Marketo_Temp_CampaignID__c"]}; Hushly.HubV3.FormService.init(formConfig, 'hly-form-container'); </script> <script type="text/javascript"> function downloadContent(e) { Hushly.HubV3.FormService.downloadContent(true); } function showContent(downloadToken) { Hushly.HubV3.FormService.showContent(downloadToken); } </script> </div> </div> </div> </div> <script type="text/javascript"> function download() { Hushly.HubV3.DocumentViewer.download(); } </script> <script type="text/javascript"> let config = {}; config.streamItem = {"previewStart":null,"seo":{"seoTitle":"The Forrester Wave\u2122: Customer Identity And Access Management, Q4 2022","seoDescription":"Ping Identity named a leader in the Forrester Wave CIAM Report.","canonicalUrl":"https://hub.pingidentity.com/resources/forrester-wave-ciam"},"layout":{"name":"Default","code":"DEFAULT"},"slug":"forrester-wave-ciam"}; let i18nMessages = {}; i18nMessages.mitab = "Pingy"; i18nMessages.you = "You"; config.i18NMessages = i18nMessages; Hushly.HubV3.DocumentViewer.initViewer(config); </script> <div class="hly-paginate"> <div class="hly-previous-item-container"> <a href="/analyst-reports/3703-kuppingercole-executive-view-pingone-authorize" title="KuppingerCole Executive View: PingOne Authorize"> <div class="hly-previous-item"> <figure> <img src="https://hushly.s3.amazonaws.com/22884/docs/27338/thumbnail.jpg?t=1723238509000" alt="" class="hly-img-rounded-10"> </figure> <div class="hly-previous-item-text"> <h4 class="hly-previous-item-name">KuppingerCole Executive View: PingOne Authorize</h4> <span class="hly-previous-item-type">Analyst Report</span> </div> </div> <i class="fa fa-chevron-left hly-prev-icon" aria-hidden="true"></i> </a> </div> <div class="hly-next-item-container"> <a href=/analyst-reports/3697-kuppingercole-leadership-compass-verified-identity title="2022 KuppingerCole Leadership Compass: Providers of Verified Identity"> <div class="hly-next-item"> <figure> <img src="https://hushly.s3.amazonaws.com/22884/docs/41316/thumbnail.jpg?t=1720463140000" alt="" class="hly-img-rounded-10"> </figure> <div class="hly-next-item-text"> <h4 class="hly-next-item-name">2022 KuppingerCole Leadership Compass: Providers of Verified Identity</h4> <p class="hly-next-item-type">Analyst Report</p> </div> </div> <i class="fa fa-chevron-right hly-next-icon" aria-hidden="true"></i> </a> </div> </div> </div> <div class="hly-item-recommendations"> <div class="hly-recommendations"> <div id="hly-recommendations"> <div class="hly-stream-item-recommendations"> <h3 class="hly-stream-item-recommendations-header"> Recommended For You </h3> <div class="hly-recommend-list"> <div class="hly-loader-container"> <div class="hly-loader-tile"> <div class="bar img hly-mr-10"></div> <div> <div class="bar label"></div> <div class="bar label"></div> </div> </div> </div> <div class="hly-loader-container"> <div class="hly-loader-tile"> <div class="bar img hly-mr-10"></div> <div> <div class="bar label"></div> <div class="bar label"></div> </div> </div> </div> <div class="hly-loader-container"> <div class="hly-loader-tile"> <div class="bar img hly-mr-10"></div> <div> <div class="bar label"></div> <div class="bar label"></div> </div> </div> </div> <div class="hly-loader-container"> <div class="hly-loader-tile"> <div class="bar img hly-mr-10"></div> <div> <div class="bar label"></div> <div class="bar label"></div> </div> </div> </div> </div> </div> </div> <script> let recommendConfig = {}; recommendConfig.streamItemId = '117450'; recommendConfig.hubId = 'ldtpp6kklvu47lrstub6rb1g32'; Hushly.HubV3.RecommendationService.init(recommendConfig, 'hly-recommendations'); </script> </div> </div> </div> </div> </section> </div> </div> <script type="application/javascript"> Hushly.HubV3.reportingVendors = [{"code":"GoogleTagManager","attributes":{"EVENTS":{"content-view":true,"content-interaction":true,"invalid-form-submit":true,"form-submit":true,"anonymous-download":true,"stream-view":true,"abm-cta-click":true,"hub-cta-click":true,"embed-stream-item-click":true,"webx-impression":true,"conversion":true}}}]; Hushly.HubV3.StreamItemService.init(); </script> <script type="application/javascript"> var impressionObserver; let ctaId; initCtaImpressionObserver(); var ctaEls = document.querySelectorAll('.hly-hub-cta'); ctaEls.forEach(function (ctaEl, index) { observeImpression(ctaEl); }); function initCtaImpressionObserver() { impressionObserver = new IntersectionObserver(function (changes) { var results = changes.filter(function (change) { return change.isIntersecting === true; }); if (results) { results.forEach(function (result, i) { trackCtaImpression(result.target); }); } }, { threshold: [0] }); } function observeImpression(ctaElement) { impressionObserver.observe(ctaElement); } function trackCtaImpression(ctaElement) { if (ctaElement.hasAttribute('data-cta-impression')) { return; } this.ctaId = ctaElement.getAttribute('data-cta-id'); if (!this.ctaId) { return; } track("HUB_CTA_IMPRESSION"); ctaElement.setAttribute('data-cta-impression', ''); impressionObserver.unobserve(ctaElement); } let eventData = { "streamId": "fak6d1r95o5m110s9631sqj2kr", "streamName": "Analyst Reports", "assetId": "nsr2v893h7r6cjfuk3u33umd8i", "assetName": "The Forrester Wave™: Customer Identity And Access Management, Q4 2023", "assetType": "Analyst Report" }; if("" == "EmbedStream") { eventData["embedId"] = ""; } if("") { eventData["segmentId"] = ""; } Hushly.HubV3.publishEvent('CONTENT_VIEW', eventData); let attributes = Hushly.HubV3.getAbmState(); eventData['attributes'] = attributes; function track(type) { if(type == 'HUB_CTA_IMPRESSION') { var ctaEl = document.querySelector('.hly-hub-cta'); if(ctaEl) { eventData["ctaId"] = ctaEl.getAttribute('data-cta-id'); } } let payload = { "events": [{ "type": type, "attributes": eventData, "time": new Date().getTime() }], "context": { "aid": 22884 } }; Hushly.HubV3.track(payload); } track("PAGE_VIEW"); track("ASSET_PREVIEW_VIEW"); </script> </section> </div> <!-- BEGIN PIC FOOTER --> <footer id="ping-webdev-footer-wrapper" class="footer-wrapper" data-language="en-us" data-lower-nav-only="false"></footer> <script src="https://www.pingidentity.com/scripts/ping-hf-loader-init.js" async></script> <script defer> var languageMap = { "en": "en-us", "de": "de-de", "fr": "fr-fr", "es": "es-es", "pt": "pt-br", "ja": "ja-jp" }; var footer = document.getElementById("ping-webdev-footer-wrapper"); var langCode = Hushly.HubV3.stream.language; // Set the data-language attribute if the mapping exists if (footer && languageMap.hasOwnProperty(langCode)) { footer.setAttribute("data-language", languageMap[langCode]); } </script> <!-- END PIC FOOTER--> <script> document.querySelector('#hushlyBlogEmbed').setAttribute('scrolling','no'); </script> </body> </html>