Análisis de embudo: estudio de caso del modelo AARRR

   El análisis de embudo es un método de análisis de datos basado en procesos que puede reflejar científicamente las conversiones de los usuarios en cada etapa. El modelo de análisis de embudo ha sido ampliamente utilizado en productos de análisis de comportamiento de usuarios, y sus funciones son muy poderosas: puede evaluar el estado de conversión de todo o cada enlace, y el efecto de las actividades promocionales; también se puede combinar con otros análisis de datos. modelos para un análisis profundo del comportamiento de los usuarios, a fin de encontrar las razones de la rotación de los usuarios para aumentar el volumen, la actividad y las tasas de retención de los usuarios.


   Las dos métricas complementarias más utilizadas para el análisis de embudos son la tasa de conversión y la tasa de abandono. Por ejemplo, si 100 personas visitan un sitio web de comercio electrónico, 27 personas pagan con éxito. Hay 5 pasos en este proceso. La tasa de conversión del primer paso al segundo paso es 88%, la tasa de pérdida es 12%, la tasa de conversión del segundo paso al tercer paso es 32%, la tasa de pérdida es 68 %...etcétera. La tasa de conversión para todo el proceso fue del 27 % y la tasa de abandono fue del 73 %. Este modelo es el clásico modelo de análisis de embudo. Cada capa de embudo es un evento de embudo. Entre ellos, el indicador central es la tasa de conversión.


Los tres elementos del embudo:


Tiempo: se refiere específicamente al ciclo de conversión del embudo, que es el tiempo requerido para completar cada capa del embudo.
Nodo: cada capa del embudo es un nodo.
Tráfico: Es la multitud (número de personas).


Por tiempo: en términos generales, cuanto más corto sea el ciclo de conversión de un embudo, mejor.


Para nodos: el indicador central es la tasa de conversión y la fórmula de cálculo es: tasa de conversión = número de personas convertidas por eventos en esta capa/número de personas convertidas por eventos en la capa superior


Para el tráfico: el rendimiento de diferentes grupos específicos de personas bajo el mismo embudo debe ser diferente.Por ejemplo, en el mismo tipo de embudo de productos electrónicos de alta gama, la tasa de conversión de jóvenes y personas mayores debe ser diferente.


   El modelo AARRR es uno de los análisis de embudo, que puede guiarnos para detectar y analizar qué indicadores, es la abreviatura de 5 enlaces importantes en el ciclo de vida, que incluyen: adquisición de usuarios (Adquisición), activación de usuarios (Activación), retención de usuarios ( Retención)), ingresos (Ingresos), autopropagación (Referir)



inserte la descripción de la imagen aquí



   Tomando como ejemplo los libros electrónicos en línea, desde la apertura de la aplicación hasta la compra, los nuevos usuarios recorrerán un camino que incluye los siguientes cuatro enlaces principales:


1. Abra la aplicación e ingrese a la página de inicio
2. Ingrese a la página del libro
3. Inicie la lectura de prueba
4. Compre libros


   En cada enlace, solo algunos usuarios irán al siguiente enlace. A los que lo han alcanzado se les llama conversión, y a los que no lo han alcanzado se les llama pérdida. Esta serie de enlaces es como una capa de embudos. En consecuencia, llamamos al método de análisis capa por capa y análisis de embudo de conversión. A través del método de análisis de embudo, podemos averiguar qué capas tienen una conversión particularmente baja y merecen una mejora prioritaria.


   Los datos del usuario se extraen del fondo de la plataforma de libros electrónicos y se almacenan en el nombre de la variable correspondiente, de la siguiente manera:



inserte la descripción de la imagen aquí



   Primero, descubra las 10 ID de usuario más activas:



inserte la descripción de la imagen aquí



import numpy as np

active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
print(active_uids[:10])


   Obtenga la cantidad de 4 tipos de ID:



inserte la descripción de la imagen aquí



import numpy as np

active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')
trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

num_active_uids = len(active_uids)
num_enterbook_uids = len(enterbook_uids)
num_trial_uids = len(trial_uids)
num_paid_uids = len(paid_uids)

