Subversion Repositories SmartDukaan

Rev

Rev 9230 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
9067 manish.sha 1
package in.shop2020.support.controllers;
2
 
3
import java.text.ParseException;
4
import java.text.SimpleDateFormat;
5
import java.util.ArrayList;
6
import java.util.Collection;
7
import java.util.Date;
8
import java.util.HashMap;
9
import java.util.List;
10
import java.util.Map;
11
 
12
import in.shop2020.googleadwords.AdwordsAdGroup;
13
import in.shop2020.googleadwords.AdwordsAdGroupAd;
14
import in.shop2020.googleadwords.AdwordsAdGroupStatus;
15
import in.shop2020.googleadwords.AdwordsAdKeyword;
16
import in.shop2020.googleadwords.AdwordsCampaign;
17
import in.shop2020.googleadwords.AdwordsCampaignStatus;
18
import in.shop2020.googleadwords.GoogleAdwordsService.Client;
19
import in.shop2020.googleadwords.GoogleAdwordsServiceException;
20
import in.shop2020.googleadwords.KeywordMatchType;
21
import in.shop2020.googleadwords.NetworkSettingType;
22
import in.shop2020.support.utils.ReportsUtils;
23
import in.shop2020.thrift.clients.AdwordsClient;
24
 
25
import javax.servlet.ServletContext;
26
import javax.servlet.http.HttpServletRequest;
27
import javax.servlet.http.HttpSession;
28
 
29
import org.apache.struts2.convention.annotation.InterceptorRef;
30
import org.apache.struts2.convention.annotation.InterceptorRefs;
31
import org.apache.struts2.convention.annotation.Result;
32
import org.apache.struts2.convention.annotation.Results;
33
import org.apache.struts2.interceptor.ServletRequestAware;
34
import org.apache.struts2.util.ServletContextAware;
35
import org.apache.thrift.TException;
36
import org.apache.thrift.transport.TTransportException;
37
import org.json.JSONObject;
38
import org.slf4j.Logger;
39
import org.slf4j.LoggerFactory;
40
 
41
import adwords.axis.v201309.basicoperations.AddAdGroups;
42
import adwords.axis.v201309.basicoperations.AddCampaigns;
43
import adwords.axis.v201309.basicoperations.AddKeywords;
44
import adwords.axis.v201309.basicoperations.AddTextAds;
45
 
46
import com.opensymphony.xwork2.ActionSupport;
47
 
48
@InterceptorRefs({
49
    @InterceptorRef("defaultStack"),
50
    @InterceptorRef("login")
51
})
52
 
