Rev 9308 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.googleadwords.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.thrift.TException;import org.apache.thrift.transport.TTransportException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import adwords.axis.v201309.basicoperations.GetCampaigns;import in.shop2020.googleadwords.AdwordsCampaign;import in.shop2020.googleadwords.AdwordsCampaignStatus;import in.shop2020.googleadwords.GoogleAdwordsServiceException;import in.shop2020.googleadwords.GoogleAdwordsService.Client;import in.shop2020.googleadwords.NetworkSettingType;import in.shop2020.thrift.clients.AdwordsClient;/** Class AdwordsSaholicCampaignSync - To Sync Campaigns between Google Adwords and our Database.*/public class AdwordsSaholicCampaignSync{private static Logger logger = LoggerFactory.getLogger(AdwordsSaholicCampaignSync.class);public static void main(String[] args) {try {AdwordsClient adwordsServiceClient = new AdwordsClient();List<Map<String,String>> campaignDataMainList =null;try{campaignDataMainList = GetCampaigns.runExample();}catch (Exception e) {System.out.println("Exception at Google Adwords End.. "+e.getMessage());logger.error("Exception at Google Adwords End.. "+e.getMessage());}Client client = adwordsServiceClient.getClient();for(int i=0; i< campaignDataMainList.size(); i++){Map<String,String> campaignDataMap = campaignDataMainList.get(i);if(campaignDataMap!=null){System.out.println("Null Comes after This 1");if("DELETED".equalsIgnoreCase(campaignDataMap.get("Status"))){continue;}AdwordsCampaign campaignFromDB = null;campaignFromDB = client.getAdwordsCampaignByCampaignId(Long.parseLong(campaignDataMap.get("CampaignId")));AdwordsCampaign campaign = new AdwordsCampaign();System.out.println("Null Comes after This 2");System.out.println(campaignDataMap.get("CampaignId")+" "+campaignDataMap.get("Status")+" "+campaignDataMap.get("Amount")+campaignDataMap.get("StartDate")+" "+campaignDataMap.get("EndDate")+" "+campaignDataMap.get("TargetGoogleSearch")+" "+campaignDataMap.get("TargetSearchNetwork") +" "+campaignDataMap.get("TargetPartnerSearchNetwork")+ " "+campaignDataMap.get("TargetContentNetwork"));System.out.println("Null Comes after This 3");campaign.setCampaignId(Long.parseLong(campaignDataMap.get("CampaignId")));campaign.setName(campaignDataMap.get("Name"));AdwordsCampaignStatus status;if("PAUSED".equalsIgnoreCase(campaignDataMap.get("Status"))){status= AdwordsCampaignStatus.PAUSED;}else if("ACTIVE".equalsIgnoreCase(campaignDataMap.get("Status"))){status= AdwordsCampaignStatus.ACTIVE;}else{status= AdwordsCampaignStatus.DELETED;}double amount= Double.parseDouble(campaignDataMap.get("Amount"));amount = amount * Math.pow(10, -6);campaign.setStatus(status);campaign.setBudgetAmount(amount);SimpleDateFormat timestmapFormat = new SimpleDateFormat("yyyyMMdd");Date date= timestmapFormat.parse(campaignDataMap.get("StartDate"));campaign.setStartDate(date.getTime());date= timestmapFormat.parse(campaignDataMap.get("EndDate"));campaign.setEndDate(date.getTime());if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK);}else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.SEARCH_AND_DISPLAY_NETWORK);}else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.DISPLAY_NETWORK);}else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.DISPLAY_AND_PARTNER_NETWORK);}else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.SEARCH_AND_PARTNER_NETWORK);}else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.GOOGLE_PARTNER_SEARCH_NETWORK);}else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch"))&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork"))&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){campaign.setNetworkType(NetworkSettingType.ALL_AVALIABLE_SOURCES);}else{campaign.setNetworkType(NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK);}if(campaignFromDB.getCampaignId()>0l){campaign.setId(campaignFromDB.getId());client.updateAdwordsCampaign(campaign);}else{client.addAdwordsCampaign(campaign);}}}} catch (TTransportException e) {System.out.println("Error while Connecting to Adwords Client..");e.printStackTrace();logger.error("Error while Connecting to Adwords Client.."+e.getMessage());}catch (GoogleAdwordsServiceException e) {System.out.println("Error while Requesting Proper Data Google Adwords Service..");e.printStackTrace();logger.error("Error while Requesting Proper Data Google Adwords Service.."+e.getMessage());} catch (TException e) {System.out.println("Error while Getting Proper Data Google Adwords Service..");e.printStackTrace();logger.error("Error while Getting Proper Data Google Adwords Service.."+e.getMessage());} catch (ParseException e) {System.out.println("Error while Parsing Data.."+e.getMessage());logger.error("Error while Parsing Data.."+e.getMessage());}}}