File Coverage

blib/lib/Google/Ads/GoogleAds/V10/Common/Segments.pm
Criterion Covered Total %
statement 12 17 70.5
branch n/a
condition n/a
subroutine 4 5 80.0
pod 0 1 0.0
total 16 23 69.5


line stmt bran cond sub pod time code
1             # Copyright 2020, Google LLC
2             #
3             # Licensed under the Apache License, Version 2.0 (the "License");
4             # you may not use this file except in compliance with the License.
5             # You may obtain a copy of the License at
6             #
7             # http://www.apache.org/licenses/LICENSE-2.0
8             #
9             # Unless required by applicable law or agreed to in writing, software
10             # distributed under the License is distributed on an "AS IS" BASIS,
11             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12             # See the License for the specific language governing permissions and
13             # limitations under the License.
14              
15              
16             use strict;
17 1     1   795 use warnings;
  1         12  
  1         37  
18 1     1   6 use base qw(Google::Ads::GoogleAds::BaseEntity);
  1         2  
  1         27  
19 1     1   11  
  1         3  
  1         72  
20             use Google::Ads::GoogleAds::Utils::GoogleAdsHelper;
21 1     1   10  
  1         5  
  1         483  
22             my ($class, $args) = @_;
23             my $self = {
24 0     0 0   adDestinationType => $args->{adDestinationType},
25             adNetworkType => $args->{adNetworkType},
26             assetInteractionTarget => $args->{assetInteractionTarget},
27             budgetCampaignAssociationStatus => $args->{budgetCampaignAssociationStatus},
28             clickType => $args->{clickType},
29             conversionAction => $args->{conversionAction},
30             conversionActionCategory => $args->{conversionActionCategory},
31             conversionActionName => $args->{conversionActionName},
32             conversionAdjustment => $args->{conversionAdjustment},
33             conversionAttributionEventType => $args->{conversionAttributionEventType},
34             conversionLagBucket => $args->{conversionLagBucket},
35             conversionOrAdjustmentLagBucket => $args->{conversionOrAdjustmentLagBucket},
36             conversionValueRulePrimaryDimension =>
37             $args->{conversionValueRulePrimaryDimension},
38             date => $args->{date},
39             dayOfWeek => $args->{dayOfWeek},
40             device => $args->{device},
41             externalConversionSource => $args->{externalConversionSource},
42             geoTargetAirport => $args->{geoTargetAirport},
43             geoTargetCanton => $args->{geoTargetCanton},
44             geoTargetCity => $args->{geoTargetCity},
45             geoTargetCountry => $args->{geoTargetCountry},
46             geoTargetCounty => $args->{geoTargetCounty},
47             geoTargetDistrict => $args->{geoTargetDistrict},
48             geoTargetMetro => $args->{geoTargetMetro},
49             geoTargetMostSpecificLocation => $args->{geoTargetMostSpecificLocation},
50             geoTargetPostalCode => $args->{geoTargetPostalCode},
51             geoTargetProvince => $args->{geoTargetProvince},
52             geoTargetRegion => $args->{geoTargetRegion},
53             geoTargetState => $args->{geoTargetState},
54             hotelBookingWindowDays => $args->{hotelBookingWindowDays},
55             hotelCenterId => $args->{hotelCenterId},
56             hotelCheckInDate => $args->{hotelCheckInDate},
57             hotelCheckInDayOfWeek => $args->{hotelCheckInDayOfWeek},
58             hotelCity => $args->{hotelCity},
59             hotelClass => $args->{hotelClass},
60             hotelCountry => $args->{hotelCountry},
61             hotelDateSelectionType => $args->{hotelDateSelectionType},
62             hotelLengthOfStay => $args->{hotelLengthOfStay},
63             hotelPriceBucket => $args->{hotelPriceBucket},
64             hotelRateRuleId => $args->{hotelRateRuleId},
65             hotelRateType => $args->{hotelRateType},
66             hotelState => $args->{hotelState},
67             hour => $args->{hour},
68             interactionOnThisExtension => $args->{interactionOnThisExtension},
69             keyword => $args->{keyword},
70             month => $args->{month},
71             monthOfYear => $args->{monthOfYear},
72             partnerHotelId => $args->{partnerHotelId},
73             placeholderType => $args->{placeholderType},
74             productAggregatorId => $args->{productAggregatorId},
75             productBiddingCategoryLevel1 => $args->{productBiddingCategoryLevel1},
76             productBiddingCategoryLevel2 => $args->{productBiddingCategoryLevel2},
77             productBiddingCategoryLevel3 => $args->{productBiddingCategoryLevel3},
78             productBiddingCategoryLevel4 => $args->{productBiddingCategoryLevel4},
79             productBiddingCategoryLevel5 => $args->{productBiddingCategoryLevel5},
80             productBrand => $args->{productBrand},
81             productChannel => $args->{productChannel},
82             productChannelExclusivity => $args->{productChannelExclusivity},
83             productCondition => $args->{productCondition},
84             productCountry => $args->{productCountry},
85             productCustomAttribute0 => $args->{productCustomAttribute0},
86             productCustomAttribute1 => $args->{productCustomAttribute1},
87             productCustomAttribute2 => $args->{productCustomAttribute2},
88             productCustomAttribute3 => $args->{productCustomAttribute3},
89             productCustomAttribute4 => $args->{productCustomAttribute4},
90             productItemId => $args->{productItemId},
91             productLanguage => $args->{productLanguage},
92             productMerchantId => $args->{productMerchantId},
93             productStoreId => $args->{productStoreId},
94             productTitle => $args->{productTitle},
95             productTypeL1 => $args->{productTypeL1},
96             productTypeL2 => $args->{productTypeL2},
97             productTypeL3 => $args->{productTypeL3},
98             productTypeL4 => $args->{productTypeL4},
99             productTypeL5 => $args->{productTypeL5},
100             quarter => $args->{quarter},
101             recommendationType => $args->{recommendationType},
102             searchEngineResultsPageType => $args->{searchEngineResultsPageType},
103             searchTermMatchType => $args->{searchTermMatchType},
104             skAdNetworkAdEventType => $args->{skAdNetworkAdEventType},
105             skAdNetworkAttributionCredit => $args->{skAdNetworkAttributionCredit},
106             skAdNetworkConversionValue => $args->{skAdNetworkConversionValue},
107             skAdNetworkSourceApp => $args->{skAdNetworkSourceApp},
108             skAdNetworkUserType => $args->{skAdNetworkUserType},
109             slot => $args->{slot},
110             webpage => $args->{webpage},
111             week => $args->{week},
112             year => $args->{year}};
113              
114 0           # Delete the unassigned fields in this object for a more concise JSON payload
115             remove_unassigned_fields($self, $args);
116              
117 0           bless $self, $class;
118             return $self;
119 0           }
120 0            
121             1;