Contentful Personalization & Analytics
    Preparing search index...

    Shared props for the OptimizedEntry component.

    interface OptimizedEntrySharedProps {
        children: OptimizedEntryChildren;
        dwellTimeMs?: number;
        errorFallback?: OptimizedEntryErrorFallback;
        liveUpdates?: boolean;
        loadingFallback?: OptimizedEntryLoadingFallback;
        minVisibleRatio?: number;
        onEntryError?: (error: Error) => void;
        onEntryResolved?: (metadata: OptimizedEntryMetadata) => void;
        onTap?: (resolvedEntry: Entry) => void;
        style?: StyleProp<ViewStyle>;
        testID?: string;
        trackTaps?: boolean;
        trackViews?: boolean;
        viewDurationUpdateIntervalMs?: number;
    }
    Index

    Properties

    Content to render. Accepts either a render prop or static children.

    • Render prop (resolvedEntry: Entry, metadata: OptimizedEntryMetadata) => ReactNode: receives the resolved entry plus baseline and optimization metadata. Use this when you need the resolved entry data.
    • Static children ReactNode: rendered as-is without entry data. Use this when you only need tracking, not variant resolution.
    <OptimizedEntry baselineEntry={entry}>
    {(resolvedEntry) => (
    <HeroComponent
    title={resolvedEntry.fields.title}
    image={resolvedEntry.fields.image}
    />
    )}
    </OptimizedEntry>
    <OptimizedEntry baselineEntry={productEntry}>
    <ProductCard name={productEntry.fields.name} />
    </OptimizedEntry>
    dwellTimeMs?: number

    Minimum time (in milliseconds) the component must be visible before tracking fires.

    2000

    Optional fallback rendered when SDK-managed entry fetching fails.

    liveUpdates?: boolean

    Whether this component reacts to optimization state changes in real time. Only applies to optimized entries; ignored for non-optimized entries. When undefined, inherits from the liveUpdates prop on OptimizationRoot. When false (or inherited as false), the component locks to the first variant it receives, preventing UI flashing when user actions change their qualification. When true, the component updates immediately when selected optimizations change.

    undefined

    Live updates are always enabled when the preview panel is open, regardless of this setting.

    Optional fallback rendered while SDK-managed entry fetching is pending.

    minVisibleRatio?: number

    Minimum visibility ratio (0.0 - 1.0) required to consider the component "visible".

    0.8

    onEntryError?: (error: Error) => void

    Callback invoked once for each SDK-managed entry fetching error.

    onEntryResolved?: (metadata: OptimizedEntryMetadata) => void

    Callback invoked when a resolved entry is rendered with tracking ready.

    onTap?: (resolvedEntry: Entry) => void

    Optional callback invoked with the resolved entry after a tap tracking event is emitted. When provided, keeps tap tracking enabled unless trackTaps is explicitly false.

    undefined

    style?: StyleProp<ViewStyle>

    Optional style prop for the wrapper View.

    testID?: string

    Optional testID for testing purposes.

    trackTaps?: boolean

    Per-component override for tap tracking.

    • undefined: inherits from trackEntryInteraction.taps on OptimizationRoot
    • true: enable tap tracking for this entry
    • false: disable tap tracking (overrides the global setting)

    undefined

    trackViews?: boolean

    Per-component override for view tracking.

    • undefined: inherits from trackEntryInteraction.views on OptimizationRoot
    • true: enable view tracking for this entry
    • false: disable view tracking for this entry

    undefined

    viewDurationUpdateIntervalMs?: number

    Interval (in milliseconds) between periodic view duration update events after the initial event has fired.

    5000