Now I realized that In-App message won't wok on batch audiences due to audiences won't get evaluated in real time. Ideally, for streaming audiences, data should be captured almost near real time, and it should work if someone keeps the app open for a few minutes.