print("活跃用户数:%d" % num_active_uids)
print("打开书籍页面用户数:%d" % num_enterbook_uids)
print("试读用户数:%d" % num_trial_uids)
print("购书用户数:%d" % num_paid_uids)


   Según el número de ID obtenidos, se puede dibujar un gráfico de columnas intuitivo:



inserte la descripción de la imagen aquí



import numpy as np
import matplotlib.pyplot as plt

active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')
trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

num_active_uids = len(active_uids)
num_enterbook_uids = len(enterbook_uids)
num_trial_uids = len(trial_uids)
num_paid_uids = len(paid_uids)

x = ['Active','Enter Book','Trial','Paid']
data = [num_active_uids,num_enterbook_uids,num_trial_uids,num_paid_uids]
plt.bar(x,data)
plt.show()


   Se puede ver claramente en la figura que la tasa de conversión de la lectura de prueba a la compra no es alta. De hecho, hay dos rutas de conversión de compra diferentes, debemos analizarlas por separado.


   En primer lugar, analizamos aquellos usuarios que entran en la página del libro y compran directamente sin lectura de prueba. En este momento, no podemos simplemente mirar los números, sino operar de acuerdo con la ID de usuario original. El ID de usuario comprado después de la lectura de prueba debe pertenecer al ID del usuario de lectura de prueba y al ID del usuario que compra, es decir, la parte del ID que se superpone entre las dos listas de trial_uids ypaid_uids es el ID de usuario que se compra. después de la lectura de prueba. .


   ¿Cómo puedo encontrar rápidamente las partes superpuestas de las dos listas? Python tiene un método establecido para deduplicar rápidamente. Puede usar el método de intersección() para ejecutar s.intersection(t). Dado que la intersección de s y t es exactamente igual que la intersección de t y s, el orden no importa. Entonces t.intersection(s) tiene el mismo efecto. La forma más fácil de escribirlo es s & t o t & s.



inserte la descripción de la imagen aquí



import numpy as np
# import matplotlib.pyplot as plt
# active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
# enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')

trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

trial_uids_set = set(trial_uids)
paid_uids_set = set(paid_uids)
paid_with_trial_uids = trial_uids_set & paid_uids_set
num_paid_with_trial_uids = len(paid_with_trial_uids)


print("有%d位用户先试读后再购书" % num_paid_with_trial_uids)


   A través de los resultados de salida, se sabe que hay 22 usuarios que intentan leer antes de comprar libros. Sin embargo, el ID de usuario comprado directamente sin lectura de prueba debe existir enpaid_uids y no debe existir en trial_uids. Siempre que se reste el conjunto, se puede obtener el resultado.



inserte la descripción de la imagen aquí



import numpy as np
#import matplotlib.pyplot as plt

# active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
# enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')

trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

trial_uids_set = set(trial_uids)
paid_uids_set = set(paid_uids)
paid_with_trial_uids = trial_uids_set & paid_uids_set

paid_without_trial_uids = paid_uids_set - paid_with_trial_uids
num_paid_without_trial_uids = len(paid_without_trial_uids)

print("有%d位用户没有试读就购书" % num_paid_without_trial_uids)


   A través de los resultados de salida, se sabe que 114 usuarios compraron libros sin lectura de prueba.


   Dibujamos dos embudos según dos rutas diferentes, porque nos enfocamos principalmente en el usuario después de ingresar a la página del libro, por lo que podemos ignorar temporalmente la capa de usuarios activos.



Embudo 1: El usuario ingresa al libro página-prueba libro-prueba lectura y luego compra en tres pasos.



inserte la descripción de la imagen aquí



import numpy as np
import matplotlib.pyplot as plt

active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')
trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

num_active_uids = len(active_uids)
num_enterbook_uids = len(enterbook_uids)
num_trial_uids = len(trial_uids)
num_paid_uids = len(paid_uids)

trial_uids_set = set(trial_uids)
paid_uids_set = set(paid_uids)
paid_with_trial_uids = trial_uids_set & paid_uids_set

paid_without_trial_uids = paid_uids_set - paid_with_trial_uids
num_paid_without_trial_uids = len(paid_without_trial_uids)
num_paid_with_trial_uids = len(paid_with_trial_uids)

