File Coverage

blib/lib/Microsoft/AdCenter/V8/AdIntelligenceService.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1             package Microsoft::AdCenter::V8::AdIntelligenceService;
2             # Copyright (C) 2012 Xerxes Tsang
3             # This program is free software; you can redistribute it and/or modify it
4             # under the terms of Perl Artistic License.
5              
6 45     45   5867264 use strict;
  45         123  
  45         1919  
7 45     45   268 use warnings;
  45         193  
  45         2580  
8              
9             =head1 NAME
10              
11             Microsoft::AdCenter::V8::AdIntelligenceService - Service client for Microsoft AdCenter Ad Intelligence Service.
12              
13             =head1 SYNOPSIS
14              
15             use Microsoft::AdCenter::V8::AdIntelligenceService;
16              
17             my $service_client = Microsoft::AdCenter::V8::AdIntelligenceService->new
18             ->ApplicationToken("application token")
19             ->CustomerAccountId("customer account id")
20             ->CustomerId("customer id")
21             ->DeveloperToken("developer token")
22             ->Password("password")
23             ->UserName("user name");
24              
25             my $response = $service_client->GetEstimatedBidByKeywordIds(
26             KeywordIds => ...
27             TargetPositionForAds => ...
28             );
29              
30             See L for detailed documentation for this service.
31              
32             =head1 METHODS
33              
34             =head2 EndPoint
35              
36             Changes the end point for this service client.
37              
38             Default value: https://adcenterapi.microsoft.com/Api/Advertiser/V8/AdIntelligence/AdIntelligenceService.svc
39              
40             =head2 ApplicationToken
41              
42             Gets/sets ApplicationToken (string) in the request header
43              
44             =head2 CustomerAccountId
45              
46             Gets/sets CustomerAccountId (string) in the request header
47              
48             =head2 CustomerId
49              
50             Gets/sets CustomerId (string) in the request header
51              
52             =head2 DeveloperToken
53              
54             Gets/sets DeveloperToken (string) in the request header
55              
56             =head2 Password
57              
58             Gets/sets Password (string) in the request header
59              
60             =head2 UserName
61              
62             Gets/sets UserName (string) in the request header
63              
64             =head2 TrackingId
65              
66             Gets TrackingId (string) in the response header
67              
68             =cut
69              
70 45     45   275 use base qw/Microsoft::AdCenter::Service/;
  45         89  
  45         43050  
