cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Frequent Visitor

Medida DAX de atribución de primer toque con filtro de usuario final

Tengo un DB con Sessions como esto:

Lead_id__cSession_Start_Time__cPrimer tiempo de sesión de conversión de clientes potencialesID de sesiónCanalTipo de tráfico
x111/18/2019 18:3211/26/2019 0:00S100GoogleNo directo
x111/19/2019 19:2611/26/2019 0:00s101YahooNo directo
x111/25/2019 20:2611/26/2019 0:00S102DirectaDirecta
x37/20/2019 6:111/15/2020 0:00s108DirectaDirecta
x311/21/2019 22:501/15/2020 0:00s105LinkedinNo directo
x35/15/2020 9:381/15/2020 0:00s106LinkedinNo directo
x37/19/2020 18:101/15/2020 0:00S107YahooNo directo
x37/23/2020 6:241/15/2020 0:00s109DirectaDirecta
x37/23/2020 8:101/15/2020 0:00S110DirectaDirecta
x38/2/2020 15:461/15/2020 0:00s111GoogleNo directo
x38/3/2020 7:181/15/2020 0:00s112BúsquedaNo directo

Me gustaría tener una medida que cuente la primera sesión por "Canal" que fue antes o al mismo tiempo que "Tiempo de primera sesión de conversión de cliente potencial". También me gustaría tener un filtro de usuario en "tipo de tráfico", este filtro afectará el tiempo de la 1a sesión ya que algunas sesiones potenciales que fueron primero podrían filtrarse.

Esto es lo que he intentado hasta ahora:

-Primero--

He creado una columna calculada en la tabla "session order rank by Lead ID]" que clasifica las sesiones por fechas por ID de cliente potencial.

-Entonces-

Ventaja de Atribución de 1er Toque de Plomo (Lead 1st Touch Attribution Meassure)
var TB ( var TB)
CALCULATETABLE(
'Atribución de plomo',
ALLSELECTED('Atribución de plomo'[Lead_id__c])
FILTRO(
'Atribución de plomo','Atribución de plomo'[Session_Start_Time__c]<'Atribución de plomo'[Primer tiempo de sesión de conversión de clientes potenciales]),
TOPN(1,'Lead Attribution','Lead Attribution'[rango de orden de sesión por ID de cliente potencial],ASC)
)
var calc ?
sumx(
Tb
CALCULATE(
DISTINCTCOUNT(
'Atribución de plomo'[ID de sesión])
)
)
RETURN calc

---

Esto me da esto:

2020-11-18 15_07_42-Dummy Data - Power BI Desktop.png

Esperaba esto:

Filtro : No directo
Etiquetas de filaPrimer toque
Google1
Linkedin1
Gran Total2
Filtro: Directo
Etiquetas de filaPrimer toque
Directa2
Gran Total2
Sin filtro
Etiquetas de filaPrimer toque
Directa1
Google1
Gran Total2

¿Alguna sugerencia? Archivo PBX : https://www.dropbox.com/t/dNHdObA0HFUjVDwB

1 ACCEPTED SOLUTION

Hola @karlal ,

Esto tiene que ver con el contexto reemplazar su medida por:

Counts Lead IDs FirstLead = 
VAR MinimumDatesTable =
    ADDCOLUMNS (
        SUMMARIZE ( 'DIm Channel', 'DIm Channel'[Channel] ),
        "@DateMin", MIN ( 'Lead Attribution'[First Lead Conversion Session Time] )
    )
VAR MinStarDateSelection =
    MINX( MinimumDatesTable, [@DateMin] )

VAR MinStarSessionStartTime =
    CALCULATE(MIN('Lead Attribution'[Session_Start_Time__c]),ALLEXCEPT('Lead Attribution','Lead Attribution'[Lead_id__c],'Lead Attribution'[Traffic Type]))
VAR AttributionFiltered =
    FILTER (
        'Lead Attribution',
        'Lead Attribution'[Session_Start_Time__c] = MinStarSessionStartTime&&'Lead Attribution'[Session_Start_Time__c]<=MinStarDateSelection
    )

VAr CountAXX =COUNTAX(
        AttributionFiltered
        ,DISTINCTCOUNT('Lead Attribution'[Lead_id__c])
    )
Return 
IF(HASONEVALUE('DIm Channel'[Channel]),CountAXX,SUMX(ALLSELECTED('Lead Attribution'[Lead_id__c]),CountAXX))

Esto puede necesitar algunos cambios alrededor de la parte SUMX.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog:

Power BI em Português





View solution in original post

7 REPLIES 7
Super User III
Super User III

Hola @karlal ,

No estoy muy seguro de si entiendo la lógica basada en sus datos porque no puedo llegar al resultado que presenta al final de su publicación.

He creado la siguiente medida:

Counts Value FirstLead = 
VAR MinimumDatesTable =
    ADDCOLUMNS (
        SUMMARIZE ( 'DIm Channel'; 'DIm Channel'[Channel] );
        "@DateMin"; MIN ( 'Lead Attribution'[First Lead Conversion Session Time] )
    )
VAR MinStarDateSelection =
    MINX ( MinimumDatesTable; [@DateMin] )
VAR AttributionFiltered =
    FILTER (
        'Lead Attribution';
        'Lead Attribution'[Session_Start_Time__c] <= MinStarDateSelection
    )
RETURN
    COUNTROWS ( AttributionFiltered )

El resultado se encuentra en el archivo adjunto.

Si este no es el resultado esperado, puede compartir cuáles son las líneas que están contando para cada uno de los cálculos que presenta y cómo selecciona que es esa línea.