x = ['Enter Book', 'Trial', 'Trial Then Paid']
nums = [num_enterbook_uids, num_trial_uids, num_paid_with_trial_uids]
plt.bar(x, nums)
plt.show()


Embudo 2: El usuario ingresa a la página del libro-compra directa en dos pasos.



inserte la descripción de la imagen aquí



import numpy as np
import matplotlib.pyplot as plt

active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')
trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

num_active_uids = len(active_uids)
num_enterbook_uids = len(enterbook_uids)
num_trial_uids = len(trial_uids)
num_paid_uids = len(paid_uids)

trial_uids_set = set(trial_uids)
paid_uids_set = set(paid_uids)
paid_with_trial_uids = trial_uids_set & paid_uids_set

paid_without_trial_uids = paid_uids_set - paid_with_trial_uids
num_paid_without_trial_uids = len(paid_without_trial_uids)
num_paid_with_trial_uids = len(paid_with_trial_uids)

x = ['Enter Book', 'Paid Without Trial']
nums = [num_enterbook_uids, num_paid_without_trial_uids]
plt.bar(x, nums)
plt.show()


   Dibuje directamente estos dos diagramas de embudo juntos:



inserte la descripción de la imagen aquí



import numpy as np
import matplotlib.pyplot as plt

active_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\active_uids.csv')
enterbook_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\enterbook_uids.csv')
trial_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\trial_uids.csv')
paid_uids = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\paid_uids.csv')

num_active_uids = len(active_uids)
num_enterbook_uids = len(enterbook_uids)
num_trial_uids = len(trial_uids)
num_paid_uids = len(paid_uids)

trial_uids_set = set(trial_uids)
paid_uids_set = set(paid_uids)
paid_with_trial_uids = trial_uids_set & paid_uids_set

paid_without_trial_uids = paid_uids_set - paid_with_trial_uids
num_paid_without_trial_uids = len(paid_without_trial_uids)
num_paid_with_trial_uids = len(paid_with_trial_uids)

x = ['Enter Book', 'Trial Or Pay', 'Trial Then Pay']
nums_enter_book = [num_enterbook_uids, 0, 0]
plt.bar(x, nums_enter_book)

nums_trial = [0, num_trial_uids, num_paid_with_trial_uids]
plt.bar(x, nums_trial, label='Trial')

nums_without_trial = [0, num_paid_without_trial_uids, 0]
plt.bar(x, nums_without_trial, label='Pay Without Trial')

plt.legend()
plt.show()


   En la figura se puede ver que en el segundo nivel del embudo, es decir, el segundo paso correspondiente al usuario que ingresa a la página del libro, la mayoría de los usuarios (973) eligen lectura de prueba y un pequeño número (114) de usuarios eligen compra directa; pero usuarios de lectura de prueba Solo hubo 22 compradores de libros en el seguimiento, es decir, el número y la conversión de libros comprados por los usuarios después de la lectura de prueba fue mucho menor que aquellos que compraron libros directamente después de ingresar a la página del libro. . Entonces, se nos ocurrió una idea audaz: ¿es útil la lectura de prueba? ¿Qué pasa si se cancela, aumentará? Si decidimos cancelar primero la función de lectura de prueba y luego observar y comparar la tasa de conversión de compra, el resultado puede no ser objetivo. Debido a que el entorno externo cambia constantemente con el tiempo, si el experimento se realiza en fechas diferentes, incluso si los resultados son diferentes, es difícil para nosotros explicar si la diferencia se debe a nuestros cambios en la aplicación o a la fecha. en sí mismo, porque diferentes fechas (como fines de semana, vacaciones, Double Eleven) tendrán un impacto en el comportamiento de consumo del usuario.


   Podemos introducir pruebas A/B, es decir, si hay múltiples versiones de un producto que desea comparar y elegir, dentro del mismo período de tiempo, la población objetivo se divide aleatoriamente en múltiples grupos de igual número, y cada grupo usa una versión diferente del producto. Luego compare los resultados.



inserte la descripción de la imagen aquí



inserte la descripción de la imagen aquí



   Después de la prueba AB, los datos experimentales de los grupos A y B se obtienen del fondo del libro electrónico y se definen los nombres de las variables de los dos grupos.



