I am researching uplift models to measure effect of treatment. Particularly when there are multiple treatments and I want to compare/order treatments based on their causal effect on average/individual. In literature (e.g. here study) authors often compare each treatment to control group and estimate effect, then order based on this effect. In case of observational data one must correct heterogeneous treatment groups with e.g. propensity score matching - where individuals from control group are matched to treated individuals based on similarity to ensure homogeneous subjects in each group.
Now to my question. As is the case with observational data, the subjects in each group may be heterogeneous. For example, younger people are assigned more frequently to treatment A, while older people to treatment B, control group is randomly assigned.
Now if I do matching between treatment A and control, I will sample mostly young people from control. Same with old people with treatment B and control. Now let say I am interested in effect on marketing ad A and ad B and no ad - control. Generally (assumption for this example) younger people are more likely to respond to online ad, while older are less likely. If no ad is shown the effect of age is negligible. If either add is shown, younger people will respond more. Thus effect of ad A will be much higher than effect of ad B, since most of young people are assigned to ad A. This is not causal effect of the treatment as it is biased by the age of the groups. It only compares treatment to control. It cannot be used to compare treatment A to treatment B.
Am I overlooking something? What is the correct way to compare treatment A to treatment B?