53
@Results({
54
    @Result(name="authfail", type="redirectAction", params = {"actionName" , "reports"}),
55
	@Result(name="redirect", type="redirectAction", location = "google-adwords",  params={"statusCode", "301"})
56
})
57
public class GoogleAdwordsController extends ActionSupport implements ServletRequestAware {
58
	/**
59
	 * 
60
	 */
61
	private static Logger logger = LoggerFactory.getLogger(GoogleAdwordsController.class);
62
	private static final long serialVersionUID = 5703456181320066690L;
63
	private HttpServletRequest request;
64
	private HttpSession session;
65
	private ServletContext context;
66
 
67
	private String errorMsg = "";
68
	private String successmsg = "";
69
	private String campaignId = "";
70
	private JSONObject jsonData = null;
71
 
72
	private AdwordsCampaignStatus campStatus;
73
	private AdwordsAdGroupStatus adgrpStatus;
74
	private KeywordMatchType keywordMatchType1;
75
	private KeywordMatchType keywordMatchType2;
76
	private KeywordMatchType keywordMatchType3;
77
	private KeywordMatchType keywordMatchType4;
78
	private KeywordMatchType keywordMatchType5;
79
 
80
	private NetworkSettingType networkSettingType;
81
 
82
	private boolean googlesearchNetwork = false;
83
	private boolean displaynetwork = false;
84
	private boolean partnersearchNetwork = false;
85
	private int stocklinked = 0;
86
 
87
	private String adwordOpRadio;
88
	private String adwordAddRadio;
89
	private String campaignName;
90
	private String campaignStatus;
91
	private String startDate;
92
	private String endDate;
93
	private String campaignAmount;
94
	private String googleSearchNetwork;
95
	private String displayNetwork;
96
	private String partnerSearchNetwork;
97
	private String campaignList1;
98
	private String adgroupName;
99
	private String adgroupStatus;
100
	private String catalogItemId;
101
	private String bidAmount;
102
	private String stockLinked;
103
	private String campaignList2;
104
	private String adgroupList1;
105
	private String headline;
106
	private String description1;
107
	private String description2;
108
	private String url;
109
	private String displayUrl;
110
	private String campaignList3;
111
	private String adgroupList2;
112
	private String keyword1;
113
	private String keyword2;
114
	private String keyword3;
115
	private String keyword4;
116
	private String keyword5;
117
	private String bid1;
118
	private String bid2;
119
	private String bid3;
120
	private String bid4;
121
	private String bid5;
122
	private String matchType1;
123
	private String matchType2;
124
	private String matchType3;
125
	private String matchType4;
126
	private String matchType5;
127
 
128
 
129
	public String index() {
130
		if(!ReportsUtils.canAccessReport((Long)session.getAttribute(ReportsUtils.ROLE), request.getServletPath()))
131
			return "authfail";
132
		checkForErrors();
133
		return "index";
134
	}
135
 
136
	public String create(){
137
		if(adwordOpRadio!=null && ("addOpRadio").equalsIgnoreCase(adwordOpRadio)){
138
			if(adwordAddRadio!=null && ("campaignRdo").equalsIgnoreCase(adwordAddRadio)){
139
				processCampaignStatus();
140
				SimpleDateFormat timestmapFormatForGoogle = new SimpleDateFormat("yyyyMMdd");
141
				String startdateStr = timestmapFormatForGoogle.format(new Date().getTime());
142
				String enddateStr = "20371230";
143
				if(startDate!=null && !startDate.isEmpty()){
144
					startdateStr = processedStartEndDate(startDate, timestmapFormatForGoogle);
145
				}
146
				if(endDate!=null && !endDate.isEmpty()){
147
					 enddateStr = processedStartEndDate(endDate, timestmapFormatForGoogle);
148
				}
149
				processNetworkSetting();
150
				Long budgetAmount = new Long(Long.parseLong(campaignAmount));
151
				boolean addCampaignResult = addAdwordsCampaign(campaignName, startdateStr, enddateStr, (long)(budgetAmount * Math.pow(10, 6)), campStatus.toString(), googlesearchNetwork, displaynetwork, partnersearchNetwork, networkSettingType);
152
				if(addCampaignResult){
153
					successmsg = "Adwords Campaign Added Successfully";
154
				}
155
			}
156
			if(adwordAddRadio!=null && ("adgroupRdo").equalsIgnoreCase(adwordAddRadio)){
157
				processAdGroupStatus();
158
				if(catalogItemId==null || ("").equalsIgnoreCase(catalogItemId)){
159
					catalogItemId="0";
160
				}
161
				processStockLinked();
162
				boolean addAdGroupResult = addAdwordsAdGroup(Long.parseLong(campaignList1), adgroupName, adgrpStatus.toString(), (long)(Double.parseDouble(bidAmount) * Math.pow(10, 6)), Long.parseLong(catalogItemId));
163
				if(addAdGroupResult){
164
					successmsg = "Adwords AdGroup Added Successfully";
165
				}
166
			}
167
			if(adwordAddRadio!=null && ("textAdRdo").equalsIgnoreCase(adwordAddRadio)){
168
				boolean addAdgroupAdResult = addAdwordsAdGroupAd();
169
				if(addAdgroupAdResult){
170
					successmsg = "Adwords AdGroup Text Ad Added Successfully";
171
				}
172
			}
173
			if(adwordAddRadio!=null && ("keywordRdo").equalsIgnoreCase(adwordAddRadio)){
174
				AdwordsAdGroup adgroup = getAdwordsAdgroup(Long.parseLong(adgroupList2));
175
				List<Map<String, String>> keywordDataList = new ArrayList<Map<String, String>>();
176
				if(keyword1 != null && !keyword1.isEmpty()){
177
					keywordMatchType1 = processAdKeywordMatchType(matchType1);
178
					if(bid1!=null && !bid1.isEmpty()){
179
						keywordDataList.add(getKeywordMap(keyword1,bid1,keywordMatchType1.toString()));
180
					}
181
					else{
182
						keywordDataList.add(getKeywordMap(keyword1,adgroup.getBidAmount()+"",keywordMatchType1.toString()));
183
					}
184
				}
185
				if(keyword2 != null && !keyword2.isEmpty()){
186
					keywordMatchType2 = processAdKeywordMatchType(matchType2);
187
					if(bid2!=null && !bid2.isEmpty()){
188
						keywordDataList.add(getKeywordMap(keyword2,bid2,keywordMatchType2.toString()));
189
					}
190
					else{
191
						keywordDataList.add(getKeywordMap(keyword2,adgroup.getBidAmount()+"",keywordMatchType2.toString()));
192
					}
193
				}
194
				if(keyword3 != null && !keyword3.isEmpty()){
195
					keywordMatchType3 = processAdKeywordMatchType(matchType3);
196
					if(bid3!=null && !bid3.isEmpty()){
197
						keywordDataList.add(getKeywordMap(keyword3,bid3,keywordMatchType3.toString()));
198
					}
199
					else{
200
						keywordDataList.add(getKeywordMap(keyword3,adgroup.getBidAmount()+"",keywordMatchType3.toString()));
201
					}
202
				}
203
				if(keyword4 != null && !keyword4.isEmpty()){
204
					keywordMatchType4 = processAdKeywordMatchType(matchType4);
205
					if(bid4!=null && !bid4.isEmpty()){
206
						keywordDataList.add(getKeywordMap(keyword4,bid4,keywordMatchType4.toString()));
207
					}
208
					else{
209
						keywordDataList.add(getKeywordMap(keyword4,adgroup.getBidAmount()+"",keywordMatchType4.toString()));
210
					}
211
				}
212
				if(keyword5 != null && !keyword5.isEmpty()){
213
					keywordMatchType5 = processAdKeywordMatchType(matchType5);
214
					if(bid5!=null && !bid5.isEmpty()){
215
						keywordDataList.add(getKeywordMap(keyword5,bid5,keywordMatchType5.toString()));
216
					}
217
					else{
218
						keywordDataList.add(getKeywordMap(keyword5,adgroup.getBidAmount()+"",keywordMatchType5.toString()));
219
					}
220
				}
221
				boolean addAdKeywordResult = addAdwordsAdKeyword(keywordDataList);
222
				if(addAdKeywordResult){
223
					successmsg = "Adwords AdGroup Ad Keyword Added Successfully";
224
				}
225
			}
226
		}
227
 
228
		return index();
229
	}
230
 
231
	public KeywordMatchType processAdKeywordMatchType(String value){
232
		return KeywordMatchType.findByValue(Integer.parseInt(value));
233
	}
234
 
235
	public AdwordsAdGroup getAdwordsAdgroup(long adgroupId){
236
		AdwordsAdGroup adgroup = new AdwordsAdGroup();
237
		try {
238
			adgroup = new AdwordsClient().getClient().getAdwordsAdGroupByAdGroupId(adgroupId);
239
		} catch (TTransportException e) {
240
			// TODO Auto-generated catch block
241
			e.printStackTrace();
242
		} catch (GoogleAdwordsServiceException e) {
243
			// TODO Auto-generated catch block
244
			e.printStackTrace();
245
		} catch (TException e) {
246
			// TODO Auto-generated catch block
247
			e.printStackTrace();
248
		}
249
		return adgroup;
250
	}
251
 
252
	public Map<String, String> getKeywordMap(String keyword, String bid, String type){
253
		Map<String, String> keywordMap = new HashMap<String, String>();
254
		keywordMap.put("Text", keyword1);
255
		keywordMap.put("Type", type);
256
		double bidamount = Double.parseDouble(bid);
257
		bidamount = bidamount * Math.pow(10, 6);
258
		keywordMap.put("BidAmount", bidamount+"");
259
		return keywordMap;
260
	}
261
	public void processAdGroupStatus(){
262
		if(adgroupStatus!=null){
263
			if("1".equalsIgnoreCase(adgroupStatus)){
264
				adgrpStatus = AdwordsAdGroupStatus.ENABLED;
265
			}
266
			else if("2".equalsIgnoreCase(campaignStatus)){
267
				adgrpStatus = AdwordsAdGroupStatus.PAUSED;
268
			}
269
			else{
270
				campStatus = AdwordsCampaignStatus.DELETED;
271
			}
272
		}
273
	}
274
 
275
	public String processedStartEndDate(String dateString, SimpleDateFormat dateformat){
276
		SimpleDateFormat timestmapFormatRequest = new SimpleDateFormat("mm/dd/yyyy");
277
		String dateStr = "";
278
		try {
279
			Date date = timestmapFormatRequest.parse(dateString);
280
			dateStr = dateformat.format(date.getTime());
281
		} catch (ParseException e) {
282
			e.printStackTrace();
283
		}
284
		return dateStr;
285
	}
286
	public void processCampaignStatus(){
287
		if(campaignStatus!=null){
288
			if("1".equalsIgnoreCase(campaignStatus)){
289
				campStatus = AdwordsCampaignStatus.ACTIVE;
290
			}
291
			else if("2".equalsIgnoreCase(campaignStatus)){
292
				campStatus = AdwordsCampaignStatus.PAUSED;
293
			}
294
			else{
295
				campStatus = AdwordsCampaignStatus.DELETED;
296
			}
297
		}
298
	}
299
 
300
	public void processStockLinked(){
301
		if(stockLinked!=null && ("on").equalsIgnoreCase(stockLinked)){
302
			stocklinked = 1;
303
		}
304
	}
305
	public void processNetworkSetting(){
306
		if(googleSearchNetwork!=null && ("on").equalsIgnoreCase(googleSearchNetwork)){
307
			googlesearchNetwork = true;
308
		}
309
		if(displayNetwork!=null && ("on").equalsIgnoreCase(displayNetwork)){
310
			displaynetwork = true;
311
		}
312
		if(partnerSearchNetwork!=null && ("on").equalsIgnoreCase(partnerSearchNetwork)){
313
			partnersearchNetwork = true;
314
		}
315
 
316
		if(googlesearchNetwork && !displaynetwork && !partnersearchNetwork){
317
			networkSettingType = NetworkSettingType.GOOGLE_SEARCH_AND_SEARCH_NETWORK;
318
		}
319
		else if(googlesearchNetwork && displaynetwork && !partnersearchNetwork){
320
			networkSettingType = NetworkSettingType.SEARCH_AND_DISPLAY_NETWORK;
321
		}
322
		else if(googlesearchNetwork && !displaynetwork && partnersearchNetwork){
323
			networkSettingType = NetworkSettingType.SEARCH_AND_PARTNER_NETWORK;
324
		}
325
		else if(!googlesearchNetwork && displaynetwork && !partnersearchNetwork){
326
			networkSettingType = NetworkSettingType.DISPLAY_NETWORK;
327
		}
328
		else if(!googlesearchNetwork && displaynetwork && partnersearchNetwork){
329
			networkSettingType = NetworkSettingType.DISPLAY_AND_PARTNER_NETWORK;
330
		}
331
		else if(!googlesearchNetwork && !displaynetwork && partnersearchNetwork){
332
			networkSettingType = NetworkSettingType.GOOGLE_PARTNER_SEARCH_NETWORK;
333
		}
334
		else if(googlesearchNetwork && displaynetwork && partnersearchNetwork){
335
			networkSettingType = NetworkSettingType.ALL_AVALIABLE_SOURCES;
336
		}
337
 
338
	}
339
 
340
	public boolean addAdwordsCampaign(String name, String startDateStr, String endDateStr, 
341
			Long amount, String status, boolean googlesrchNtwrk, boolean displayntwrk, 
342
			boolean partnersrchNtwrk, NetworkSettingType networkType){
343
		Long campaignId = 0L;
344
		boolean retry = true;
345
		int attempt =0;
346
		while(retry && attempt<2){
347
			try{
348
				attempt = attempt+1;
349
				campaignId = AddCampaigns.runExample(name, status, startDateStr, endDateStr, amount, googlesrchNtwrk, displayntwrk, partnersrchNtwrk);
350
				retry = false;
351
				System.out.println("@@@@@ CampaignId...... "+campaignId);
352
			}
353
			catch (Exception e) {
354
				retry = true;
355
				logger.error("Error while requesting Google Adwords Campaign Service", e);
356
			}
357
		}
358
		if(campaignId==0L){
359
			addActionError("Error while processing Add Request for Google Campaign Service");
360
			return false;
361
		}
362
		try{
363
			SimpleDateFormat timestmapFormatForGoogle = new SimpleDateFormat("yyyymmdd");
364
			AdwordsCampaign campaign = new AdwordsCampaign();
365
			campaign.setCampaignId(campaignId);
366
			campaign.setName(name);
367
			campaign.setBudgetAmount(amount * Math.pow(10, -6));
368
			campaign.setNetworkType(networkType);
369
			campaign.setStartDate(timestmapFormatForGoogle.parse(startDateStr).getTime());
370
			campaign.setEndDate(timestmapFormatForGoogle.parse(endDateStr).getTime());
371
			campaign.setStatus(campStatus);
372
			new AdwordsClient().getClient().addAdwordsCampaign(campaign);
373
			return true;
374
		}
375
		catch(ParseException pe){
376
			addActionError("Unable to parse proper Data");
377
			logger.error("Error while parsing proper Data", pe);
378
		} catch (TTransportException e) {
379
			addActionError("Unable to get Connection with Saholic Google Adowrds Services");
380
			logger.error("Error while getting Connection with Saholic Google Adowrds Services", e);
381
		} catch (GoogleAdwordsServiceException e) {
382
			addActionError("Unable to perform operations with Saholic Google Adowrds Services");
383
			logger.error("Error while performing operations with Saholic Google Adowrds Services", e);
384
		} catch (TException e) {
385
			addActionError("Unable to perform operations with Saholic Google Adowrds Services Client");
386
			logger.error("Error while performing operations with Saholic Google Adowrds Services Client", e);
387
		}
388
 
389
		return false;
390
	}
391
 
392
	public boolean addAdwordsAdGroup(long campaignId, String name, String status, Long bidAmount, long catalogId){
393
		Long adGroupId = 0L;
394
		boolean retry = true;
395
		int attempt =0;
396
		while(retry && attempt < 2){
397
			try{
398
				attempt =attempt +1;
399
				adGroupId = AddAdGroups.runExample(campaignId, name, status, bidAmount);
400
				retry = false;
401
			}
402
			catch (Exception e) {
403
				retry = true;
404
				logger.error("Error while requesting Google Adwords AdGroup Service", e);
405
			}
406
		}
407
		if(adGroupId == 0L){
408
			addActionError("Error while processing Add Request for Google AdGroup Service");
409
			return false;
410
		}
411
		try{
412
			AdwordsAdGroup adgroup = new AdwordsAdGroup();
413
			adgroup.setAdgroupId(adGroupId);
414
			adgroup.setCampaignId(campaignId);
415
			adgroup.setCatalogItemId(catalogId);
416
			adgroup.setStatus(adgrpStatus);
417
			adgroup.setName(name);
418
			adgroup.setBidAmount(bidAmount * Math.pow(10, -6));
419
			adgroup.setStockLinked(stocklinked);
420
			new AdwordsClient().getClient().addAdwordsAdGroup(adgroup);
421
			return true;
422
		}
423
		catch (TTransportException e) {
424
			addActionError("Unable to get Connection with Saholic Google Adowrds Services");
425
			logger.error("Error while getting Connection with Saholic Google Adowrds Services", e);
426
		} catch (GoogleAdwordsServiceException e) {
427
			addActionError("Unable to perform operations with Saholic Google Adowrds Services");
428
			logger.error("Error while performing operations with Saholic Google Adowrds Services", e);
429
		} catch (TException e) {
430
			addActionError("Unable to perform operations with Saholic Google Adowrds Services Client");
431
			logger.error("Error while performing operations with Saholic Google Adowrds Services Client", e);
432
		}
433
		return false;
434
	}
435
 
436
	public boolean addAdwordsAdGroupAd(){
437
		Long adGroupAdId = 0L;
438
		int attempt =0;
439
		boolean retry = true;
440
		while(retry && attempt<2){
441
			try{
442
				attempt = attempt+1;
443
				adGroupAdId = AddTextAds.runExample(Long.parseLong(adgroupList1), headline, description1, description2, url, displayUrl);
444
				retry = false;
445
			}
446
			catch (Exception e) {
447
				retry = true;
448
				logger.error("Error while requesting Google Adwords AdGroupAd Service", e);
449
			}
450
		}
451
		if(adGroupAdId == 0L){
452
			addActionError("Error while processing Add Request for Google AdGroupAd Service");
453
			return false;
454
		}
455
		try{
456
			AdwordsAdGroupAd adgroupad = new AdwordsAdGroupAd();
457
			adgroupad.setAdgroupadId(adGroupAdId);
458
			adgroupad.setCampaignId(Long.parseLong(campaignList2));
459
			adgroupad.setAdgroupId(Long.parseLong(adgroupList1));
460
			adgroupad.setDescription1(description1);
461
			adgroupad.setDescription2(description2);
462
			adgroupad.setHeadline(headline);
463
			adgroupad.setDisplayUrl(displayUrl);
464
			adgroupad.setUrl(url);
465
			new AdwordsClient().getClient().addAdwordsAdGroupAd(adgroupad);
466
			return true;
467
		}
468
		catch (TTransportException e) {
469
			addActionError("Unable to get Connection with Saholic Google Adowrds Services");
470
			logger.error("Error while getting Connection with Saholic Google Adowrds Services", e);
471
		} catch (GoogleAdwordsServiceException e) {
472
			addActionError("Unable to perform operations with Saholic Google Adowrds Services");
473
			logger.error("Error while performing operations with Saholic Google Adowrds Services", e);
474
		} catch (TException e) {
475
			addActionError("Unable to perform operations with Saholic Google Adowrds Services Client");
476
			logger.error("Error while performing operations with Saholic Google Adowrds Services Client", e);
477
		}
478
 
479
		return false;
480
	}
481
 
482
	public boolean addAdwordsAdKeyword(List<Map<String,String>> keywordDataList){
483
		List<Map<String,String>> adgroupDataList = new ArrayList<Map<String,String>>();
484
		int attempt =0;
485
		boolean retry = true;
486
		while(retry && attempt<2){
487
			try{
488
				attempt = attempt+1;
489
				adgroupDataList = AddKeywords.runExample(Long.parseLong(adgroupList2), keywordDataList);
490
				retry = false;
491
			}
492
			catch (Exception e) {
493
				retry = true;
494
				logger.error("Error while requesting Google Adwords AdGroup Criterion Service", e);
495
			}
496
		}
497
		if(adgroupDataList!=null && adgroupDataList.size()>0){
498
			try{
499
				AdwordsClient adwordsServiceClient = new AdwordsClient();
500
				Client client = adwordsServiceClient.getClient();
501
				for(Map<String,String> keywordMap : adgroupDataList){
502
					AdwordsAdKeyword adkeyword = new AdwordsAdKeyword();
503
					adkeyword.setAdgroupId(Long.parseLong(adgroupList2));
504
					adkeyword.setCampaignId(Long.parseLong(campaignList3));
505
					adkeyword.setCriterionId(Long.parseLong(keywordMap.get("CriterionId")));
506
					adkeyword.setText(keywordMap.get("Text"));
507
					adkeyword.setMatchType(KeywordMatchType.valueOf(keywordMap.get("Type")));
508
					adkeyword.setBidAmount( (Double.parseDouble(keywordMap.get("BidAmount"))) * (Math.pow(10, -6) ));
509
					client.addAdwordsAdKeyword(adkeyword);
510
				}
511
				return true;
512
			}
513
			catch (TTransportException e) {
514
				addActionError("Unable to get Connection with Saholic Google Adowrds Services");
515
				logger.error("Error while getting Connection with Saholic Google Adowrds Services", e);
516
			} catch (GoogleAdwordsServiceException e) {
517
				addActionError("Unable to perform operations with Saholic Google Adowrds Services");
518
				logger.error("Error while performing operations with Saholic Google Adowrds Services", e);
519
			} catch (TException e) {
520
				addActionError("Unable to perform operations with Saholic Google Adowrds Services Client");
521
				logger.error("Error while performing operations with Saholic Google Adowrds Services Client", e);
522
			}
523
		}
524
		return false;
525
	}
526
 
527
	@Override
528
	public void setServletRequest(HttpServletRequest request) {
529
		this.request = request;
530
		this.session = request.getSession();
531
	}
532
 
533
	public String getCampaignId() {
534
		return campaignId;
535
	}
536
 
537
	public void setCampaignId(String campaignId) {
538
		this.campaignId = campaignId;
539
	}
540
 
541
	public String getErrorMsg(){
542
		return this.errorMsg;
543
	}
544
 
545
	public String getSuccessMessage(){
546
		return this.successmsg ;
547
	}
548
 
549
	public JSONObject getJsonData() {
550
		return jsonData;
551
	}
552
 
553
	public void setJsonData(JSONObject jsonData) {
554
		this.jsonData = jsonData;
555
	}
556
 
557
	public String getAdgroupList(){
558
		List<Map<String,String>> adgroupDataList = new ArrayList<Map<String,String>>();
559
		Map<String, List<Map<String,String>>> mainMap = new HashMap<String, List<Map<String,String>>>();
560
		List<AdwordsAdGroup> adgroupList =null;
561
		try {
562
			adgroupList = new AdwordsClient().getClient().getAdwordsAdGroupsByCampaignId(Long.parseLong(campaignId));
563
		} catch (TTransportException e) {
564
			e.printStackTrace();
565
		} catch (GoogleAdwordsServiceException e) {
566
			e.printStackTrace();
567
		} catch (TException e) {
568
			e.printStackTrace();
569
		}
570
		for(int i=0 ; i<adgroupList.size() ; i++){
571
			AdwordsAdGroup adgroup = adgroupList.get(i);
572
			Map<String,String> adgroupDataMap = new HashMap<String,String>();
573
			adgroupDataMap.put("AdgroupId",adgroup.getAdgroupId()+"");
574
			adgroupDataMap.put("Name", adgroup.getName());
575
			adgroupDataList.add(adgroupDataMap);
576
		}
577
		mainMap.put("AdGroupData", adgroupDataList);
578
		jsonData = new JSONObject(mainMap);
579
		return "output";
580
	}
581
 
582
	public List<AdwordsCampaign> getCampaigns(){
583
		List<AdwordsCampaign> campaignList =null;
584
		try {
585
			campaignList = new AdwordsClient().getClient().getAllAdwordsCampaigns();
586
		} catch (TTransportException e) {
587
			e.printStackTrace();
588
		} catch (GoogleAdwordsServiceException e) {
589
			e.printStackTrace();
590
		} catch (TException e) {
591
			e.printStackTrace();
592
		}
593
		return campaignList;
594
	}
595
 
596
	private boolean checkForErrors(){
597
		Collection<String> actionErrors = getActionErrors();
598
		if(actionErrors != null && !actionErrors.isEmpty()){
599
			for (String str : actionErrors) {
600
				errorMsg += "<BR/>" + str;
601
			}
602
			return true;
603
		}
604
		return false;
605
	}
606
 
607
	public String getAdwordOpRadio() {
608
		return adwordOpRadio;
609
	}
610
 
611
	public void setAdwordOpRadio(String adwordOpRadio) {
612
		this.adwordOpRadio = adwordOpRadio;
613
	}
614
 
615
	public String getAdwordAddRadio() {
616
		return adwordAddRadio;
617
	}
618
 
619
	public void setAdwordAddRadio(String adwordAddRadio) {
620
		this.adwordAddRadio = adwordAddRadio;
621
	}
622
 
623
	public String getCampaignName() {
624
		return campaignName;
625
	}
626
 
627
	public void setCampaignName(String campaignName) {
628
		this.campaignName = campaignName;
629
	}
630
 
631
	public String getCampaignStatus() {
632
		return campaignStatus;
633
	}
634
 
635
	public void setCampaignStatus(String campaignStatus) {
636
		this.campaignStatus = campaignStatus;
637
	}
638
 
639
	public String getStartDate() {
640
		return startDate;
641
	}
642
 
643
	public void setStartDate(String startDate) {
644
		this.startDate = startDate;
645
	}
646
 
647
	public String getEndDate() {
648
		return endDate;
649
	}
650
 
651
	public void setEndDate(String endDate) {
652
		this.endDate = endDate;
653
	}
654
 
655
	public String getCampaignAmount() {
656
		return campaignAmount;
657
	}
658
 
659
	public void setCampaignAmount(String campaignAmount) {
660
		this.campaignAmount = campaignAmount;
661
	}
662
 
663
	public String getGoogleSearchNetwork() {
664
		return googleSearchNetwork;
665
	}
666
 
667
	public void setGoogleSearchNetwork(String googleSearchNetwork) {
668
		this.googleSearchNetwork = googleSearchNetwork;
669
	}
670
 
671
	public String getDisplayNetwork() {
672
		return displayNetwork;
673
	}
674
 
675
	public void setDisplayNetwork(String displayNetwork) {
676
		this.displayNetwork = displayNetwork;
677
	}
678
 
679
	public String getPartnerSearchNetwork() {
680
		return partnerSearchNetwork;
681
	}
682
 
683
	public void setPartnerSearchNetwork(String partnerSearchNetwork) {
684
		this.partnerSearchNetwork = partnerSearchNetwork;
685
	}
686
 
687
	public String getCampaignList1() {
688
		return campaignList1;
689
	}
690
 
691
	public void setCampaignList1(String campaignList1) {
692
		this.campaignList1 = campaignList1;
693
	}
694
 
695
	public String getAdgroupName() {
696
		return adgroupName;
697
	}
698
 
699
	public void setAdgroupName(String adgroupName) {
700
		this.adgroupName = adgroupName;
701
	}
702
 
703
	public String getAdgroupStatus() {
704
		return adgroupStatus;
705
	}
706
 
707
	public void setAdgroupStatus(String adgroupStatus) {
708
		this.adgroupStatus = adgroupStatus;
709
	}
710
 
711
	public String getCatalogItemId() {
712
		return catalogItemId;
713
	}
714
 
715
	public void setCatalogItemId(String catalogItemId) {
716
		this.catalogItemId = catalogItemId;
717
	}
718
 
719
	public String getBidAmount() {
720
		return bidAmount;
721
	}
722
 
723
	public void setBidAmount(String bidAmount) {
724
		this.bidAmount = bidAmount;
725
	}
726
 
727
	public String getCampaignList2() {
728
		return campaignList2;
729
	}
730
 
731
	public void setCampaignList2(String campaignList2) {
732
		this.campaignList2 = campaignList2;
733
	}
734
 
735
	public String getAdgroupList1() {
736
		return adgroupList1;
737
	}
738
 
739
	public void setAdgroupList1(String adgroupList1) {
740
		this.adgroupList1 = adgroupList1;
741
	}
742
 
743
	public String getHeadline() {
744
		return headline;
745
	}
746
 
747
	public void setHeadline(String headline) {
748
		this.headline = headline;
749
	}
750
 
751
	public String getDescription1() {
752
		return description1;
753
	}
754
 
755
	public void setDescription1(String description1) {
756
		this.description1 = description1;
757
	}
758
 
759
	public String getDescription2() {
760
		return description2;
761
	}
762
 
763
	public void setDescription2(String description2) {
764
		this.description2 = description2;
765
	}
766
 
767
	public String getUrl() {
768
		return url;
769
	}
770
 
771
	public void setUrl(String url) {
772
		this.url = url;
773
	}
774
 
775
	public String getDisplayUrl() {
776
		return displayUrl;
777
	}
778
 
779
	public void setDisplayUrl(String displayUrl) {
780
		this.displayUrl = displayUrl;
781
	}
782
 
783
	public String getCampaignList3() {
784
		return campaignList3;
785
	}
786
 
787
	public void setCampaignList3(String campaignList3) {
788
		this.campaignList3 = campaignList3;
789
	}
790
 
791
	public String getAdgroupList2() {
792
		return adgroupList2;
793
	}
794
 
795
	public void setAdgroupList2(String adgroupList2) {
796
		this.adgroupList2 = adgroupList2;
797
	}
798
 
799
	public String getKeyword1() {
800
		return keyword1;
801
	}
802
 
803
	public void setKeyword1(String keyword1) {
804
		this.keyword1 = keyword1;
805
	}
806
 
807
	public String getKeyword2() {
808
		return keyword2;
809
	}
810
 
811
	public void setKeyword2(String keyword2) {
812
		this.keyword2 = keyword2;
813
	}
814
 
815
	public String getKeyword3() {
816
		return keyword3;
817
	}
818
 
819
	public void setKeyword3(String keyword3) {
820
		this.keyword3 = keyword3;
821
	}
822
 
823
	public String getKeyword4() {
824
		return keyword4;
825
	}
826
 
827
	public void setKeyword4(String keyword4) {
828
		this.keyword4 = keyword4;
829
	}
830
 
831
	public String getKeyword5() {
832
		return keyword5;
833
	}
834
 
835
	public void setKeyword5(String keyword5) {
836
		this.keyword5 = keyword5;
837
	}
838
 
839
	public String getBid1() {
840
		return bid1;
841
	}
842
 
843
	public void setBid1(String bid1) {
844
		this.bid1 = bid1;
845
	}
846
 
847
	public String getBid2() {
848
		return bid2;
849
	}
850
 
851
	public void setBid2(String bid2) {
852
		this.bid2 = bid2;
853
	}
854
 
855
	public String getBid3() {
856
		return bid3;
857
	}
858
 
859
	public void setBid3(String bid3) {
860
		this.bid3 = bid3;
861
	}
862
 
863
	public String getBid4() {
864
		return bid4;
865
	}
866
 
867
	public void setBid4(String bid4) {
868
		this.bid4 = bid4;
869
	}
870
 
871
	public String getBid5() {
872
		return bid5;
873
	}
874
 
875
	public void setBid5(String bid5) {
876
		this.bid5 = bid5;
877
	}
878
 
879
	public String getMatchType1() {
880
		return matchType1;
881
	}
882
 
883
	public void setMatchType1(String matchType1) {
884
		this.matchType1 = matchType1;
885
	}
886
 
887
	public String getMatchType2() {
888
		return matchType2;
889
	}
890
 
891
	public void setMatchType2(String matchType2) {
892
		this.matchType2 = matchType2;
893
	}
894
 
895
	public String getMatchType3() {
896
		return matchType3;
897
	}
898
 
899
	public void setMatchType3(String matchType3) {
900
		this.matchType3 = matchType3;
901
	}
902
 
903
	public String getMatchType4() {
904
		return matchType4;
905
	}
906
 
907
	public void setMatchType4(String matchType4) {
908
		this.matchType4 = matchType4;
909
	}
910
 
911
	public String getMatchType5() {
912
		return matchType5;
913
	}
914
 
915
	public void setMatchType5(String matchType5) {
916
		this.matchType5 = matchType5;
917
	}
918
 
919
	public String getStockLinked() {
920
		return stockLinked;
921
	}
922
 
923
	public void setStockLinked(String stockLinked) {
924
		this.stockLinked = stockLinked;
925
	}
926
 
927
}