Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.googleadwords.util;import java.util.ArrayList;import java.util.Collections;import java.util.HashSet;import java.util.List;import java.util.Set;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import adwords.axis.v201309.basicoperations.AddTextAds;import adwords.axis.v201309.basicoperations.PauseAd;import in.shop2020.googleadwords.AdwordsAdGroup;import in.shop2020.googleadwords.AdwordsAdGroupAd;import in.shop2020.googleadwords.GoogleAdwordsServiceException;import in.shop2020.googleadwords.GoogleAdwordsService.Client;import in.shop2020.model.v1.catalog.CatalogServiceException;import in.shop2020.model.v1.catalog.Item;import in.shop2020.model.v1.catalog.status;import in.shop2020.thrift.clients.AdwordsClient;import in.shop2020.thrift.clients.CatalogClient;public class AdwordsTextAdItemPriceSync{public static void main(String[] args) {AdwordsClient adwordsServiceClient= null;CatalogClient catalogServiceClient = null;try {adwordsServiceClient = new AdwordsClient();catalogServiceClient = new CatalogClient();} catch (TTransportException e1) {e1.printStackTrace();}if(adwordsServiceClient!=null){Client client = adwordsServiceClient.getClient();List<AdwordsAdGroup> adgroupList =null;try {adgroupList = client.getAllAdwordsAdGroups();} catch (GoogleAdwordsServiceException e) {e.printStackTrace();} catch (TException e) {e.printStackTrace();}Set<AdwordsAdGroup> adGroupSet = new HashSet<AdwordsAdGroup>();for(AdwordsAdGroup adgroup: adgroupList){if(adgroup.getCatalogItemId()>0L){adGroupSet.add(adgroup);}}List<Long> errorAdGroupList = new ArrayList<Long>();List<Long> errorTextAdList = new ArrayList<Long>();for(AdwordsAdGroup adGroup : adGroupSet){if(catalogServiceClient!=null){long systemItemPrice = 0l;in.shop2020.model.v1.catalog.CatalogService.Client catalogClient = catalogServiceClient.getClient();List<Item> itemList = null;try {itemList = catalogClient.getItemsByCatalogId(adGroup.getCatalogItemId());} catch (CatalogServiceException e1) {e1.printStackTrace();} catch (TException e1) {e1.printStackTrace();}List<Double> priceList = new ArrayList<Double>();if(itemList!=null){for(Item item : itemList){if(status.ACTIVE==item.getItemStatus()){priceList.add(item.getSellingPrice());}}}else{continue;}Collections.sort(priceList);systemItemPrice = (long)priceList.get(0).doubleValue();long priceAtGoogleEnd = 0l;List<AdwordsAdGroupAd> textAdList = null;try {textAdList = client.getAdwordsAdGroupAdsByAdgroupId(adGroup.getAdgroupId());if(textAdList!=null){for(AdwordsAdGroupAd textAd : textAdList){Pattern pattern = Pattern.compile("Rs(.*?)#");Matcher matcher = pattern.matcher(textAd.getDescription1());String change = "";while (matcher.find()) {change=matcher.group(1);}if("".equalsIgnoreCase(change)){continue;}try{priceAtGoogleEnd = Long.parseLong(change);if(priceAtGoogleEnd > 0l){if(priceAtGoogleEnd != systemItemPrice){try {AdwordsAdGroupAd adgrpad = new AdwordsAdGroupAd();adgrpad.setAdgroupadId(PauseAd.runExample(textAd.getAdgroupId(), textAd.getAdgroupadId()));adgrpad.setAdgroupId(textAd.getAdgroupId());adgrpad.setCampaignId(textAd.getCampaignId());adgrpad.setDescription1(textAd.getDescription1());adgrpad.setDescription2(textAd.getDescription2());adgrpad.setDisplayUrl(textAd.getDisplayUrl());adgrpad.setHeadline(textAd.getHeadline());adgrpad.setUrl(textAd.getUrl());client.updateAdwordsAdGroupAd(adgrpad);} catch (Exception e1) {System.out.println("Error While Pausing the Adwords Text Ad with Ad Id.."+textAd.getAdgroupadId());continue;}String newDescription1 = textAd.getDescription1().replace(change, systemItemPrice+"");Long adGroupAdId =0l;try {adGroupAdId = AddTextAds.runExample(textAd.getAdgroupId(), textAd.getHeadline(), newDescription1, textAd.getDescription2(), textAd.getUrl(), textAd.getDisplayUrl());} catch (Exception e) {errorAdGroupList.add(textAd.getAdgroupId());errorTextAdList.add(textAd.getAdgroupadId());continue;}if(adGroupAdId > 0l){AdwordsAdGroupAd adgroupad = new AdwordsAdGroupAd();adgroupad.setAdgroupadId(adGroupAdId);adgroupad.setAdgroupId(textAd.getAdgroupId());adgroupad.setCampaignId(textAd.getCampaignId());adgroupad.setDescription1(newDescription1);adgroupad.setDescription2(textAd.getDescription2());adgroupad.setDisplayUrl(textAd.getDisplayUrl());adgroupad.setHeadline(textAd.getHeadline());adgroupad.setUrl(textAd.getUrl());client.addAdwordsAdGroupAd(adgroupad);}}}} catch(NumberFormatException e){System.out.println(e.getMessage());continue;}}}} catch (GoogleAdwordsServiceException e) {e.printStackTrace();} catch (TException e) {e.printStackTrace();}}}System.out.println("Error Ad Group List");for(Long l: errorAdGroupList){System.out.println(l);}System.out.println("Error Text Ad List");for(Long l: errorTextAdList){System.out.println(l);}}}}