inserte la descripción de la imagen aquí



inserte la descripción de la imagen aquí



inserte la descripción de la imagen aquí



import numpy as np

active_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\active_uids_A.csv')
enterbook_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\enterbook_uids_A.csv')
trial_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\trial_uids_A.csv')
paid_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\paid_uids_A.csv')

active_uids_B = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\active_uids_B.csv')
enterbook_uids_B = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\enterbook_uids_B.csv')
paid_uids_B = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\paid_uids_B.csv')

num_active_uids_A = len(active_uids_A)
num_enterbook_uids_A = len(enterbook_uids_A)
num_trial_uids_A = len(trial_uids_A)
num_paid_uids_A = len(paid_uids_A)

num_active_uids_B = len(active_uids_A)
num_enterbook_uids_B = len(enterbook_uids_A)
num_paid_uids_B = len(paid_uids_A)

print("A组数据")
print("-----------")
print("活跃用户数:%d" % num_active_uids_A)
print("打开书籍页面用户数:%d" % num_enterbook_uids_A)
print("试读用户数:%d" % num_trial_uids_A)
print("购书用户数:%d" % num_paid_uids_A)
print("    ")
print("B组数据")
print("-----------")
print("活跃用户数:%d" % num_active_uids_B)
print("打开书籍页面用户数:%d" % num_enterbook_uids_B)
print("购书用户数:%d" % num_paid_uids_B)


   Después de obtener los datos clave de los dos grupos A y B anteriores, use el histograma nuevamente para comparar el embudo de conversión de compra de los dos grupos:



inserte la descripción de la imagen aquí



import numpy as np
import matplotlib.pyplot as plt

active_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\active_uids_A.csv')
enterbook_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\enterbook_uids_A.csv')
trial_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\trial_uids_A.csv')
paid_uids_A = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\paid_uids_A.csv')

active_uids_B = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\active_uids_B.csv')
enterbook_uids_B = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\enterbook_uids_B.csv')
paid_uids_B = np.genfromtxt(r'C:\Users\Administrator\Desktop\funnel_analyst\AB\paid_uids_B.csv')

num_active_uids_A = len(active_uids_A)
num_enterbook_uids_A = len(enterbook_uids_A)
num_trial_uids_A = len(trial_uids_A)
num_paid_uids_A = len(paid_uids_A)

num_active_uids_B = len(active_uids_B)
num_enterbook_uids_B = len(enterbook_uids_B)
num_trial_uids_B = 0
num_paid_uids_B = len(paid_uids_B)

labels = ['Enter Book', 'Trial', 'Pay']
data_A = [num_enterbook_uids_A, num_trial_uids_A, num_paid_uids_A]
data_B = [num_enterbook_uids_B, num_trial_uids_B, num_paid_uids_B]

x = np.arange(len(labels))
width = 0.35
plt.bar(x - width/2, data_A, width, label='A')
plt.bar(x + width/2, data_B, width, label='B')

plt.xticks(x, labels)
plt.legend()
plt.show()


   Podemos encontrar que al nivel de ingresar a la página del libro, los datos de los dos grupos A y B son similares, porque nuestra prueba es para el botón de prueba dentro de la página del libro, lo que no afectará el juicio del usuario al ingresar a la página del libro. de la página de inicio del libro. Porque en este momento no pueden ver cómo son las páginas del libro. Al mismo tiempo, también se puede ver que los datos de pago del grupo B son significativamente más altos que los del grupo A. ¿Podemos sacar la conclusión de que después de cancelar la lectura de prueba, las ventas serán mejores? Después de continuar con esta prueba AB durante una semana, descubrí que los resultados todos los días eran los mismos que el primer día, lo que también demostró la eficacia de esta prueba.


   Aunque los datos verifican que los usuarios están más dispuestos a comprar después de cancelar la lectura de prueba, ¿cuál es la razón detrás de esto? Obviamente, otros software y plataformas de lectura en línea tienen funciones de lectura de prueba, ¿están todos equivocados? Por lo tanto, para obtener una comprensión más profunda de por qué, es necesario analizar el comportamiento y los datos de esta parte de los usuarios de prueba.


