In our client's build, an external system sends an email that is selected by CDH, and receives responses (Opens and Clicks) from customers. The responses are then ingested back to CDH in batches nightly for recording in IH and attribution to adaptive models.
Currently, no click responses are being attributed to email adaptive models, although they are being written to IH. I have verified that the model rules have defined "Click" as the positive response, and that incoming click activities have "Click" as the value of pyOutcome.
After troubleshooting the chain of activities and data flows triggered by the file ingestion, I noticed that the value of pyOutcome is being overwritten to the string "_EMPTY_" at the Convert component in the "allow only predictions" path in the pxAdaptiveAnalyticsFlow data flow.
What is the purpose of this change in value?
The effect is that the data has nowhere to go once it reaches DF_ProcessResponses data flow. The interaction does not qualify to pass any of the filters in either of the three paths DF_ProcessResponses as long as pyOutcome is set to "_EMPTY_". If the value of pyOutcome was "Click" at this point, then the interaction would be recorded in pxAdaptiveAnalytics data set.
Are you using a prediction that is shipped OOTB or a custom adaptive model rule within a custom strategy?
If you are using a prediction that is shipped OOTB, have you customized the 'Response timeout' on it? Why this might become important is since it is a batch that ingests the responses, there might be a certain delay between when the response was actually triggered versus when it was ingested for attribution to adaptive models. And if the response timeout has elapsed by then, they might be getting ignored.
@kamag Hi Girish --thank you for the quick response. It's an OOTB prediction (Predict Outbound Email Propensity) with a 3-day response timeout window configured. Responses for each day's emails are ingested nightly. I wouldn't expect the delay to be significant enough to ignore all responses, right?
Thanks! In which case, the next thing to check would be -
Is the strategy shape in your make decision data flow emitting the property pyOptimizePredictionOutcome or not? If the 'Output properties' setting on the properties panel of the strategy shape in the data flow is set to 'Output all properties' then you can ignore this. If not, click on the 'Select properties' link to find out if this property is selected to be emitted or not. If not, please select it to be emitted and retry your scenario.
@gaudc thanks again for the confirmation. I suspect this might have to do with the pxHandleResponses data flow or the adaptive analytics branch therein. I request you to log an incident so that an appropriate team can take a closer look.