If you want to manage the Conversion Type IDs at the campaign level, you need to use the ListOperations
Below code is working, it overrides the campaign's current optmization list with conversions in the camTargetConvList variable.
ListOperations listOperation = new ListOperations();
listOperation.operators = new ListOperationsListOperator[] { ListOperationsListOperator.PUT };
if (entry.selectiveOptimization == null)
entry.selectiveOptimization = new SelectiveOptimization();
entry.selectiveOptimization.conversionTypeIdsOps = listOperation;
entry.selectiveOptimization.conversionTypeIdsOps.clear = true;
entry.selectiveOptimization.conversionTypeIds = camTargetConvList.ToArray();
List<CampaignOperation> opList = new List<CampaignOperation>();
CampaignOperation operation = new CampaignOperation
{
@operator = Operator.SET,
operand = entry
};
opList.Add(operation);
campaignService.mutate(opList.ToArray());