Discoveryengine user event view-item configuration

I’m setting up view-item events using the Node.js UserEventServiceClient (instead of the pixel).

search, view-item, and view-home-page events all write successfully.

At first, analytics in the AI Applications app view weren’t populating. I fixed search events by including the engine parameter since an app is also an engine, this made sense: without it, events only go to the DataStore.

Docs say a successful request returns a copy of the event.

With view-item events, even when I send the same engine, the write succeeds, the response returns the event, but engine is missing. I suspect this is why app analytics shows no CTR or page view metrics. It’s not a 24-hour delay issue; I’ve been testing for a week.

Has anyone successfully sent view-item events via the service client and seen CTR or page view metrics populate in App Analytics? Am I doing something wrong ?

Here is what my request looks like, I send the parent as well formatted as
projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store} since I’m not working with a blended app.

{

  eventType: 'view-item',

  pageInfo: {

    pageviewId: 'string',

    uri: 'string,

    referrerUri: 'string',

    pageCategory: 'string'

  },

  engine: 'string',

  attributionToken: 'string',

  documents: [ { id: 'string' } ],

  userPseudoId: 'string',

  userInfo: {

    userId: 'string'

  },

  eventTime: { seconds: number, nanos: number }

}

And this is the response

 HTTP Response: {
  success: true,
  status: 'Event processed by Google Cloud Discovery Engine',
  responseData: {
    documents: [ [Object] ],
    tagIds: [],
    promotionIds: [],
    panels: [],
    attributes: {},
    eventType: 'view-item',
    userPseudoId: 'string',
    eventTime: { seconds: 'string', nanos: number },
    userInfo: {
      userId: 'string'
    },
    directUserRequest: false,
    pageInfo: {
      pageviewId: 'string',
      pageCategory: 'string',
      uri: 'string',
      referrerUri: 'string'
    },
    attributionToken: 'string',
    searchInfo: null
  },
  metadata: null
}

I tried changing the parent to the shorter path as described here https://cloud.google.com/generative-ai-app-builder/docs/reference/rest/v1/projects.locations.userEvents/write and also sent the dataStore and engine values when writing the event.

I noticed that under these conditions, the response included the engine, but not the dataStore value sent.

I also noticed that the joined key in the document info is always set to false when using the shorter path, even though I’m sending all the information it should need to identify the document. When using the longer datastore parent, all documents show joined as true.