Skip to content
This repository was archived by the owner on Jan 31, 2022. It is now read-only.

Commit 78e4b73

Browse files
authored
feat(clickAnalytics): Add clickAnalytics feature. Used to return the queryID for analytics (#548)
1 parent 566f9f9 commit 78e4b73

File tree

3 files changed

+48
-0
lines changed

3 files changed

+48
-0
lines changed

algoliasearch/src/main/java/com/algolia/search/saas/Query.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,20 @@ public Boolean getAllowTyposOnNumericTokens() {
312312
return parseBoolean(get(KEY_ALLOW_TYPOS_ON_NUMERIC_TOKENS));
313313
}
314314

315+
private static final String KEY_CLICK_ANALYTICS = "clickAnalytics";
316+
317+
/**
318+
* @param enabled If set to true, the results will return queryID which is needed for sending click | conversion events. Defaults to false.
319+
*/
320+
public @NonNull
321+
Query setClickAnalytics(Boolean enabled) {
322+
return set(KEY_CLICK_ANALYTICS, enabled);
323+
}
324+
325+
public Boolean getClickAnalytics() {
326+
return parseBoolean(get(KEY_CLICK_ANALYTICS));
327+
}
328+
315329
private static final String KEY_ANALYTICS = "analytics";
316330

317331
/**

algoliasearch/src/test/java/com/algolia/search/saas/IndexTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,6 +1299,30 @@ public void doRequestCompleted(JSONObject content, AlgoliaException error) {
12991299
});
13001300
}
13011301

1302+
@Test
1303+
public void searchWithClickTrackingAsync() {
1304+
final long begin = System.nanoTime();
1305+
Query query = new Query("Francisco");
1306+
query.setClickAnalytics(true);
1307+
1308+
index.searchAsync(query, new AssertCompletionHandler() {
1309+
@Override
1310+
public void doRequestCompleted(JSONObject content, AlgoliaException error) {
1311+
if (error == null) {
1312+
assertNotNull(content.optInt("queryID"));
1313+
} else {
1314+
fail(error.getMessage());
1315+
}
1316+
}
1317+
});
1318+
1319+
final long elapsedMillis = (System.nanoTime() - begin) / 1000000;
1320+
final int waitTimeoutMillis = Helpers.wait * 1000;
1321+
assertTrue("The test took longer than given timeout (" + elapsedMillis + " > " + waitTimeoutMillis + ").", elapsedMillis <= waitTimeoutMillis);
1322+
}
1323+
1324+
1325+
13021326
private String getRandomString() {
13031327
return UUID.randomUUID().toString();
13041328
}

algoliasearch/src/test/java/com/algolia/search/saas/QueryTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,16 @@ public void analytics() {
286286
assertEquals(query.getAnalytics(), Query.parse(query.build()).getAnalytics());
287287
}
288288

289+
@Test
290+
public void clickAnalytics() {
291+
Query query = new Query();
292+
assertNull(query.getClickAnalytics());
293+
query.setClickAnalytics(true);
294+
assertEquals(Boolean.TRUE, query.getClickAnalytics());
295+
assertEquals("true", query.get("clickAnalytics"));
296+
assertEquals(query.getClickAnalytics(), Query.parse(query.build()).getClickAnalytics());
297+
}
298+
289299

290300
@Test
291301
public void sortFacetValuesBy() {

0 commit comments

Comments
 (0)