71              
72             sub _service_name {
73             return 'AdIntelligenceService';
74             }
75              
76             sub _service_version {
77             return 'V8';
78             }
79              
80             sub _class_name {
81             return 'AdIntelligenceService';
82             }
83              
84             sub _namespace_uri {
85             return 'https://adcenter.microsoft.com/v8';
86             }
87              
88             sub _default_location {
89             return 'https://adcenterapi.microsoft.com/Api/Advertiser/V8/AdIntelligence/AdIntelligenceService.svc';
90             }
91              
92             sub _wsdl {
93             return 'https://adcenterapi.microsoft.com/Api/Advertiser/V8/CampaignManagement/AdIntelligenceService.svc?wsdl';
94             }
95              
96             our $_request_headers = [
97             { name => 'ApplicationToken', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
98             { name => 'CustomerAccountId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
99             { name => 'CustomerId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
100             { name => 'DeveloperToken', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
101             { name => 'Password', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
102             { name => 'UserName', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
103             ];
104              
105             our $_request_headers_expanded = {
106             ApplicationToken => 'string',
107             CustomerAccountId => 'string',
108             CustomerId => 'string',
109             DeveloperToken => 'string',
110             Password => 'string',
111             UserName => 'string'
112             };
113              
114             sub _request_headers {
115             return $_request_headers;
116             }
117              
118             sub _request_headers_expanded {
119             return $_request_headers_expanded;
120             }
121              
122             our $_response_headers = [
123             { name => 'TrackingId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
124             ];
125              
126             our $_response_headers_expanded = {
127             TrackingId => 'string'
128             };
129              
130             sub _response_headers {
131             return $_response_headers;
132             }
133              
134             sub _response_headers_expanded {
135             return $_response_headers_expanded;
136             }
137              
138             =head2 GetEstimatedBidByKeywordIds
139              
140             =over
141              
142             =item Parameters:
143              
144             KeywordIds (ArrayOflong)
145             TargetPositionForAds (TargetAdPosition)
146              
147             =item Returns:
148              
149             GetEstimatedBidByKeywordIdsResponse
150              
151             =back
152              
153             =cut
154              
155             sub GetEstimatedBidByKeywordIds {
156             my ($self, %args) = @_;
157             return $self->_invoke(
158             soap_action => 'GetEstimatedBidByKeywordIds',
159             request => {
160             name => 'GetEstimatedBidByKeywordIdsRequest',
161             parameters => [
162             { name => 'KeywordIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/v8' },
163             { name => 'TargetPositionForAds', type => 'TargetAdPosition', namespace => 'https://adcenter.microsoft.com/v8' }
164             ]
165             },
166             response => {
167             name => 'GetEstimatedBidByKeywordIdsResponse'
168             },
169             parameters => \%args
170             );
171             }
172              
173             =head2 GetEstimatedBidByKeywords
174              
175             =over
176              
177             =item Parameters:
178              
179             Keywords (ArrayOfstring)
180             TargetPositionForAds (TargetAdPosition)
181             Language (string)
182             PublisherCountries (ArrayOfstring)
183             Currency (Currency)
184             MatchTypes (ArrayOfMatchType)
185              
186             =item Returns:
187              
188             GetEstimatedBidByKeywordsResponse
189              
190             =back
191              
192             =cut
193              
194             sub GetEstimatedBidByKeywords {
195             my ($self, %args) = @_;
196             return $self->_invoke(
197             soap_action => 'GetEstimatedBidByKeywords',
198             request => {
199             name => 'GetEstimatedBidByKeywordsRequest',
200             parameters => [
201             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
202             { name => 'TargetPositionForAds', type => 'TargetAdPosition', namespace => 'https://adcenter.microsoft.com/v8' },
203             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
204             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
205             { name => 'Currency', type => 'Currency', namespace => 'https://adcenter.microsoft.com/v8' },
206             { name => 'MatchTypes', type => 'ArrayOfMatchType', namespace => 'https://adcenter.microsoft.com/v8' }
207             ]
208             },
209             response => {
210             name => 'GetEstimatedBidByKeywordsResponse'
211             },
212             parameters => \%args
213             );
214             }
215              
216             =head2 GetEstimatedPositionByKeywordIds
217              
218             =over
219              
220             =item Parameters:
221              
222             KeywordIds (ArrayOflong)
223             MaxBid (double)
224              
225             =item Returns:
226              
227             GetEstimatedPositionByKeywordIdsResponse
228              
229             =back
230              
231             =cut
232              
233             sub GetEstimatedPositionByKeywordIds {
234             my ($self, %args) = @_;
235             return $self->_invoke(
236             soap_action => 'GetEstimatedPositionByKeywordIds',
237             request => {
238             name => 'GetEstimatedPositionByKeywordIdsRequest',
239             parameters => [
240             { name => 'KeywordIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/v8' },
241             { name => 'MaxBid', type => 'double', namespace => 'https://adcenter.microsoft.com/v8' }
242             ]
243             },
244             response => {
245             name => 'GetEstimatedPositionByKeywordIdsResponse'
246             },
247             parameters => \%args
248             );
249             }
250              
251             =head2 GetEstimatedPositionByKeywords
252              
253             =over
254              
255             =item Parameters:
256              
257             Keywords (ArrayOfstring)
258             MaxBid (double)
259             Language (string)
260             PublisherCountries (ArrayOfstring)
261             Currency (Currency)
262             MatchTypes (ArrayOfMatchType)
263              
264             =item Returns:
265              
266             GetEstimatedPositionByKeywordsResponse
267              
268             =back
269              
270             =cut
271              
272             sub GetEstimatedPositionByKeywords {
273             my ($self, %args) = @_;
274             return $self->_invoke(
275             soap_action => 'GetEstimatedPositionByKeywords',
276             request => {
277             name => 'GetEstimatedPositionByKeywordsRequest',
278             parameters => [
279             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
280             { name => 'MaxBid', type => 'double', namespace => 'https://adcenter.microsoft.com/v8' },
281             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
282             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
283             { name => 'Currency', type => 'Currency', namespace => 'https://adcenter.microsoft.com/v8' },
284             { name => 'MatchTypes', type => 'ArrayOfMatchType', namespace => 'https://adcenter.microsoft.com/v8' }
285             ]
286             },
287             response => {
288             name => 'GetEstimatedPositionByKeywordsResponse'
289             },
290             parameters => \%args
291             );
292             }
293              
294             =head2 GetHistoricalKeywordPerformance
295              
296             =over
297              
298             =item Parameters:
299              
300             Keywords (ArrayOfstring)
301             TimeInterval (TimeInterval)
302             TargetAdPosition (AdPosition)
303             MatchType (MatchType)
304             Language (string)
305             PublisherCountries (ArrayOfstring)
306              
307             =item Returns:
308              
309             GetHistoricalKeywordPerformanceResponse
310              
311             =back
312              
313             =cut
314              
315             sub GetHistoricalKeywordPerformance {
316             my ($self, %args) = @_;
317             return $self->_invoke(
318             soap_action => 'GetHistoricalKeywordPerformance',
319             request => {
320             name => 'GetHistoricalKeywordPerformanceRequest',
321             parameters => [
322             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
323             { name => 'TimeInterval', type => 'TimeInterval', namespace => 'https://adcenter.microsoft.com/v8' },
324             { name => 'TargetAdPosition', type => 'AdPosition', namespace => 'https://adcenter.microsoft.com/v8' },
325             { name => 'MatchType', type => 'MatchType', namespace => 'https://adcenter.microsoft.com/v8' },
326             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
327             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' }
328             ]
329             },
330             response => {
331             name => 'GetHistoricalKeywordPerformanceResponse'
332             },
333             parameters => \%args
334             );
335             }
336              
337             =head2 GetHistoricalKeywordPerformanceByDevice
338              
339             =over
340              
341             =item Parameters:
342              
343             Keywords (ArrayOfstring)
344             TimeInterval (TimeInterval)
345             TargetAdPosition (AdPosition)
346             MatchTypes (ArrayOfMatchType)
347             Language (string)
348             PublisherCountries (ArrayOfstring)
349             Devices (ArrayOfstring)
350              
351             =item Returns:
352              
353             GetHistoricalKeywordPerformanceByDeviceResponse
354              
355             =back
356              
357             =cut
358              
359             sub GetHistoricalKeywordPerformanceByDevice {
360             my ($self, %args) = @_;
361             return $self->_invoke(
362             soap_action => 'GetHistoricalKeywordPerformanceByDevice',
363             request => {
364             name => 'GetHistoricalKeywordPerformanceByDeviceRequest',
365             parameters => [
366             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
367             { name => 'TimeInterval', type => 'TimeInterval', namespace => 'https://adcenter.microsoft.com/v8' },
368             { name => 'TargetAdPosition', type => 'AdPosition', namespace => 'https://adcenter.microsoft.com/v8' },
369             { name => 'MatchTypes', type => 'ArrayOfMatchType', namespace => 'https://adcenter.microsoft.com/v8' },
370             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
371             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
372             { name => 'Devices', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' }
373             ]
374             },
375             response => {
376             name => 'GetHistoricalKeywordPerformanceByDeviceResponse'
377             },
378             parameters => \%args
379             );
380             }
381              
382             =head2 GetHistoricalSearchCount
383              
384             =over
385              
386             =item Parameters:
387              
388             Keywords (ArrayOfstring)
389             Language (string)
390             PublisherCountries (ArrayOfstring)
391             StartMonthAndYear (MonthAndYear)
392             EndMonthAndYear (MonthAndYear)
393              
394             =item Returns:
395              
396             GetHistoricalSearchCountResponse
397              
398             =back
399              
400             =cut
401              
402             sub GetHistoricalSearchCount {
403             my ($self, %args) = @_;
404             return $self->_invoke(
405             soap_action => 'GetHistoricalSearchCount',
406             request => {
407             name => 'GetHistoricalSearchCountRequest',
408             parameters => [
409             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
410             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
411             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
412             { name => 'StartMonthAndYear', type => 'MonthAndYear', namespace => 'https://adcenter.microsoft.com/v8' },
413             { name => 'EndMonthAndYear', type => 'MonthAndYear', namespace => 'https://adcenter.microsoft.com/v8' }
414             ]
415             },
416             response => {
417             name => 'GetHistoricalSearchCountResponse'
418             },
419             parameters => \%args
420             );
421             }
422              
423             =head2 GetHistoricalSearchCountByDevice
424              
425             =over
426              
427             =item Parameters:
428              
429             Keywords (ArrayOfstring)
430             Language (string)
431             PublisherCountries (ArrayOfstring)
432             StartTimePeriod (DayMonthAndYear)
433             EndTimePeriod (DayMonthAndYear)
434             TimePeriodRollup (string)
435             Devices (ArrayOfstring)
436              
437             =item Returns:
438              
439             GetHistoricalSearchCountByDeviceResponse
440              
441             =back
442              
443             =cut
444              
445             sub GetHistoricalSearchCountByDevice {
446             my ($self, %args) = @_;
447             return $self->_invoke(
448             soap_action => 'GetHistoricalSearchCountByDevice',
449             request => {
450             name => 'GetHistoricalSearchCountByDeviceRequest',
451             parameters => [
452             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
453             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
454             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
455             { name => 'StartTimePeriod', type => 'DayMonthAndYear', namespace => 'https://adcenter.microsoft.com/v8' },
456             { name => 'EndTimePeriod', type => 'DayMonthAndYear', namespace => 'https://adcenter.microsoft.com/v8' },
457             { name => 'TimePeriodRollup', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
458             { name => 'Devices', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' }
459             ]
460             },
461             response => {
462             name => 'GetHistoricalSearchCountByDeviceResponse'
463             },
464             parameters => \%args
465             );
466             }
467              
468             =head2 GetKeywordCategories
469              
470             =over
471              
472             =item Parameters:
473              
474             Keywords (ArrayOfstring)
475             Language (string)
476             PublisherCountry (string)
477             MaxCategories (int)
478              
479             =item Returns:
480              
481             GetKeywordCategoriesResponse
482              
483             =back
484              
485             =cut
486              
487             sub GetKeywordCategories {
488             my ($self, %args) = @_;
489             return $self->_invoke(
490             soap_action => 'GetKeywordCategories',
491             request => {
492             name => 'GetKeywordCategoriesRequest',
493             parameters => [
494             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
495             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
496             { name => 'PublisherCountry', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
497             { name => 'MaxCategories', type => 'int', namespace => 'https://adcenter.microsoft.com/v8' }
498             ]
499             },
500             response => {
501             name => 'GetKeywordCategoriesResponse'
502             },
503             parameters => \%args
504             );
505             }
506              
507             =head2 GetKeywordDemographics
508              
509             =over
510              
511             =item Parameters:
512              
513             Keywords (ArrayOfstring)
514             Language (string)
515             PublisherCountry (string)
516             Device (ArrayOfstring)
517              
518             =item Returns:
519              
520             GetKeywordDemographicsResponse
521              
522             =back
523              
524             =cut
525              
526             sub GetKeywordDemographics {
527             my ($self, %args) = @_;
528             return $self->_invoke(
529             soap_action => 'GetKeywordDemographics',
530             request => {
531             name => 'GetKeywordDemographicsRequest',
532             parameters => [
533             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
534             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
535             { name => 'PublisherCountry', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
536             { name => 'Device', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' }
537             ]
538             },
539             response => {
540             name => 'GetKeywordDemographicsResponse'
541             },
542             parameters => \%args
543             );
544             }
545              
546             =head2 GetKeywordLocations
547              
548             =over
549              
550             =item Parameters:
551              
552             Keywords (ArrayOfstring)
553             Language (string)
554             PublisherCountry (string)
555             Device (ArrayOfstring)
556             Level (int)
557             ParentCountry (string)
558             MaxLocations (int)
559              
560             =item Returns:
561              
562             GetKeywordLocationsResponse
563              
564             =back
565              
566             =cut
567              
568             sub GetKeywordLocations {
569             my ($self, %args) = @_;
570             return $self->_invoke(
571             soap_action => 'GetKeywordLocations',
572             request => {
573             name => 'GetKeywordLocationsRequest',
574             parameters => [
575             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
576             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
577             { name => 'PublisherCountry', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
578             { name => 'Device', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
579             { name => 'Level', type => 'int', namespace => 'https://adcenter.microsoft.com/v8' },
580             { name => 'ParentCountry', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
581             { name => 'MaxLocations', type => 'int', namespace => 'https://adcenter.microsoft.com/v8' }
582             ]
583             },
584             response => {
585             name => 'GetKeywordLocationsResponse'
586             },
587             parameters => \%args
588             );
589             }
590              
591             =head2 GetPublisherKeywordPerformance
592              
593             =over
594              
595             =item Parameters:
596              
597             Keywords (ArrayOfstring)
598             TimeInterval (TimeInterval)
599              
600             =item Returns:
601              
602             GetPublisherKeywordPerformanceResponse
603              
604             =back
605              
606             =cut
607              
608             sub GetPublisherKeywordPerformance {
609             my ($self, %args) = @_;
610             return $self->_invoke(
611             soap_action => 'GetPublisherKeywordPerformance',
612             request => {
613             name => 'GetPublisherKeywordPerformanceRequest',
614             parameters => [
615             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
616             { name => 'TimeInterval', type => 'TimeInterval', namespace => 'https://adcenter.microsoft.com/v8' }
617             ]
618             },
619             response => {
620             name => 'GetPublisherKeywordPerformanceResponse'
621             },
622             parameters => \%args
623             );
624             }
625              
626             =head2 SuggestKeywordsForUrl
627              
628             =over
629              
630             =item Parameters:
631              
632             Url (string)
633             Language (string)
634             MaxKeywords (int)
635             MinConfidenceScore (double)
636              
637             =item Returns:
638              
639             SuggestKeywordsForUrlResponse
640              
641             =back
642              
643             =cut
644              
645             sub SuggestKeywordsForUrl {
646             my ($self, %args) = @_;
647             return $self->_invoke(
648             soap_action => 'SuggestKeywordsForUrl',
649             request => {
650             name => 'SuggestKeywordsForUrlRequest',
651             parameters => [
652             { name => 'Url', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
653             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
654             { name => 'MaxKeywords', type => 'int', namespace => 'https://adcenter.microsoft.com/v8' },
655             { name => 'MinConfidenceScore', type => 'double', namespace => 'https://adcenter.microsoft.com/v8' }
656             ]
657             },
658             response => {
659             name => 'SuggestKeywordsForUrlResponse'
660             },
661             parameters => \%args
662             );
663             }
664              
665             =head2 SuggestKeywordsFromExistingKeywords
666              
667             =over
668              
669             =item Parameters:
670              
671             Keywords (ArrayOfstring)
672             Language (string)
673             PublisherCountries (ArrayOfstring)
674             MaxSuggestionsPerKeyword (int)
675             SuggestionType (int)
676             RemoveDuplicates (boolean)
677              
678             =item Returns:
679              
680             SuggestKeywordsFromExistingKeywordsResponse
681              
682             =back
683              
684             =cut
685              
686             sub SuggestKeywordsFromExistingKeywords {
687             my ($self, %args) = @_;
688             return $self->_invoke(
689             soap_action => 'SuggestKeywordsFromExistingKeywords',
690             request => {
691             name => 'SuggestKeywordsFromExistingKeywordsRequest',
692             parameters => [
693             { name => 'Keywords', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
694             { name => 'Language', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
695             { name => 'PublisherCountries', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/v8' },
696             { name => 'MaxSuggestionsPerKeyword', type => 'int', namespace => 'https://adcenter.microsoft.com/v8' },
697             { name => 'SuggestionType', type => 'int', namespace => 'https://adcenter.microsoft.com/v8' },
698             { name => 'RemoveDuplicates', type => 'boolean', namespace => 'https://adcenter.microsoft.com/v8' }
699             ]
700             },
701             response => {
702             name => 'SuggestKeywordsFromExistingKeywordsResponse'
703             },
704             parameters => \%args
705             );
706             }
707              
708             our %_simple_types = (
709             AdPosition => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
710             Currency => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
711             MatchType => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
712             Scale => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
713             TargetAdPosition => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
714             TimeInterval => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
715             char => 'http://schemas.microsoft.com/2003/10/Serialization/',
716             duration => 'http://schemas.microsoft.com/2003/10/Serialization/',
717             guid => 'http://schemas.microsoft.com/2003/10/Serialization/',
718             );
719              
720             sub _simple_types {
721             return %_simple_types;
722             }
723              
724             our @_complex_types = (qw/
725             AdApiError
726             AdApiFaultDetail
727             ApiFaultDetail
728             ApplicationFault
729             BatchError
730             DayMonthAndYear
731             EstimatedBidAndTraffic
732             EstimatedPositionAndTraffic
733             GetEstimatedBidByKeywordIdsResponse
734             GetEstimatedBidByKeywordsResponse
735             GetEstimatedPositionByKeywordIdsResponse
736             GetEstimatedPositionByKeywordsResponse
737             GetHistoricalKeywordPerformanceByDeviceResponse
738             GetHistoricalKeywordPerformanceResponse
739             GetHistoricalSearchCountByDeviceResponse
740             GetHistoricalSearchCountResponse
741             GetKeywordCategoriesResponse
742             GetKeywordDemographicsResponse
743             GetKeywordLocationsResponse
744             GetPublisherKeywordPerformanceResponse
745             HistoricalSearchCount
746             HistoricalSearchCountPeriodic
747             KeywordAndConfidence
748             KeywordCategory
749             KeywordCategoryResult
750             KeywordDemographic
751             KeywordDemographicResult
752             KeywordEstimatedBid
753             KeywordEstimatedPosition
754             KeywordHistoricalPerformance
755             KeywordHistoricalPerformanceByDevice
756             KeywordIdEstimatedBid
757             KeywordIdEstimatedPosition
758             KeywordKPI
759             KeywordLocation
760             KeywordLocationResult
761             KeywordPerformance
762             KeywordSearchCount
763             KeywordSearchCountByDevice
764             KeywordSuggestion
765             MonthAndYear
766             OperationError
767             SuggestKeywordsForUrlResponse
768             SuggestKeywordsFromExistingKeywordsResponse
769             /);
770              
771             sub _complex_types {
772             return @_complex_types;
773             }
774              
775             our %_array_types = (
776             ArrayOfAdApiError => {
777             namespace_uri => 'https://adapi.microsoft.com',
778             element_name => 'AdApiError',
779             element_type => 'AdApiError'
780             },
781             ArrayOfBatchError => {
782             namespace_uri => 'https://adcenter.microsoft.com/v8',
783             element_name => 'BatchError',
784             element_type => 'BatchError'
785             },
786             ArrayOfEstimatedBidAndTraffic => {
787             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
788             element_name => 'EstimatedBidAndTraffic',
789             element_type => 'EstimatedBidAndTraffic'
790             },
791             ArrayOfEstimatedPositionAndTraffic => {
792             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
793             element_name => 'EstimatedPositionAndTraffic',
794             element_type => 'EstimatedPositionAndTraffic'
795             },
796             ArrayOfHistoricalSearchCount => {
797             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
798             element_name => 'HistoricalSearchCount',
799             element_type => 'HistoricalSearchCount'
800             },
801             ArrayOfHistoricalSearchCountPeriodic => {
802             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
803             element_name => 'HistoricalSearchCountPeriodic',
804             element_type => 'HistoricalSearchCountPeriodic'
805             },
806             ArrayOfKeywordAndConfidence => {
807             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
808             element_name => 'KeywordAndConfidence',
809             element_type => 'KeywordAndConfidence'
810             },
811             ArrayOfKeywordCategory => {
812             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
813             element_name => 'KeywordCategory',
814             element_type => 'KeywordCategory'
815             },
816             ArrayOfKeywordCategoryResult => {
817             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
818             element_name => 'KeywordCategoryResult',
819             element_type => 'KeywordCategoryResult'
820             },
821             ArrayOfKeywordDemographicResult => {
822             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
823             element_name => 'KeywordDemographicResult',
824             element_type => 'KeywordDemographicResult'
825             },
826             ArrayOfKeywordEstimatedBid => {
827             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
828             element_name => 'KeywordEstimatedBid',
829             element_type => 'KeywordEstimatedBid'
830             },
831             ArrayOfKeywordEstimatedPosition => {
832             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
833             element_name => 'KeywordEstimatedPosition',
834             element_type => 'KeywordEstimatedPosition'
835             },
836             ArrayOfKeywordHistoricalPerformance => {
837             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
838             element_name => 'KeywordHistoricalPerformance',
839             element_type => 'KeywordHistoricalPerformance'
840             },
841             ArrayOfKeywordHistoricalPerformanceByDevice => {
842             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
843             element_name => 'KeywordHistoricalPerformanceByDevice',
844             element_type => 'KeywordHistoricalPerformanceByDevice'
845             },
846             ArrayOfKeywordIdEstimatedBid => {
847             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
848             element_name => 'KeywordIdEstimatedBid',
849             element_type => 'KeywordIdEstimatedBid'
850             },
851             ArrayOfKeywordIdEstimatedPosition => {
852             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
853             element_name => 'KeywordIdEstimatedPosition',
854             element_type => 'KeywordIdEstimatedPosition'
855             },
856             ArrayOfKeywordKPI => {
857             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
858             element_name => 'KeywordKPI',
859             element_type => 'KeywordKPI'
860             },
861             ArrayOfKeywordLocation => {
862             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
863             element_name => 'KeywordLocation',
864             element_type => 'KeywordLocation'
865             },
866             ArrayOfKeywordLocationResult => {
867             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
868             element_name => 'KeywordLocationResult',
869             element_type => 'KeywordLocationResult'
870             },
871             ArrayOfKeywordPerformance => {
872             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
873             element_name => 'KeywordPerformance',
874             element_type => 'KeywordPerformance'
875             },
876             ArrayOfKeywordSearchCount => {
877             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
878             element_name => 'KeywordSearchCount',
879             element_type => 'KeywordSearchCount'
880             },
881             ArrayOfKeywordSearchCountByDevice => {
882             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
883             element_name => 'KeywordSearchCountByDevice',
884             element_type => 'KeywordSearchCountByDevice'
885             },
886             ArrayOfKeywordSuggestion => {
887             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
888             element_name => 'KeywordSuggestion',
889             element_type => 'KeywordSuggestion'
890             },
891             ArrayOfMatchType => {
892             namespace_uri => 'http://schemas.datacontract.org/2004/07/Microsoft.AdCenter.Advertiser.CampaignManagement.Api.DataContracts',
893             element_name => 'MatchType',
894             element_type => 'MatchType'
895             },
896             ArrayOfOperationError => {
897             namespace_uri => 'https://adcenter.microsoft.com/v8',
898             element_name => 'OperationError',
899             element_type => 'OperationError'
900             },
901             ArrayOflong => {
902             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
903             element_name => 'long',
904             element_type => 'long'
905             },
906             ArrayOfstring => {
907             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
908             element_name => 'string',
909             element_type => 'string'
910             },
911             );
912              
913             sub _array_types {
914             return %_array_types;
915             }
916              
917             __PACKAGE__->mk_accessors(qw/
918             ApplicationToken
919             CustomerAccountId
920             CustomerId
921             DeveloperToken
922             Password
923             UserName
924             TrackingId
925             /);
926              
927             1;