Lo que asumo en mi cálculo es que recoges para cada canal cuál es el primer cliente más bajo y luego todas las fechas que son más bajas que eso.

para el Filtro No he recogido las siguientes líneas:

Lead_id__c Session_Start_Time__c Primer tiempo de sesión de conversión de clientes potenciales ID de sesión Canal Tipo de tráfico
x1 18/11/2019 18:32 26/11/2019 00:00 S100 Google No directo
x1 19/11/2019 19:26 26/11/2019 00:00 s101 Yahoo No directo
x1 25/11/2019 20:26 26/11/2019 00:00 S102 Directa Directa
x3 20/07/2019 06:11 15/01/2020 00:00 s108 Directa Directa
x3 21/11/2019 22:50 15/01/2020 00:00 s105 Linkedin No directo

Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog:

Power BI em Português





Frequent Visitor

@MFelix Estás en algo. Así es como termino con mis resultados filtrados esperados. Supongo que la inclusión del "Tiempo de la primera sesión de conversión de clientes potenciales" es superflua en este cálculo, pero es importante cuando haré lo mismo para el último toque que ocurra antes o en "Tiempo de primera sesión de conversión de cliente potencial". 2020-11-20 17_55_36-Example Data - Excel.png

Hola @karlal ,

Lo sentimos, pero aún no se obtiene wath son las fechas que desea comparar y con qué valores.

Al examinar los datos, ¿cuál es la fecha mínima con la que se compara y por qué considera una fecha o no en su cálculo.

Sólo estoy confundido acerca de por qué consideras algunas fechas, por ejemplo, cuando no tienes filtro ¿por qué el valor considera el 18 de noviembre y no el 20 de julio? ¿Es porque el Sesseion es más bajo o porque el primer plomo es más bajo?


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog:

Power BI em Português





Frequent Visitor

@MFelix Lo siento si no he sido claro. Tal vez si empiezo desde el principio. Necesito atribuir una campaña a cada ID de cliente potencial y, a continuación, en mi suma visual, los ID de cliente potencial a la campaña "Primer toque" que atribuyó el filtro. Su pregunta sobre por qué el 18 de noviembre sobre el 20 de julio se debe a que el ID de cliente potencial es diferente.

Hola @karlal ,

Entonces, ¿la primera información que establece la fecha es el número de id de cliente potencial? así que el más bajo es el que se considera la fecha?


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog:

Power BI em Português





Frequent Visitor

@MFelix No, es por ID de cliente potencial que quiero encontrar la primera sesión por ID de cliente potencial. En el caso donde no se aplican filtros en el tipo de tráfico, esto es S100 para el lead id x1 y el s108 para el lead x3. S100 tiene "Google" como canal y s108 tiene "Direct" por lo tanto:

karlal_0-1606134985659.png

Me he acercado un poco más con la inspiración de su respuesta inicial.

Counts Lead IDs FirstLead = 
VAR MinimumDatesTable =
    ADDCOLUMNS (
        SUMMARIZE ( 'DIm Channel', 'DIm Channel'[Channel] ),
        "@DateMin", MIN ( 'Lead Attribution'[First Lead Conversion Session Time] )
    )
VAR MinStarDateSelection =
    MINX( MinimumDatesTable, [@DateMin] )

VAR MinStarSessionStartTime =
    CALCULATE(MIN('Lead Attribution'[Session_Start_Time__c]),ALLEXCEPT('Lead Attribution','Lead Attribution'[Lead_id__c],'Lead Attribution'[Traffic Type]))
VAR AttributionFiltered =
    FILTER (
        'Lead Attribution',
        'Lead Attribution'[Session_Start_Time__c] = MinStarSessionStartTime&&'Lead Attribution'[Session_Start_Time__c]<=MinStarDateSelection
    )

VAr CountAXX =COUNTAX(
        AttributionFiltered
        ,DISTINCTCOUNT('Lead Attribution'[Lead_id__c])
    )
Return CountAXX

Esto me lleva al filtrado correcto, pero el Total es incorrecto.

karlal_0-1606216444074.png

Hola @karlal ,

Esto tiene que ver con el contexto reemplazar su medida por:

Counts Lead IDs FirstLead = 
VAR MinimumDatesTable =
    ADDCOLUMNS (
        SUMMARIZE ( 'DIm Channel', 'DIm Channel'[Channel] ),
        "@DateMin", MIN ( 'Lead Attribution'[First Lead Conversion Session Time] )
    )
VAR MinStarDateSelection =
    MINX( MinimumDatesTable, [@DateMin] )

VAR MinStarSessionStartTime =
    CALCULATE(MIN('Lead Attribution'[Session_Start_Time__c]),ALLEXCEPT('Lead Attribution','Lead Attribution'[Lead_id__c],'Lead Attribution'[Traffic Type]))
VAR AttributionFiltered =
    FILTER (
        'Lead Attribution',
        'Lead Attribution'[Session_Start_Time__c] = MinStarSessionStartTime&&'Lead Attribution'[Session_Start_Time__c]<=MinStarDateSelection
    )

VAr CountAXX =COUNTAX(
        AttributionFiltered
        ,DISTINCTCOUNT('Lead Attribution'[Lead_id__c])
    )
Return 
IF(HASONEVALUE('DIm Channel'[Channel]),CountAXX,SUMX(ALLSELECTED('Lead Attribution'[Lead_id__c]),CountAXX))

Esto puede necesitar algunos cambios alrededor de la parte SUMX.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog:

Power BI em Português





View solution in original post

Helpful resources

Announcements
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.