# Data Filtering
When using analysis models, you may want to analyze the behavior of specific cohorts only, precisely find events that meet certain criteria, or remove some of the anomalous data, to ensure the accuracy of your analysis.
# Feature description
Filtering can help you filter the data based on specified properties and criteria. Event properties, user properties, user tags, user cohorts can be used as filtering properties.
For example, if you want to analyze the payments from app store, you can add [channel is app store] to the filtering criteria, and then the number of triggering users will be counted based on the payment events with event property 'channel' being app store only.
If you also want to select users who meet a specific characteristic, you can add another concurrent criterion to filter users. This criterion and [channel is app store] are in an 'AND' relationship, that is, only events that meet both criteria will be used to count Uniques.
You can change the relationship between the concurrent criteria to 'OR', then the obtained result will be uniques of users triggering events that satisfy either criterion. You may also set multiple combinations of concurrent criteria flexibly to find the data to be analyzed more precisely.
In analysis models, you may add filter only for a single analysis metric(2), or you can configure the filtering criteria valid for all analyses through 'All events meet'(3). If the type of analysis metric is a custom formula, you can also add 'Event Filters'(1), which is valid only for specified events of the formula.
# Logic behind filtering criteria
String
Is: the selected property has the same value as any of the set ones.
is not: the selected property has a value which is not the same as all the set values.
contains: The selected property value has the exact same part as the input content.
Example: 'Xiaomi App Store' includes"Xiaomi App Store" and"Xiaomi", but not"Xiaomi Store".
- RegEx match: you can customize the regular matching, then the selected properties need to meet the matching rules.
--Some commonly used rules
--It starts with xxx
^.[xxx]
--It ends with xxx
.[xxx]$
--the number of characters is between x~y
^.{x,y}$
List
- element existed: any element within the list has the same value as any of the set ones.
Date
- compare to current date: the number of natural days between the selected property and"today" is within a range. Negative numbers indicate the date is before"today" and positive numbers represent the date is after"today".
- compare to event time:
- range: the duration between the selected property and the time point when the event occurs is within a range. Negative numbers indicate the date is before the"event" and positive numbers represent the date is after the"event".
- same day, week, month: whether the selected property is within the same day/week/month as the time point when the event occurs.
When determining whether the data meets the criteria, "Day" refers to 24 hours rather than a natural day. If the filtering criterion is that the time property should be between -1 and +1 day relative to the time point when the event occurs, and that the time & date of the event is 17:00:00 on January 1, 2023, then events with the selected property value within the range from 17:00:00 on December 31, 2023 to 17:00:00 on January 2, 2023 shall meet the criterion and will not be excluded.
Notes
- Date event properties will be converted to the display time zone before comparison; but Date user properties or tags will not be converted in such a way.
- The time point of the benchmark event in "compare to event time" is the converted time and date considering the time zone.
Array Row
- has objects that satisfy: there is one object with selected properties meeting the criteria.
- has no object that satisfy: there is no object with selected properties meeting the criteria.
- all objects meet: all objects have the selected properties meet the criteria.
After selecting one of the above three filtering criteria, you need to set the criteria for the object’s sub-properties. Multiple concurrent criteria are supported.