I tested this locally with CMS 13 and the C# Graph SDK, and .Track() is working for me.
I also inspected the GraphQL generated by ToGraphQL(). The SDK currently generates:
track: "Alloy"
If I paste the generated query into GraphiQL, the query executes successfully and _track URLs are returned for the search results.
GraphiQL does, however, show a schema validation warning:
Unknown argument "track" on field "Query.ArticlePage". Did you mean "tracking"?
The newer syntax:
tracking: {
phrase: "Alloy"
}
also works, without the schema warning.
So from my testing, tracking itself seems to be functional. The issue appears to be that the C# SDK generates the older track syntax, which is still accepted by the backend, while the current GraphQL schema exposed to GraphiQL expects the newer tracking syntax.
It may therefore be a schema/SDK version or backward-compatibility mismatch rather than tracking actually being non-functional.
It would be worth checking whether TrackUrls is populated in the C# result and whether the click-tracking request is sent when a result is clicked.
Using Optimizely graph C# SDK and search tracking: https://docs.developers.optimizely.com/content-management-system/v13.0.0-CMS/docs/search-tracking
var query = _graphContentClient.QueryContent<ProductDetailPage>() .SearchFor(request.SearchTerm!) .UsingField(f => f.ProductName, boost: 5) .UsingField(f => f.ProductDescription, highlightTag: "strong", boost: 3) .UsingField(f => f.ProductCode, highlightTag: "strong", boost: 1) .Track();
Gives the oupout GraphQL of: