facebookexperimental/Robyn

How does CPA(target effeciency) works in Optimization function compared to Revenue(conversion)

Opened this issue · 1 comments

Project Robyn

Hi Team,
I was going through the budget allocator function code(shared in git).

I was able to understand the implementation of Revenue and how it is being passed to nloptr function to optimise the budget across all paid channels. Basically, we are using 'initResponseMargUnit' as initial point on saturation curve and using that to optimise based on the bound provided.

However, I am not able to make sense how this process is being done for CPA metrics (target efficiency). I believe we are taking inverse of ROAS and then using that fraction as starting point on saturation curve, but not able to figure out where exactly that process is being carried out.

Can you guys pls confirm the above understanding and help in walking through, how the optimization function is working for CPA scenario?

Thank you in advance!

Please check the implementation of the constraint eval_g_eq_effi for the objective function here . Or in short, the main objective function eval_f is always the same and maximises response (or minimises the negative response to be very precise), the difference is in the constraints across both max_response / target_efficiency / ROAS/ CPA.