Details
-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 1.5.3
-
Fix Version/s: 1.5.4
-
Component/s: AdMax Deployment Service
-
Labels:None
-
Environment:
optus production
Description
I found a bug that only affects Optus as of v201302 upgrade.
Text ads for all campaigns (GT, GM, MO, Brand) are getting the mobile-preferred flag set.
The expected result is that MO and Brand campaigns get the mobile-preferred flag set.
Campaigns that were created before 1.5.3 are not affected b/c migration didn't have this bug. 1.5.3 did not support updating the mobile-preferred flag on redeployments so even if campaigns created before 1.5.3 got redeployed with 1.5.3 they won't be affected.
Campaigns created in 1.5.3 are affected.
I debugged ADS and found the cause of the problem. AdmaxDeploymentServiceImpl.getAdCopies() has an if else statement to determine whether to use CustomerCampaignService for ad copies (expected) or content repository for ad copies (just in case something goes wrong with CCS and can't get it that way). The name of the method it calls to convert the ad copy is convertCustomerAdCopy() and the name is misleading since ADS considers brand campaigns "customer campaigns". There is also a method convertAdCopy() which gets called if the ad copy comes from content repository. Due to this naming convention and lack of java doc comments, it seemed like convertCustomerAdCopy() only handled brand campaigns (which is actually not the case) so the devicePreference was simply being set without double-checking the type of campaign.