Subversion Repositories SmartDukaan

Rev

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