Subversion Repositories SmartDukaan

Rev

Rev 9259 | Rev 9294 | 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();
34
			List<Map<String,String>> campaignDataMainList = GetCampaigns.runExample();
35
			Client client = adwordsServiceClient.getClient();
36
			for(int i=0; i< campaignDataMainList.size(); i++){
37
				Map<String,String> campaignDataMap = campaignDataMainList.get(i);
38
				if(campaignDataMap!=null){
9259 manish.sha 39
					if("DELETED".equalsIgnoreCase(campaignDataMap.get("Status"))){
40
						continue;
41
					}
9262 manish.sha 42
					AdwordsCampaign campaignFromDB = null;
43
					campaignFromDB = client.getAdwordsCampaignByCampaignId(Long.parseLong(campaignDataMap.get("CampaignId")));
9028 manish.sha 44
					AdwordsCampaign campaign = new AdwordsCampaign();
45
					System.out.println(campaignDataMap.get("CampaignId")+" "+campaignDataMap.get("Status")+" "+campaignDataMap.get("Amount")
46
							+campaignDataMap.get("StartDate")+" "+campaignDataMap.get("EndDate")+" "
47
							+campaignDataMap.get("TargetGoogleSearch")+" "
48
							+campaignDataMap.get("TargetSearchNetwork") +" "
49
							+campaignDataMap.get("TargetPartnerSearchNetwork")+ " "
50
							+campaignDataMap.get("TargetContentNetwork"));
51
					campaign.setCampaignId(Long.parseLong(campaignDataMap.get("CampaignId")));
52
					campaign.setName(campaignDataMap.get("Name"));
53
					AdwordsCampaignStatus status;
54
					if("PAUSED".equalsIgnoreCase(campaignDataMap.get("Status"))){
55
						status= AdwordsCampaignStatus.PAUSED;
56
					}
57
					else if("ACTIVE".equalsIgnoreCase(campaignDataMap.get("Status"))){
58
						status= AdwordsCampaignStatus.ACTIVE;
59
					}
60
					else{
61
						status= AdwordsCampaignStatus.DELETED;
62
					}
63
					double amount= Double.parseDouble(campaignDataMap.get("Amount"));
64
					amount = amount * Math.pow(10, -6);
65
					campaign.setStatus(status);
66
					campaign.setBudgetAmount(amount);
67
					SimpleDateFormat timestmapFormat = new SimpleDateFormat("yyyyMMdd");
68
					Date date= timestmapFormat.parse(campaignDataMap.get("StartDate"));
69
					campaign.setStartDate(date.getTime());	
70
					date= timestmapFormat.parse(campaignDataMap.get("EndDate"));
71
					campaign.setEndDate(date.getTime());
72
					if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
73
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
74
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
75
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
76
						campaign.setNetworkType(NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK);
77
					}
78
					else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
79
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
80
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
81
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
82
						campaign.setNetworkType(NetworkSettingType.SEARCH_AND_DISPLAY_NETWORK);
83
					}
84
					else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
85
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
86
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
87
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
88
						campaign.setNetworkType(NetworkSettingType.DISPLAY_NETWORK);
89
					}
90
					else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
91
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
92
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
93
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
94
						campaign.setNetworkType(NetworkSettingType.DISPLAY_AND_PARTNER_NETWORK);
95
					}
96
					else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
97
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
98
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
99
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
100
						campaign.setNetworkType(NetworkSettingType.SEARCH_AND_PARTNER_NETWORK);
101
					}
102
					else if(!Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
103
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
104
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
105
							&& !Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
106
						campaign.setNetworkType(NetworkSettingType.GOOGLE_PARTNER_SEARCH_NETWORK);
107
					}
108
					else if(Boolean.parseBoolean(campaignDataMap.get("TargetGoogleSearch")) 
109
							&& Boolean.parseBoolean(campaignDataMap.get("TargetSearchNetwork")) 
110
							&& Boolean.parseBoolean(campaignDataMap.get("TargetPartnerSearchNetwork")) 
111
							&& Boolean.parseBoolean(campaignDataMap.get("TargetContentNetwork"))){
112
						campaign.setNetworkType(NetworkSettingType.ALL_AVALIABLE_SOURCES);
113
					}
114
					else{
115
						campaign.setNetworkType(NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK);			
116
					}					
117
 
9262 manish.sha 118
					if(campaignFromDB!=null){
119
						campaign.setId(campaignFromDB.getId());
120
						client.updateAdwordsCampaign(campaign);
121
					}
122
					else{
123
						client.addAdwordsCampaign(campaign);
124
					}
9028 manish.sha 125
 
126
				}
127
			}
128
 
129
 
130
		} catch (TTransportException e) {
9262 manish.sha 131
			System.out.println("Error while Connecting to Adwords Client.."+e.getMessage());
132
			logger.error("Error while Connecting to Adwords Client.."+e.getMessage());
133
		}catch (GoogleAdwordsServiceException e) {
134
			System.out.println("Error while Requesting Proper Data Google Adwords Service.."+e.getMessage());
135
			logger.error("Error while Requesting Proper Data Google Adwords Service.."+e.getMessage());
136
		} catch (TException e) {
137
			System.out.println("Error while Getting Proper Data Google Adwords Service.."+e.getMessage());
138
			logger.error("Error while Getting Proper Data Google Adwords Service.."+e.getMessage());
9028 manish.sha 139
		} catch (Exception e) {
9262 manish.sha 140
			System.out.println("Exception at Google Adwords End.. "+e.getMessage());
141
			logger.error("Exception at Google Adwords End.. "+e.getMessage());
9028 manish.sha 142
		}
143
	}
144
 
145
}