Subversion Repositories SmartDukaan

Rev

Rev 9262 | 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.util.ArrayList;
4
import java.util.List;
5
import java.util.Map;
6
 
7
import org.apache.thrift.TException;
8
import org.apache.thrift.transport.TTransportException;
9262 manish.sha 9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
9028 manish.sha 11
 
12
import adwords.axis.v201309.basicoperations.GetAdGroups;
13
 
14
import in.shop2020.googleadwords.AdwordsAdGroup;
15
import in.shop2020.googleadwords.AdwordsAdGroupStatus;
16
import in.shop2020.googleadwords.AdwordsCampaign;
17
import in.shop2020.googleadwords.GoogleAdwordsService.Client;
18
import in.shop2020.googleadwords.GoogleAdwordsServiceException;
19
import in.shop2020.thrift.clients.AdwordsClient;
9262 manish.sha 20
/*
21
 * Class AdwordsSaholicAdGroupSync - To Sync Adgroups between Google Adwords and our Database.
22
 */
9028 manish.sha 23
public class AdwordsSaholicAdGroupSync{
9262 manish.sha 24
	private static Logger logger = LoggerFactory.getLogger(AdwordsSaholicAdGroupSync.class);
25
 
9028 manish.sha 26
	public static void main(String[] args) {
27
 
28
		AdwordsClient adwordsServiceClient= null;
29
		try {
30
			adwordsServiceClient = new AdwordsClient();
31
		} catch (TTransportException e1) {
32
			e1.printStackTrace();
33
		}
34
		Client client = adwordsServiceClient.getClient();
35
		List<AdwordsCampaign> campaignList =null;
36
		try {
37
			campaignList = client.getAllAdwordsCampaigns();
38
		} catch (GoogleAdwordsServiceException e1) {
9262 manish.sha 39
			System.out.println("Error while requesting All Campaigns Google Adwords Service.."+e1.getMessage());
40
			logger.error("Error while requesting All Campaigns Google Adwords Service.."+e1.getMessage());
9028 manish.sha 41
		} catch (TException e1) {
9262 manish.sha 42
			System.out.println("Error while getting All Campaigns Google Adwords Service.."+e1.getMessage());
43
			logger.error("Error while getting All Campaigns Google Adwords Service.."+e1.getMessage());
9028 manish.sha 44
		}
45
 
46
		List<Long> errorCampaigns = new ArrayList<Long>();
47
		for(AdwordsCampaign campaign: campaignList){
48
			List<Map<String, String>> adgroupDataMainList =null;
49
			try {
50
				adgroupDataMainList = GetAdGroups.runExample(campaign.getCampaignId());
51
			} catch (Exception e) {
52
				System.out.println(e.getMessage());
9317 manish.sha 53
				errorCampaigns.add(campaign.getCampaignId());
9028 manish.sha 54
				continue;
9262 manish.sha 55
			}
9317 manish.sha 56
			if(adgroupDataMainList!=null){
57
				for(int i=0; i<adgroupDataMainList.size();i++){
9028 manish.sha 58
 
9317 manish.sha 59
					Map<String, String> adgroupDataMap = adgroupDataMainList.get(i);
60
					if(adgroupDataMap!=null){
61
						if("DELETED".equalsIgnoreCase(adgroupDataMap.get("Status"))){
62
							continue;
9262 manish.sha 63
						}
9317 manish.sha 64
						AdwordsAdGroup adgroupDB = null;
9262 manish.sha 65
						try {
9317 manish.sha 66
							adgroupDB = client.getAdwordsAdGroupByAdGroupId(Long.parseLong(adgroupDataMap.get("AdgroupId")));
67
						} catch (NumberFormatException e1) {
68
							System.out.println(e1.getMessage());
69
						} catch (GoogleAdwordsServiceException e1) {
70
							System.out.println("Error while requesting Adgroup Google Adwords Service.."+e1.getMessage());
71
							logger.error("Error while requesting Adgroup Google Adwords Service.."+e1.getMessage());
72
						} catch (TException e1) {
73
							System.out.println("Error while getting Adgroup Google Adwords Service.."+e1.getMessage());
74
							logger.error("Error while getting Adgroup Google Adwords Service.."+e1.getMessage());
9262 manish.sha 75
						}
9317 manish.sha 76
						AdwordsAdGroup adgroup = new AdwordsAdGroup();
77
						System.out.println(adgroupDataMap.get("CampaignId")+" "
78
								+adgroupDataMap.get("Name")+" "
79
								+adgroupDataMap.get("AdgroupId")+ " "
80
								+adgroupDataMap.get("CatalogItemId")+" "+adgroupDataMap.get("BidAmount")+" "
81
								+adgroupDataMap.get("Status"));
82
						adgroup.setCampaignId(Long.parseLong(adgroupDataMap.get("CampaignId")));
83
 
84
						adgroup.setAdgroupId(Long.parseLong(adgroupDataMap.get("AdgroupId")));
85
						adgroup.setCatalogItemId(Long.parseLong(adgroupDataMap.get("CatalogItemId")));
86
						double amount= Double.parseDouble(adgroupDataMap.get("BidAmount"));
87
						amount = amount * Math.pow(10, -6);
88
						adgroup.setBidAmount(amount);
89
						adgroup.setName(adgroupDataMap.get("Name"));
90
						AdwordsAdGroupStatus status;
91
						if("PAUSED".equalsIgnoreCase(adgroupDataMap.get("Status"))){
92
							status= AdwordsAdGroupStatus.PAUSED;
93
						}
94
						else if("ENABLED".equalsIgnoreCase(adgroupDataMap.get("Status"))){
95
							status= AdwordsAdGroupStatus.ENABLED;
96
						}
97
						else{
98
							status= AdwordsAdGroupStatus.DELETED;
99
						}
100
						adgroup.setStatus(status);
101
						adgroup.setStockLinked(0);
102
						if(adgroupDB.getAdgroupId()>0l){
103
							adgroup.setId(adgroupDB.getId());
104
							try {
105
								client.updateAdwordsAdGroup(adgroup);
106
							} catch (GoogleAdwordsServiceException e) {
107
								System.out.println("Error while Requesting Updation AdGroup Google Adwords Service.."+e.getMessage());
108
								logger.error("Error while Requesting Updation AdGroup Google Adwords Service.."+e.getMessage());
109
							} catch (TException e) {
110
								System.out.println("Error while Updating AdGroup Google Adwords Service.."+e.getMessage());
111
								logger.error("Error while Updating AdGroup Google Adwords Service.."+e.getMessage());
112
							}
113
						}
114
						else{
115
							try {
116
								client.addAdwordsAdGroup(adgroup);
117
							} catch (GoogleAdwordsServiceException e) {
118
								System.out.println("Error while Requesting Addition AdGroup Google Adwords Service.."+e.getMessage());
119
								logger.error("Error while Requesting Addition AdGroup Google Adwords Service.."+e.getMessage());
120
							} catch (TException e) {
121
								System.out.println("Error while Adding AdGroup Google Adwords Service.."+e.getMessage());
122
								logger.error("Error while Adding AdGroup Google Adwords Service.."+e.getMessage());
123
							}
124
						}
125
 
9262 manish.sha 126
					}
9028 manish.sha 127
				}
128
			}
129
		}
130
 
131
		System.out.println("$$$$$$$$$$$$$$$$$$ Error Campaigns List $$$$$$$$$$$$$$$$$$$$$$$$$");
132
		for(Long l : errorCampaigns){
133
			System.out.println(l);
134
		}
135
 
136
	}
137
}