ninetailed-inc / ninetailed-examples

marketing-contentful-next-demo.vercel.app
9 stars 10 forks source link

[bug][all-in-demo] Most personalization variants never get applied #80

Open DanweDE opened 3 months ago

DanweDE commented 3 months ago

While trying out the ESR/RSC all-in demo (both locally and the hosted live demo) I noticed that there's almost no active personalization.

As I navigate through pages, I see e.g. that the main nav and top banner get personalized after visiting the pricing page. According to the Experiences set-up in Contentful, there should be many more personalized components, just as for the https://b2b.demo.ninetailed.io/ demo, considering the Contentful content model and data is the same (see contentful-space-data.json for all-in vs. for marketing-contentful-next which are identical).

There's e.g. a component personalization for the main page's Hero to show the variant "The Most Competitively Priced HR Software. Period." after navigating to pricing and back, but the component seems to never change.

Somewhat related: The top banner variants that do get applied, do not resolve their Ninetailed Merge Tags properly, e.g. for [Baseline] Greet By Location.

cwkosman commented 3 months ago

This resulted from improper middleware filters. While not all Experiences within the content model will kick in in the current state of the demo (e.g., filling out the contact form does not actually submit an identify event to Ninetailed), navigating between pages and refreshing them should now reflect the correct experiences and variants for Experiences whose Audience criteria rely on page events, like the pricing-focused home page hero cited.

Merge tags are somewhat intentionally not resolved. We have traditionally recommend resolving merge tags client-side with the component exported from our React SDK, whereas the "all in" demo is a demonstration of exclusively SSR/RSC paradigms.

cwkosman commented 3 months ago

Looks like there's still some work to do here. Some personalized page variants are being cached and served irrespective of the current profile's assignments.