13. Funciones y Operadores de Analytics Pro
Una parte importante sobre la creación de expresiones en Analytics Pro son las funciones y operadores que puedes utilizar en ellas. Las funciones y operadores se dividen en algunas categorías básicas:
- Matemáticas: funciones relacionadas con números.
- Cadena o string: funciones relacionadas con palabras y letras.
- Fechas: funciones relacionadas con la fecha y la hora.
- Transformación lógica: incluye funciones booleanas (verdadero o falso) y operadores de comparación.
Operadores y funciones matemáticas
Función | Sintaxis | Objetivo |
abs | abs(valor) | Devuelve el valor absoluto del valor. |
ceiling | ceiling(valor) | Devuelve el número entero más pequeño mayor o igual que el valor. |
exp | exp(valor) | Devuelve e elevado a la potencia del valor. |
floor | floor(valor) | Devuelve el número entero más grande menor o igual que el valor. |
ln | ln(valor) | Devuelve el logaritmo natural de valor. |
log | log(valor) | Devuelve el logaritmo del valor en base 10. |
mod | mod(valor, divisor) | Devuelve el resto de dividir valor por divisor. |
power | power(base, exponent) | Devuelve la base elevada a la potencia del exponente. |
rand | rand() | Devuelve un número aleatorio entre 0 y 1. |
round | round(valor, num_decimals) | Devuelve el valor redondeado a num_decimales decimales. |
sqrt | sqrt(valor) | Devuelve la raíz cuadrada del valor. |
Operadores para cualquier expresión de Analytics Pro
Operador | Sintaxis | Objetivo |
+ | valor_1 + valor_2 | Suma valor_1 y valor_2. |
- | valor_1 - valor_2 | Resta valor_2 de valor_1 . |
* | valor_1 * valor_2 | Multiplica valor_1 y valor_2. |
/ | valor_1 / valor_2 | Divide valor_1 por valor_2. |
Funciones de cadena o string
Las funciones de cadena o string operan en oraciones, palabras o letras, que se denominan "strings o cadena". Puede usar este tipo de funciones para poner en mayúscula palabras y letras, extraer partes de una frase, verificar si una palabra o letra está en una frase o reemplazar elementos de una palabra o frase.
Función | Sintaxis | Objetivo |
concat | concat(valor_1, valor_2, ...) | Devuelve valor_1, valor_2, ..., valor_n unido como un string. |
contains | contains(string, search_string) | Devuelve Yes si la cadena contiene search_string y No en caso contrario. |
length | length(string) | Devuelve el número de caracteres en string. |
lower | lower(string) | Devuelve un string con todos los caracteres convertidos a minúsculas. |
position | position(string, search_string) | Devuelve el índice de inicio de search_string en string si existe, y 0 en caso contrario. |
replace | replace(string, old_string, new_string) | Devuelve un string con todas las apariciones de old_string reemplazadas por new_string. |
substring | substring(string, start_position, length) | Devuelve la subcadena de cadena, que comienza en start_position, que consta de caracteres de longitud. La posición_inicial comienza en 1, donde 1 indica el primer carácter de la cadena, 2 indica el segundo carácter de la cadena, y así sucesivamente. |
upper | upper(string) | Devuelve un string con todos los caracteres convertidos a mayúsculas. |
Funciones de fecha
Las funciones de fecha le permiten trabajar con fechas y horas.
Función | Sintaxis | Objetivo |
add_days | add_days(number, date) | Suma el número de días hasta la fecha. |
add_hours | add_hours(number, date) | Suma el número de horas hasta la fecha. |
inutes | add_minutes(number, date) | Suma el número de minutos hasta la fecha. |
add_monthadd_ms | add_months(number, date) | Suma el número de meses hasta la fecha. |
add_seconds | add_seconds(number, date) | Suma el número de segundos hasta la fecha. |
add_years | add_years(number, date) | Suma el número de años hasta la fecha. |
date_time | date_time(year, month, day, hours, minutes, seconds) |
Devuelve Fecha “año-mes-día horas: minutos: segundos” o nulo si la fecha no es válida. |
diff_days | diff_days(start_date, end_date) | Devuelve el número de días entre start_date y end_date. |
diff_hours | diff_hours(start_date, end_date) | Devuelve el número de horas entre start_date y end_date. |
diff_minutes | diff_minutes(start_date, end_date) | Devuelve el número de minutos entre start_date y end_date. |
diff_months | diff_months(start_date, end_date) | Devuelve el número de meses entre start_date y end_date. |
diff_seconds | diff_seconds(start_date, end_date) | Devuelve el número de segundos entre start_date y end_date. |
diff_years | diff_years(start_date, end_date) | Devuelve el número de años entre start_date y end_date. |
extract_days | extract_days(date) | Extrae los días a partir de la fecha. |
extract_hours | extract_hours(date) | Extrae las horas a partir de la fecha. |
extract_minutes | extract_minutes(date) | Extrae los minutos a partir de la fecha. |
extract_months | extract_months(date) | Extrae los meses a partir de la fecha. |
extract_seconds | extract_seconds(date) | Extrae los segundos a partir de la fecha. |
extract_years | extract_years(date) | Extrae los años a partir de la fecha. |
now | now() | Devuelve la fecha y hora actuales. |
trunc_days | trunc_days(date) | Trunca la fecha a días. |
trunc_hours | trunc_hours(date) | Trunca la fecha a horas. |
trunc_minutes | trunc_minutes(date) | Trunca la fecha a minutos. |
trunc_months | trunc_months(date) | Trunca la fecha a meses. |
trunc_years | trunc_years(date) | Trunca la fecha a años. |
Funciones lógicas, operadores y constantes
Función | Sintaxis | Objetivo |
case | case(when(yesno_arg, value_if_yes), when(yesno_arg, value_if_yes), ..., else_value) | Permite la lógica condicional con múltiples condiciones y resultados. Devuelve value_if_yes para el primer caso en el que el valor yesno_arg es yes. Devuelve else_value si todos los casos son no. |
coalesce | coalesce(value_1, value_2, ...) | Devuelve el primer valor no nulo en valor_1, valor_2, ..., valor_n si se encuentra y "nulo" en caso contrario. |
if | if(yesno_expression, value_if_yes, value_if_no) |
Si yesno_expression se evalúa como Yes, devuelve el valor value_if_yes. De lo contrario, devuelve el valor value_if_no. |
is_null | is_null(value) | Devuelve Yes si el valor es nulo y No en caso contrario. |
Los siguientes operadores de comparación se pueden utilizar con cualquier tipo de datos:
Operador | Sintaxis | Objetivo |
= | valor_1 = valor_2 | Devuelve Yes si valor_1 es igual a valor_2 y No en caso contrario. |
!= | valor_1 != valor_2 | Devuelve Yes si valor_1 no es igual a valor_2 y No en caso contrario. |
Los siguientes operadores de comparación solo se pueden utilizar con números y fechas:
Operador | Sintaxis | Objetivo |
> | valor_1 > valor_2 | Devuelve Yes si valor_1 es mayor que valor_2 y No en caso contrario. |
< | valor_1 < valor_2 | Devuelve Yes si valor_1 es menor que valor_2 y No en caso contrario. |
>= | valor_1 >= valor_2 | Devuelve Yes si valor_1 es mayor o igual que valor_2 y No en caso contrario. |
<= | valor_1 <= valor_2 | Devuelve Yes si valor_1 es menor o igual que valor_2 y No en caso contrario. |
También puedes combinar expresiones de Analytics Pro con estos operadores lógicos:
Operador | Sintaxis | Objetivo |
AND | valor_1 AND valor_2 | Devuelve Yes si tanto valor_1 como valor_2 son Yes, y No en caso contrario. |
OR | valor_1 OR valor_2 | Devuelve Yes si value_1 o value_2 es Yes y No en caso contrario. |
NOT | NOT value | Devuelve Yes si el valor es No y No en caso contrario. |
Constantes lógicas
Puede utilizar constantes lógicas en expresiones de Analytics Pro. Estas constantes siempre se escriben en minúsculas y tienen los siguientes significados:
Constante | Significado |
yes | True/Verdadero |
no | False/Falso |
null | No value/Sin valor |
Ten en cuenta que las constantes Yes y No son los símbolos especiales que significan verdadero o falso en las expresiones de Analytics Pro. Por el contrario, el uso de comillas como "Yes" y "No" crea strings/cadenas literales con esos valores.
Las expresiones lógicas se evalúan como verdaderas o falsas sin requerir una función If. Por ejemplo:
if(${field} > 100, yes, no)
es equivalente a esto:
${field} > 100
También puede utilizar null para indicar que no hay valor. Por ejemplo, es posible que desees determinar si un campo está vacío o asignar un valor vacío en una situación determinada. Esta fórmula no devuelve ningún valor si el campo es menor que 1, o el valor del campo si es mayor que 1:
if(${field} < 1, null, ${field})
Combinando operadores AND y OR
Los operadores AND se evalúan antes que los operadores OR, si no especifica el orden entre paréntesis. Por lo tanto, la siguiente expresión sin paréntesis adicionales:
if (
${order_items.days_to_process}>=4 OR
${order_items.shipping_time}>5 AND
${order_facts.is_first_purchase},
"review", "okay")
sería evaluado como:
if (
${order_items.days_to_process}>=4 OR
(${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")