Subversion Repositories SmartDukaan

Rev

Rev 9259 | 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.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());
53
				continue;
9262 manish.sha 54
			}
9028 manish.sha 55
			for(int i=0; i<adgroupDataMainList.size();i++){
56
 
57
				Map<String, String> adgroupDataMap = adgroupDataMainList.get(i);
58
				if(adgroupDataMap!=null){
9259 manish.sha 59
					if("DELETED".equalsIgnoreCase(adgroupDataMap.get("Status"))){
60
						continue;
61
					}
9262 manish.sha 62
					AdwordsAdGroup adgroupDB = null;
63
					try {
64
						adgroupDB = client.getAdwordsAdGroupByAdGroupId(Long.parseLong(adgroupDataMap.get("AdgroupId")));
65
					} catch (NumberFormatException e1) {
66
						System.out.println(e1.getMessage());
67
					} catch (GoogleAdwordsServiceException e1) {
68
						System.out.println("Error while requesting Adgroup Google Adwords Service.."+e1.getMessage());
69
						logger.error("Error while requesting Adgroup Google Adwords Service.."+e1.getMessage());
70
					} catch (TException e1) {
71
						System.out.println("Error while getting Adgroup Google Adwords Service.."+e1.getMessage());
72
						logger.error("Error while getting Adgroup Google Adwords Service.."+e1.getMessage());
73
					}
9028 manish.sha 74
					AdwordsAdGroup adgroup = new AdwordsAdGroup();
75
					System.out.println(adgroupDataMap.get("CampaignId")+" "
76
							+adgroupDataMap.get("Name")+" "
77
							+adgroupDataMap.get("AdgroupId")+ " "
78
							+adgroupDataMap.get("CatalogItemId")+" "+adgroupDataMap.get("BidAmount")+" "
79
							+adgroupDataMap.get("Status"));
80
					adgroup.setCampaignId(Long.parseLong(adgroupDataMap.get("CampaignId")));
81
 
82
					adgroup.setAdgroupId(Long.parseLong(adgroupDataMap.get("AdgroupId")));
83
					adgroup.setCatalogItemId(Long.parseLong(adgroupDataMap.get("CatalogItemId")));
84
					double amount= Double.parseDouble(adgroupDataMap.get("BidAmount"));
85
					amount = amount * Math.pow(10, -6);
86
					adgroup.setBidAmount(amount);
87
					adgroup.setName(adgroupDataMap.get("Name"));
88
					AdwordsAdGroupStatus status;
89
					if("PAUSED".equalsIgnoreCase(adgroupDataMap.get("Status"))){
90
						status= AdwordsAdGroupStatus.PAUSED;
91
					}
92
					else if("ENABLED".equalsIgnoreCase(adgroupDataMap.get("Status"))){
93
						status= AdwordsAdGroupStatus.ENABLED;
94
					}
95
					else{
96
						status= AdwordsAdGroupStatus.DELETED;
97
					}
98
					adgroup.setStatus(status);
9225 manish.sha 99
					adgroup.setStockLinked(0);
9262 manish.sha 100
					if(adgroupDB!=null){
101
						adgroup.setId(adgroupDB.getId());
102
						try {
103
							client.updateAdwordsAdGroup(adgroup);
104
						} catch (GoogleAdwordsServiceException e) {
105
							System.out.println("Error while Requesting Updation AdGroup Google Adwords Service.."+e.getMessage());
106
							logger.error("Error while Requesting Updation AdGroup Google Adwords Service.."+e.getMessage());
107
						} catch (TException e) {
108
							System.out.println("Error while Updating AdGroup Google Adwords Service.."+e.getMessage());
109
							logger.error("Error while Updating AdGroup Google Adwords Service.."+e.getMessage());
110
						}
9028 manish.sha 111
					}
9262 manish.sha 112
					else{
113
						try {
114
							client.addAdwordsAdGroup(adgroup);
115
						} catch (GoogleAdwordsServiceException e) {
116
							System.out.println("Error while Requesting Addition AdGroup Google Adwords Service.."+e.getMessage());
117
							logger.error("Error while Requesting Addition AdGroup Google Adwords Service.."+e.getMessage());
118
						} catch (TException e) {
119
							System.out.println("Error while Adding AdGroup Google Adwords Service.."+e.getMessage());
120
							logger.error("Error while Adding AdGroup Google Adwords Service.."+e.getMessage());
121
						}
122
					}
123
 
9028 manish.sha 124
				}
125
			}
126
		}
127
 
128
		System.out.println("$$$$$$$$$$$$$$$$$$ Error Campaigns List $$$$$$$$$$$$$$$$$$$$$$$$$");
129
		for(Long l : errorCampaigns){
130
			System.out.println(l);
131
		}
132
 
133
	}
134
}