Después de que el usuario inicia la lectura de prueba e ingresa a la página de lectura del libro por primera vez, hay tres comportamientos posibles de la siguiente manera:

Lectura
Página siguiente
Salir Lectura


   Luego, estudiemos cómo los usuarios toman decisiones de comportamiento. La página siguiente y la lectura de salida corresponden a botones específicos. El programa puede detectar si el usuario ha hecho clic en estos dos botones, pero ¿cómo sabemos si el usuario ha leído un libro? Aunque no podemos saber directamente si el usuario está leyendo o no, podemos saber cuánto tiempo pasa el usuario en la interfaz de lectura Salvo muy pocas excepciones, cuanto más tiempo permanece el usuario, más probable es que esté leyendo. Por lo tanto, llevamos a cabo un análisis en profundidad invocando los datos de lectura de prueba de este libro electrónico la semana pasada:



inserte la descripción de la imagen aquí



import pandas as pd

prince_trial = r'C:\Users\Administrator\Desktop\funnel_analyst\AB\ice_trial.csv'
df = pd.read_csv(prince_trial)
print(df.head())

Obtenemos los datos de los 5 primeros arriba, cada uno


user_id: ID de usuario
time_stary: tiempo de permanencia (s)
next_page: si hacer clic en la página siguiente
quit_trial: dejar de leer
finish_trial: finalizar la prueba
pay: comprar


   Tomando la primera fila como ejemplo, significa que el usuario con ID 125777 intentó leer, permaneció en la primera página durante 26 segundos, hizo clic en la página siguiente, no eligió salir de la lectura, no completó la lectura de prueba y finalmente lo hizo. no comprar


   Analice la distribución del tiempo de permanencia de los usuarios:



inserte la descripción de la imagen aquí



import pandas as pd
import matplotlib.pyplot as plt

prince_trial = r'C:\Users\Administrator\Desktop\funnel_analyst\AB\ice_trial.csv'
df = pd.read_csv(prince_trial)

plt.hist(df['time_stay'], bins=10, facecolor="blue", edgecolor="black", alpha=0.7)
plt.xlabel("Time Staying")
plt.ylabel("Number of Users")
plt.show()


   Se puede encontrar que la mayoría de los usuarios de prueba permanecen en la primera página por no más de 30 segundos, si no pasa los 30 segundos, es obvio que no pueden terminar de leer el contenido de la página. la página siguiente no debe ser demasiado alta. Para verificar esta conjetura, dividimos a los usuarios en dos grupos, un grupo cuyo tiempo de lectura es de 30 segundos o menos, y el otro grupo cuyo tiempo de lectura es de más de 30 segundos ¿Cuál es la proporción de hacer clic en la página siguiente?



inserte la descripción de la imagen aquí



import pandas as pd
import matplotlib.pyplot as plt
prince_trial = r'C:\Users\Administrator\Desktop\funnel_analyst\AB\ice_trial.csv'

df = pd.read_csv(prince_trial)

# 从所有数据中查找 time_stay 字段的值小于等于 30 的数据记录
under_30 = df[df['time_stay'] <= 30]

# 从所有数据中查找 time_stay 字段的值大 30 的数据记录
above_30 = df[df['time_stay'] > 30]

# 记录两组人数
num_under_30 = len(under_30)
num_above_30 = len(above_30)

under_30_and_next_page = under_30[under_30['next_page']]
above_30_and_next_page = above_30[above_30['next_page']]

num_under_30_and_next_page = len(under_30_and_next_page)
num_above_30_and_next_page = len(above_30_and_next_page)

ratio_under_30_and_next_page = num_under_30_and_next_page / num_under_30
ratio_above_30_and_next_page = num_above_30_and_next_page / num_above_30

print("阅读时间在30秒及以下,总人数为%d,点击下一页的人数为%d,比例为%.0f%%" %
  (num_under_30, num_under_30_and_next_page, 100 * ratio_under_30_and_next_page))
print("阅读时间在30秒以上,总人数为%d,点击下一页的人数为%d,比例为%.0f%%" %
  (num_above_30, num_above_30_and_next_page, 100 * ratio_above_30_and_next_page))


