/// <inheritdoc /> public async Task <InsightsResponse> SendEventAsync(InsightsEvent insightEvent, RequestOptions requestOptions = null, CancellationToken ct = default) { if (insightEvent == null) { throw new ArgumentNullException(nameof(insightEvent)); } return(await SendEventsAsync(new List <InsightsEvent> { insightEvent }, requestOptions, ct)); }
/// <summary> /// Send events when filters are clicked /// </summary> /// <param name="eventName">User defined string, format: any ascii char except control points with length between 1 and 64.</param> /// <param name="indexName">Index name, format, same as the engine.</param> /// <param name="filters">A filter is defined by the ${attr}${op}${value} string e.g. brand:apple. Limited to 10 filters.</param> /// <param name="requestOptions">Add extra http header or query parameters to Algolia</param> /// <param name="ct">The cancellation token</param> /// <returns></returns> public async Task <InsightsResponse> ClickedFiltersAsync(string eventName, string indexName, IEnumerable <string> filters, RequestOptions requestOptions = null, CancellationToken ct = default) { var insightEvent = new InsightsEvent { EventType = EventType.Click, UserToken = _userToken, EventName = eventName, Index = indexName, Filters = filters }; return(await _insightsClient.SendEventAsync(insightEvent, requestOptions, ct).ConfigureAwait(false)); }
/// <summary> /// Send events of converted objectIDs after a search /// </summary> /// <param name="eventName">User defined string, format: any ascii char except control points with length between 1 and 64.</param> /// <param name="indexName">Index name, format, same as the engine.</param> /// <param name="objectIDs">Array of index objectIDs. Limited to 20 objects</param> /// <param name="queryID">Algolia queryID, format: [a-z1-9]{32}.</param> /// <param name="requestOptions">Add extra http header or query parameters to Algolia</param> /// <param name="ct">The cancellation token</param> /// <returns></returns> public async Task <InsightsResponse> ConvertedObjectIDsAfterSearchAsync(string eventName, string indexName, IEnumerable <string> objectIDs, string queryID, RequestOptions requestOptions = null, CancellationToken ct = default) { var insightEvent = new InsightsEvent { EventType = EventType.Conversion, UserToken = _userToken, EventName = eventName, Index = indexName, ObjectIDs = objectIDs, QueryID = queryID }; return(await _insightsClient.SendEventAsync(insightEvent, requestOptions, ct).ConfigureAwait(false)); }
/// <inheritdoc /> public InsightsResponse SendEvent(InsightsEvent insightEvent, RequestOptions requestOptions = null) => AsyncHelper.RunSync(() => SendEventAsync(insightEvent, requestOptions));