Subversion Repositories SmartDukaan

Rev

Rev 9295 | Rev 9308 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9028 manish.sha 1
package in.shop2020.googleadwords.util;
2
 
9295 manish.sha 3
import java.text.ParseException;
9028 manish.sha 4
import java.text.SimpleDateFormat;
5
import java.util.ArrayList;
6
import java.util.Date;
7
import java.util.HashMap;
8
import java.util.List;
9
import java.util.Map;
10
 
9262 manish.sha 11
import org.apache.thrift.TException;
9028 manish.sha 12
import org.apache.thrift.transport.TTransportException;
9262 manish.sha 13
import org.slf4j.Logger;
14
import org.slf4j.LoggerFactory;
9028 manish.sha 15
 
16
import adwords.axis.v201309.basicoperations.GetCampaigns;
17
 
18
import in.shop2020.googleadwords.AdwordsCampaign;
19
import in.shop2020.googleadwords.AdwordsCampaignStatus;
9262 manish.sha 20
import in.shop2020.googleadwords.GoogleAdwordsServiceException;
9028 manish.sha 21
import in.shop2020.googleadwords.GoogleAdwordsService.Client;
22
import in.shop2020.googleadwords.NetworkSettingType;
23
import in.shop2020.thrift.clients.AdwordsClient;
24
 
9262 manish.sha 25
/*
26
 * Class AdwordsSaholicCampaignSync - To Sync Campaigns between Google Adwords and our Database.
27
 */
28
 
9028 manish.sha 29
public class AdwordsSaholicCampaignSync{
9262 manish.sha 30
	private static Logger logger = LoggerFactory.getLogger(AdwordsSaholicCampaignSync.class);
9028 manish.sha 31
 
32
	public static void main(String[] args) {
33
		try {
34
			AdwordsClient adwordsServiceClient = new AdwordsClient();
9294 manish.sha 35
			List<Map<String,String>> campaignDataMainList =null;
36
			try{
37
				campaignDataMainList = GetCampaigns.runExample();
38
			}
39
			catch (Exception e) {
40
				System.out.println("Exception at Google Adwords End.. "+e.getMessage());
41
				logger.error("Exception at Google Adwords End.. "+e.getMessage());
42
			}
9028 manish.sha 43
			Client client = adwordsServiceClient.getClient();
44
			for(int i=0; i< campaignDataMainList.size(); i++){
45
				Map<String,String> campaignDataMap = campaignDataMainList.get(i);
46
				if(campaignDataMap!=null){
9294 manish.sha 47
					System.out.println("Null Comes after This 1");
9259 manish.sha 48
					if("DELETED".equalsIgnoreCase(campaignDataMap.get("Status"))){
49
						continue;
50
					}
9262 manish.sha 51
					AdwordsCampaign campaignFromDB = null;
52
					campaignFromDB = client.getAdwordsCampaignByCampaignId(Long.parseLong(campaignDataMap.get("CampaignId")));
9028 manish.sha 53
					AdwordsCampaign campaign = new AdwordsCampaign();
9294 manish.sha 54
					System.out.println("Null Comes after This 2");
9028 manish.sha 55
					System.out.println(campaignDataMap.get("CampaignId")+" "+campaignDataMap.get("Status")+" "+campaignDataMap.get("Amount")
56
							+campaignDataMap.get("StartDate")+" "+campaignDataMap.get("EndDate")+" "
57
							+campaignDataMap.get("TargetGoogleSearch")+" "
58
							+campaignDataMap.get("TargetSearchNetwork") +" "
59
							+campaignDataMap.get("TargetPartnerSearchNetwork")+ " "
60
							+campaignDataMap.get("TargetContentNetwork"));
9294 manish.sha 61
					System.out.println("Null Comes after This 3");
9028 manish.sha 62
					campaign.setCampaignId(Long.parseLong(campaignDataMap.get("CampaignId")));
63
					campaign.setName(campaignDataMap.get("Name"));
64
					AdwordsCampaignStatus status;
65
					if("PAUSED".equalsIgnoreCase(campaignDataMap.get("Status"))){
66
						status= AdwordsCampaignStatus.PAUSED;
67
					}
68
					else if("ACTIVE".equalsIgnoreCase(campaignDataMap.get("Status"))){
69
						status= AdwordsCampaignStatus.ACTIVE;
70
					}
71
					else{
72
						status= AdwordsCampaignStatus.DELETED;
73
					}
74
					double amount= Double.parseDouble(campaignDataMap.get("Amount"));
75
					amount = amount * Math.pow(10, -6);
76
					campaign.setStatus(status);
77
					campaign.setBudgetAmount(amount);
78
					SimpleDateFormat timestmapFormat = new SimpleDateFormat("yyyyMMdd");
79
					Date date= timestmapFormat.parse(campaignDataMap.get("StartDate"));
80
					campaign.setStartDate(date.getTime());	
81
					date= timestmapFormat.parse(campaignDataMap.get("EndDate"));
82
					campaign.setEndDate(date.getTime());
83
					if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
84
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
85
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
86
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
87
						campaign.setNetworkType(NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK);
88
					}
89
					else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
90
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
91
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
92
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
93
						campaign.setNetworkType(NetworkSettingType.SEARCH_AND_DISPLAY_NETWORK);
94
					}
95
					else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
96
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
97
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
98
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
99
						campaign.setNetworkType(NetworkSettingType.DISPLAY_NETWORK);
100
					}
101
					else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
102
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
103
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
104
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
105
						campaign.setNetworkType(NetworkSettingType.DISPLAY_AND_PARTNER_NETWORK);
106
					}
107
					else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
108
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
109
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
110
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
111
						campaign.setNetworkType(NetworkSettingType.SEARCH_AND_PARTNER_NETWORK);
112
					}
113
					else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
114
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
115
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
116
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
117
						campaign.setNetworkType(NetworkSettingType.GOOGLE_PARTNER_SEARCH_NETWORK);
118
					}
119
					else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
120
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
121
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
122
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
123
						campaign.setNetworkType(NetworkSettingType.ALL_AVALIABLE_SOURCES);
124
					}
125
					else{
126
						campaign.setNetworkType(NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK);			
127
					}					
128
 
9262 manish.sha 129
					if(campaignFromDB!=null){
130
						campaign.setId(campaignFromDB.getId());
131
						client.updateAdwordsCampaign(campaign);
132
					}
133
					else{
134
						client.addAdwordsCampaign(campaign);
135
					}
9028 manish.sha 136
 
137
				}
138
			}
139
 
140
 
141
		} catch (TTransportException e) {
9262 manish.sha 142
			System.out.println("Error while Connecting to Adwords Client.."+e.getMessage());
143
			logger.error("Error while Connecting to Adwords Client.."+e.getMessage());
144
		}catch (GoogleAdwordsServiceException e) {
9304 manish.sha 145
			System.out.println("Error while Requesting Proper Data Google Adwords Service..");
146
			e.printStackTrace();
9262 manish.sha 147
			logger.error("Error while Requesting Proper Data Google Adwords Service.."+e.getMessage());
148
		} catch (TException e) {
9304 manish.sha 149
			System.out.println("Error while Getting Proper Data Google Adwords Service..");
150
			e.printStackTrace();
9262 manish.sha 151
			logger.error("Error while Getting Proper Data Google Adwords Service.."+e.getMessage());
9295 manish.sha 152
		} catch (ParseException e) {
153
			System.out.println("Error while Parsing Data.."+e.getMessage());
154
			logger.error("Error while Parsing Data.."+e.getMessage());
9294 manish.sha 155
		} 
9028 manish.sha 156
	}
157
 
158
}