Esto nos da los siguientes resultados de la relación:


El tiempo de lectura es de 30 segundos o menos, el número total de personas es 1134, el número de personas que hacen clic en la página siguiente es 9, la proporción es del 1%, el tiempo de lectura es de más de 30 segundos, el número total de
personas es 188, el número de personas que hacen clic en la siguiente página es 64, la proporción es 34 %


   Hemos descubierto la correlación entre el tiempo de lectura y si el usuario hace clic en la página siguiente o incluso compra. Entonces, ¿podemos decir que mientras encontremos una manera de hacer que los usuarios lean más tiempo, eventualmente podemos aumentar las compras? La correlación no implica causa. Por ejemplo, un supermercado descubre que existe una correlación entre las ventas de helados y los acondicionadores de aire, pero eso no significa que el supermercado pueda aumentar las ventas de acondicionadores de aire encontrando formas de aumentar las ventas de helados. Porque el clima cálido en verano es la razón del aumento en las ventas de los dos al mismo tiempo.


  En el producto, es probable que haya un factor que haga que los usuarios lean durante un breve período de tiempo y no estén dispuestos a comprar al mismo tiempo. ¿Cuál es el factor? En este momento, también pensamos que la razón principal por la que los usuarios no pueden entender un libro en chino es porque el contenido es demasiado complicado, y la razón por la que los usuarios no pueden entender un libro en inglés probablemente se deba a una habilidad insuficiente en inglés. Entonces, ¿hay tantos usuarios que se dieron por vencidos porque querían leer la versión en inglés, pero realmente la leyeron y descubrieron que su habilidad en inglés no era suficiente, así que simplemente se dieron por vencidos? Para verificar esto, podemos encontrar suficientes usuarios para realizar encuestas y entrevistas, o podemos preguntar directamente a los usuarios en el producto. Así que creamos una ventana emergente cuando el usuario volvía a hacer clic, preguntándole por qué se dio por vencido, si no estaba interesado en el contenido en sí, si lo encontraba demasiado difícil, o ambas cosas, o ninguna.


   Al recopilar datos durante varios días, se obtienen los siguientes datos de retroalimentación:


No me interesa: 152


No puedo entender inglés: 888


Ambos: 122


Otras razones: 130


   Muestre visualmente los datos de retroalimentación dibujando un gráfico circular:



inserte la descripción de la imagen aquí



import matplotlib.pyplot as plt

labels = ['Not Interested', 'Don\'t Understand', 'Both', 'Neither']
data = [152, 888, 122, 130]

colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0, 0.1, 0, 0)
plt.pie(data, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=140)
plt.show()


   Ahora podemos confirmar que en la prueba AB anterior, la mayoría de los usuarios del Grupo A que eligieron la lectura de prueba se dieron por vencidos rápidamente porque descubrieron que no podían entender durante la etapa de lectura de prueba; mientras que los usuarios del Grupo B no tenían una oportunidad de lectura de prueba. Muchos usuarios que no podían entenderlo no sabían que no podían entenderlo, así que lo compraron primero. La razón por la que la aplicación de lectura de libros chinos puede proporcionar generosamente la función de lectura de prueba es porque es poco probable que deje de comprar debido a la incomprensión después de la lectura de prueba. Por lo tanto, hemos vivido un proceso completo de descubrimiento de problemas, propuesta de hipótesis, comprobación y análisis y propuesta de soluciones. En este proceso, el análisis de datos juega un papel indispensable pero no el único, porque descubrir problemas y proponer hipótesis requiere perspicacia, y proponer soluciones requiere creatividad, y estas habilidades no se adquieren con solo mirar números. Por lo tanto, el análisis de datos es solo un medio para ayudarnos a encontrar problemas. Podemos usar los datos como el punto de partida del análisis, pero no como el punto final del análisis. Debemos comprender profundamente a los usuarios y comprender sus escenarios de uso y las dificultades en principio Solo entonces podemos continuar iterando productos y seguir mejorando.

Supongo que te gusta

Origin blog.csdn.net/weixin_48591974/article/details/128257614
Recomendado
Clasificación