You can now create Custom Dimensions to tailor your dashboards and reports to your specific analysis needs. This feature allows you to define your own dimensions using supported functions to extract and transform data for improved insight and visualisation.
What are Custom Dimensions?
Custom Dimensions are user-defined fields created by applying formulas to existing dimensions. They enable more flexible reporting by letting you derive new values from your existing data.
For example, you can create a custom dimension that extracts the domain from a URL or converts text to lowercase for grouping.
How to Create a Custom Dimension
Open a dashboard and select the advertiser, campaign, placement and dates. Add at least 1 widget to start creating custom dimensions.
- Click Data under Edit Graph and click the + icon in Dimensions section.
- Click 'Custom Dimensions' then click 'Add Custom Dimensions'.
In the pop-up dialog:
Name your custom dimension
Use the Available Functions and Available Dimensions selector to craft your formula.
Click Submit once done. Once saved, you’ll see a confirmation message Custom dimension saved successfully.
Supported Functions and Syntax
You can use a variety of functions to manipulate your data when creating a custom dimension. These include text functions, logical expressions and date operations.
Text Functions
| Function | Summary | Examples | Input |
|---|---|---|---|
CONCAT(X, Y[, Z, ...]) | Returns text that is the concatenation of two or more fields or expressions. | CONCAT(Advertiser, ' - ', Campaign) | CONCAT('Nike', ' - ', 'Summer Campaign') |
CONTAINS_TEXT(text, substring) | Returns TRUE if the text contains the specified substring, FALSE otherwise. | CONTAINS_TEXT(Ad_Format, 'Video') | CONTAINS_TEXT('Video Banner', 'Video') |
LOWER(text) | Converts text to lowercase. | LOWER(Device_GA4) | LOWER('MOBILE') |
UPPER(text) | Converts text to uppercase. | UPPER(Channel) | UPPER('display') |
TRIM(text) | Removes leading and trailing spaces from text. | TRIM(Creative) | TRIM(' Summer Banner ') |
SPLIT(text, delimiter[, position]) | Splits text using a delimiter and returns the specified part. | SPLIT(Platform_Line_Item, '_', 2) | SPLIT('Campaign_Prospecting_Display', '_', 2) |
Date Functions
| Function | Summary | Examples | Input |
|---|---|---|---|
YEAR(date) | Returns the year portion of a date as a number. | YEAR(Placement_Start_Date) | YEAR('2025-03-15') |
MONTH(date) | Returns the month portion of a date as a number (1-12). | MONTH(Placement_End_Date) | MONTH('2025-06-30') |
TODAY() | Returns the current date. | TODAY() | TODAY() |
DATE_TRUNC(date_part, date) | Truncates a date to the specified unit of time. | DATE_TRUNC('year', Date) | DATE_TRUNC('year', '2025-06-15') |
DATE_DIFF(start_date, end_date, date_part) | Returns the difference between two dates in the specified unit. | DATE_DIFF(Placement_Start_Date, Placement_End_Date,'day') | DATE_DIFF('2025-03-01', '2025-03-31', 'day') |
Numeric & Logical Functions
| Function | Summary | Examples | Input |
|---|---|---|---|
IF(condition, value_if_true, value_if_false) | Returns one value if a condition is true and another value if a condition is false. | IF(Buying_Platform == 'Facebook Business', 'Meta', 'Non-Meta') | IF(Buying_Platform == 'Facebook Business', 'Meta', 'Non-Meta') |
IFNULL(expression, value_if_null) | Returns the first expression if it is not NULL, otherwise returns the second expression. | IFNULL(Referring_Agency, 'Direct Client') | IFNULL(Referring_Agency, 'Direct Client') |
ROUND(number, decimal_places) | Rounds a number to a specified number of decimal places. | ROUND(AVG(Click_Through_Rate), 2) | ROUND(3.456, 2) |
Regular Expression Functions
| Function | Summary | Examples | Input |
|---|---|---|---|
REGEXP_EXTRACT(text, pattern[, index]) | Extracts a substring that matches a regular expression pattern. | REGEXP_EXTRACT(Phone, '\\d{3}') | REGEXP_EXTRACT('Phone: 123-456-7890', '\\d{3}') |
REGEXP_REPLACE(text, pattern, replacement) | Replaces substrings that match a regular expression pattern with a replacement string. | REGEXP_REPLACE(Ad_Server_Campaign, ' 2025', ' Updated') | REGEXP_EXTRACT('user@example.com', '@(.+)', 1) |