google-ads-googleads 0.6.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/ChangeLog +4 -0
  3. data/google_ads_config.rb +9 -0
  4. data/lib/google/ads/google_ads/config.rb +2 -0
  5. data/lib/google/ads/google_ads/google_ads_client.rb +13 -1
  6. data/lib/google/ads/google_ads/path_lookup_util.rb +115 -0
  7. data/lib/google/ads/google_ads/proto_lookup_util.rb +237 -3
  8. data/lib/google/ads/google_ads/v0/common/ad_type_infos_pb.rb +37 -0
  9. data/lib/google/ads/google_ads/v0/common/criteria_pb.rb +34 -0
  10. data/lib/google/ads/google_ads/v0/common/criterion_category_availability_pb.rb +41 -0
  11. data/lib/google/ads/google_ads/v0/common/dates_pb.rb +24 -0
  12. data/lib/google/ads/google_ads/v0/common/explorer_auto_optimizer_setting_pb.rb +23 -0
  13. data/lib/google/ads/google_ads/v0/common/feed_common_pb.rb +24 -0
  14. data/lib/google/ads/google_ads/v0/common/frequency_cap_pb.rb +34 -0
  15. data/lib/google/ads/google_ads/v0/common/keyword_plan_common_pb.rb +25 -0
  16. data/lib/google/ads/google_ads/v0/common/matching_function_pb.rb +23 -0
  17. data/lib/google/ads/google_ads/v0/common/metrics_pb.rb +3 -0
  18. data/lib/google/ads/google_ads/v0/common/real_time_bidding_setting_pb.rb +23 -0
  19. data/lib/google/ads/google_ads/v0/common/user_lists_pb.rb +31 -0
  20. data/lib/google/ads/google_ads/v0/enums/access_reason_pb.rb +31 -0
  21. data/lib/google/ads/google_ads/v0/enums/ad_customizer_placeholder_field_pb.rb +30 -0
  22. data/lib/google/ads/google_ads/v0/enums/ad_type_pb.rb +3 -1
  23. data/lib/google/ads/google_ads/v0/enums/affiliate_location_feed_relationship_type_pb.rb +27 -0
  24. data/lib/google/ads/google_ads/v0/enums/app_placeholder_field_pb.rb +34 -0
  25. data/lib/google/ads/google_ads/v0/enums/call_placeholder_field_pb.rb +31 -0
  26. data/lib/google/ads/google_ads/v0/enums/callout_placeholder_field_pb.rb +27 -0
  27. data/lib/google/ads/google_ads/v0/enums/content_label_type_pb.rb +41 -0
  28. data/lib/google/ads/google_ads/v0/enums/criterion_category_channel_availability_mode_pb.rb +29 -0
  29. data/lib/google/ads/google_ads/v0/enums/criterion_category_locale_availability_mode_pb.rb +30 -0
  30. data/lib/google/ads/google_ads/v0/enums/criterion_type_pb.rb +7 -0
  31. data/lib/google/ads/google_ads/v0/enums/custom_placeholder_field_pb.rb +46 -0
  32. data/lib/google/ads/google_ads/v0/enums/customer_match_upload_key_type_pb.rb +29 -0
  33. data/lib/google/ads/google_ads/v0/enums/education_placeholder_field_pb.rb +43 -0
  34. data/lib/google/ads/google_ads/v0/enums/feed_attribute_type_pb.rb +39 -0
  35. data/lib/google/ads/google_ads/v0/enums/feed_item_status_pb.rb +28 -0
  36. data/lib/google/ads/google_ads/v0/enums/feed_link_status_pb.rb +28 -0
  37. data/lib/google/ads/google_ads/v0/enums/feed_mapping_criterion_type_pb.rb +28 -0
  38. data/lib/google/ads/google_ads/v0/enums/feed_mapping_status_pb.rb +28 -0
  39. data/lib/google/ads/google_ads/v0/enums/feed_origin_pb.rb +28 -0
  40. data/lib/google/ads/google_ads/v0/enums/feed_status_pb.rb +28 -0
  41. data/lib/google/ads/google_ads/v0/enums/flight_placeholder_field_pb.rb +43 -0
  42. data/lib/google/ads/google_ads/v0/enums/frequency_cap_event_type_pb.rb +28 -0
  43. data/lib/google/ads/google_ads/v0/enums/frequency_cap_level_pb.rb +29 -0
  44. data/lib/google/ads/google_ads/v0/enums/frequency_cap_time_unit_pb.rb +29 -0
  45. data/lib/google/ads/google_ads/v0/enums/geo_targeting_restriction_pb.rb +27 -0
  46. data/lib/google/ads/google_ads/v0/enums/hotel_placeholder_field_pb.rb +46 -0
  47. data/lib/google/ads/google_ads/v0/enums/job_placeholder_field_pb.rb +43 -0
  48. data/lib/google/ads/google_ads/v0/enums/keyword_plan_competition_level_pb.rb +29 -0
  49. data/lib/google/ads/google_ads/v0/enums/keyword_plan_forecast_interval_pb.rb +29 -0
  50. data/lib/google/ads/google_ads/v0/enums/keyword_plan_network_pb.rb +28 -0
  51. data/lib/google/ads/google_ads/v0/enums/local_placeholder_field_pb.rb +45 -0
  52. data/lib/google/ads/google_ads/v0/enums/message_placeholder_field_pb.rb +31 -0
  53. data/lib/google/ads/google_ads/v0/enums/placeholder_type_pb.rb +45 -0
  54. data/lib/google/ads/google_ads/v0/enums/preferred_content_type_pb.rb +27 -0
  55. data/lib/google/ads/google_ads/v0/enums/price_placeholder_field_pb.rb +79 -0
  56. data/lib/google/ads/google_ads/v0/enums/product_condition_pb.rb +0 -1
  57. data/lib/google/ads/google_ads/v0/enums/promotion_placeholder_field_pb.rb +40 -0
  58. data/lib/google/ads/google_ads/v0/enums/real_estate_placeholder_field_pb.rb +44 -0
  59. data/lib/google/ads/google_ads/v0/enums/search_term_match_type_pb.rb +31 -0
  60. data/lib/google/ads/google_ads/v0/enums/search_term_targeting_status_pb.rb +30 -0
  61. data/lib/google/ads/google_ads/v0/enums/sitelink_placeholder_field_pb.rb +33 -0
  62. data/lib/google/ads/google_ads/v0/enums/structured_snippet_placeholder_field_pb.rb +28 -0
  63. data/lib/google/ads/google_ads/v0/enums/targeting_dimension_pb.rb +34 -0
  64. data/lib/google/ads/google_ads/v0/enums/tracking_code_page_format_pb.rb +1 -0
  65. data/lib/google/ads/google_ads/v0/enums/travel_placeholder_field_pb.rb +46 -0
  66. data/lib/google/ads/google_ads/v0/enums/user_interest_taxonomy_type_pb.rb +31 -0
  67. data/lib/google/ads/google_ads/v0/enums/user_list_access_status_pb.rb +28 -0
  68. data/lib/google/ads/google_ads/v0/enums/user_list_closing_reason_pb.rb +27 -0
  69. data/lib/google/ads/google_ads/v0/enums/user_list_crm_data_source_type_pb.rb +29 -0
  70. data/lib/google/ads/google_ads/v0/enums/user_list_membership_status_pb.rb +28 -0
  71. data/lib/google/ads/google_ads/v0/enums/user_list_size_range_pb.rb +42 -0
  72. data/lib/google/ads/google_ads/v0/enums/user_list_type_pb.rb +32 -0
  73. data/lib/google/ads/google_ads/v0/errors/ad_group_feed_error_pb.rb +33 -0
  74. data/lib/google/ads/google_ads/v0/errors/authentication_error_pb.rb +1 -2
  75. data/lib/google/ads/google_ads/v0/errors/campaign_feed_error_pb.rb +32 -0
  76. data/lib/google/ads/google_ads/v0/errors/customer_error_pb.rb +1 -0
  77. data/lib/google/ads/google_ads/v0/errors/customer_feed_error_pb.rb +33 -0
  78. data/lib/google/ads/google_ads/v0/errors/date_error_pb.rb +2 -1
  79. data/lib/google/ads/google_ads/v0/errors/errors_pb.rb +26 -0
  80. data/lib/google/ads/google_ads/v0/errors/feed_error_pb.rb +45 -0
  81. data/lib/google/ads/google_ads/v0/errors/feed_item_error_pb.rb +35 -0
  82. data/lib/google/ads/google_ads/v0/errors/feed_mapping_error_pb.rb +42 -0
  83. data/lib/google/ads/google_ads/v0/errors/header_error_pb.rb +1 -0
  84. data/lib/google/ads/google_ads/v0/errors/keyword_plan_ad_group_error_pb.rb +28 -0
  85. data/lib/google/ads/google_ads/v0/errors/keyword_plan_campaign_error_pb.rb +31 -0
  86. data/lib/google/ads/google_ads/v0/errors/keyword_plan_error_pb.rb +40 -0
  87. data/lib/google/ads/google_ads/v0/errors/keyword_plan_idea_error_pb.rb +28 -0
  88. data/lib/google/ads/google_ads/v0/errors/keyword_plan_keyword_error_pb.rb +32 -0
  89. data/lib/google/ads/google_ads/v0/errors/keyword_plan_negative_keyword_error_pb.rb +26 -0
  90. data/lib/google/ads/google_ads/v0/errors/new_resource_creation_error_pb.rb +1 -1
  91. data/lib/google/ads/google_ads/v0/errors/operation_access_denied_error_pb.rb +1 -0
  92. data/lib/google/ads/google_ads/v0/errors/recommendation_error_pb.rb +5 -0
  93. data/lib/google/ads/google_ads/v0/errors/url_field_error_pb.rb +5 -0
  94. data/lib/google/ads/google_ads/v0/errors/user_list_error_pb.rb +49 -0
  95. data/lib/google/ads/google_ads/v0/resources/ad_group_bid_modifier_pb.rb +1 -0
  96. data/lib/google/ads/google_ads/v0/resources/ad_group_criterion_pb.rb +2 -0
  97. data/lib/google/ads/google_ads/v0/resources/ad_group_feed_pb.rb +31 -0
  98. data/lib/google/ads/google_ads/v0/resources/ad_group_pb.rb +5 -0
  99. data/lib/google/ads/google_ads/v0/resources/ad_pb.rb +3 -0
  100. data/lib/google/ads/google_ads/v0/resources/billing_setup_pb.rb +4 -0
  101. data/lib/google/ads/google_ads/v0/resources/campaign_audience_view_pb.rb +22 -0
  102. data/lib/google/ads/google_ads/v0/resources/campaign_budget_pb.rb +1 -0
  103. data/lib/google/ads/google_ads/v0/resources/campaign_criterion_pb.rb +7 -0
  104. data/lib/google/ads/google_ads/v0/resources/campaign_feed_pb.rb +31 -0
  105. data/lib/google/ads/google_ads/v0/resources/campaign_pb.rb +4 -0
  106. data/lib/google/ads/google_ads/v0/resources/carrier_constant_pb.rb +26 -0
  107. data/lib/google/ads/google_ads/v0/resources/customer_client_pb.rb +26 -0
  108. data/lib/google/ads/google_ads/v0/resources/customer_feed_pb.rb +30 -0
  109. data/lib/google/ads/google_ads/v0/resources/customer_pb.rb +1 -0
  110. data/lib/google/ads/google_ads/v0/resources/feed_item_pb.rb +48 -0
  111. data/lib/google/ads/google_ads/v0/resources/feed_mapping_pb.rb +74 -0
  112. data/lib/google/ads/google_ads/v0/resources/feed_pb.rb +75 -0
  113. data/lib/google/ads/google_ads/v0/resources/hotel_performance_view_pb.rb +22 -0
  114. data/lib/google/ads/google_ads/v0/resources/keyword_plan_ad_group_pb.rb +27 -0
  115. data/lib/google/ads/google_ads/v0/resources/keyword_plan_campaign_pb.rb +35 -0
  116. data/lib/google/ads/google_ads/v0/resources/keyword_plan_keyword_pb.rb +29 -0
  117. data/lib/google/ads/google_ads/v0/resources/keyword_plan_negative_keyword_pb.rb +28 -0
  118. data/lib/google/ads/google_ads/v0/resources/keyword_plan_pb.rb +35 -0
  119. data/lib/google/ads/google_ads/v0/resources/language_constant_pb.rb +26 -0
  120. data/lib/google/ads/google_ads/v0/resources/payments_account_pb.rb +28 -0
  121. data/lib/google/ads/google_ads/v0/resources/search_term_view_pb.rb +27 -0
  122. data/lib/google/ads/google_ads/v0/resources/user_interest_pb.rb +31 -0
  123. data/lib/google/ads/google_ads/v0/resources/user_list_pb.rb +51 -0
  124. data/lib/google/ads/google_ads/v0/services/ad_group_feed_service_client.rb +268 -0
  125. data/lib/google/ads/google_ads/v0/services/ad_group_feed_service_client_config.json +36 -0
  126. data/lib/google/ads/google_ads/v0/services/ad_group_feed_service_pb.rb +47 -0
  127. data/lib/google/ads/google_ads/v0/services/ad_group_feed_service_services_pb.rb +51 -0
  128. data/lib/google/ads/google_ads/v0/services/campaign_audience_view_service_client.rb +221 -0
  129. data/lib/google/ads/google_ads/v0/services/campaign_audience_view_service_client_config.json +31 -0
  130. data/lib/google/ads/google_ads/v0/services/campaign_audience_view_service_pb.rb +24 -0
  131. data/lib/google/ads/google_ads/v0/services/campaign_audience_view_service_services_pb.rb +48 -0
  132. data/lib/google/ads/google_ads/v0/services/campaign_feed_service_client.rb +268 -0
  133. data/lib/google/ads/google_ads/v0/services/campaign_feed_service_client_config.json +36 -0
  134. data/lib/google/ads/google_ads/v0/services/campaign_feed_service_pb.rb +47 -0
  135. data/lib/google/ads/google_ads/v0/services/campaign_feed_service_services_pb.rb +51 -0
  136. data/lib/google/ads/google_ads/v0/services/carrier_constant_service_client.rb +219 -0
  137. data/lib/google/ads/google_ads/v0/services/carrier_constant_service_client_config.json +31 -0
  138. data/lib/google/ads/google_ads/v0/services/carrier_constant_service_pb.rb +24 -0
  139. data/lib/google/ads/google_ads/v0/services/carrier_constant_service_services_pb.rb +48 -0
  140. data/lib/google/ads/google_ads/v0/services/customer_client_service_client.rb +221 -0
  141. data/lib/google/ads/google_ads/v0/services/customer_client_service_client_config.json +31 -0
  142. data/lib/google/ads/google_ads/v0/services/customer_client_service_pb.rb +24 -0
  143. data/lib/google/ads/google_ads/v0/services/customer_client_service_services_pb.rb +48 -0
  144. data/lib/google/ads/google_ads/v0/services/customer_feed_service_client.rb +268 -0
  145. data/lib/google/ads/google_ads/v0/services/customer_feed_service_client_config.json +36 -0
  146. data/lib/google/ads/google_ads/v0/services/customer_feed_service_pb.rb +47 -0
  147. data/lib/google/ads/google_ads/v0/services/customer_feed_service_services_pb.rb +51 -0
  148. data/lib/google/ads/google_ads/v0/services/customer_service_client.rb +93 -0
  149. data/lib/google/ads/google_ads/v0/services/customer_service_client_config.json +10 -0
  150. data/lib/google/ads/google_ads/v0/services/customer_service_pb.rb +28 -0
  151. data/lib/google/ads/google_ads/v0/services/customer_service_services_pb.rb +4 -0
  152. data/lib/google/ads/google_ads/v0/services/feed_item_service_client.rb +268 -0
  153. data/lib/google/ads/google_ads/v0/services/feed_item_service_client_config.json +36 -0
  154. data/lib/google/ads/google_ads/v0/services/feed_item_service_pb.rb +47 -0
  155. data/lib/google/ads/google_ads/v0/services/feed_item_service_services_pb.rb +51 -0
  156. data/lib/google/ads/google_ads/v0/services/feed_mapping_service_client.rb +268 -0
  157. data/lib/google/ads/google_ads/v0/services/feed_mapping_service_client_config.json +36 -0
  158. data/lib/google/ads/google_ads/v0/services/feed_mapping_service_pb.rb +44 -0
  159. data/lib/google/ads/google_ads/v0/services/feed_mapping_service_services_pb.rb +51 -0
  160. data/lib/google/ads/google_ads/v0/services/feed_service_client.rb +268 -0
  161. data/lib/google/ads/google_ads/v0/services/feed_service_client_config.json +36 -0
  162. data/lib/google/ads/google_ads/v0/services/feed_service_pb.rb +47 -0
  163. data/lib/google/ads/google_ads/v0/services/feed_service_services_pb.rb +51 -0
  164. data/lib/google/ads/google_ads/v0/services/geo_target_constant_service_client.rb +10 -1
  165. data/lib/google/ads/google_ads/v0/services/geo_target_constant_service_pb.rb +1 -0
  166. data/lib/google/ads/google_ads/v0/services/google_ads_service_client.rb +46 -0
  167. data/lib/google/ads/google_ads/v0/services/google_ads_service_client_config.json +5 -0
  168. data/lib/google/ads/google_ads/v0/services/google_ads_service_pb.rb +118 -0
  169. data/lib/google/ads/google_ads/v0/services/google_ads_service_services_pb.rb +2 -0
  170. data/lib/google/ads/google_ads/v0/services/hotel_performance_view_service_client.rb +219 -0
  171. data/lib/google/ads/google_ads/v0/services/hotel_performance_view_service_client_config.json +31 -0
  172. data/lib/google/ads/google_ads/v0/services/hotel_performance_view_service_pb.rb +24 -0
  173. data/lib/google/ads/google_ads/v0/services/hotel_performance_view_service_services_pb.rb +48 -0
  174. data/lib/google/ads/google_ads/v0/services/keyword_plan_ad_group_service_client.rb +268 -0
  175. data/lib/google/ads/google_ads/v0/services/keyword_plan_ad_group_service_client_config.json +36 -0
  176. data/lib/google/ads/google_ads/v0/services/keyword_plan_ad_group_service_pb.rb +47 -0
  177. data/lib/google/ads/google_ads/v0/services/keyword_plan_ad_group_service_services_pb.rb +51 -0
  178. data/lib/google/ads/google_ads/v0/services/keyword_plan_campaign_service_client.rb +268 -0
  179. data/lib/google/ads/google_ads/v0/services/keyword_plan_campaign_service_client_config.json +36 -0
  180. data/lib/google/ads/google_ads/v0/services/keyword_plan_campaign_service_pb.rb +47 -0
  181. data/lib/google/ads/google_ads/v0/services/keyword_plan_campaign_service_services_pb.rb +51 -0
  182. data/lib/google/ads/google_ads/v0/services/keyword_plan_idea_service_client.rb +252 -0
  183. data/lib/google/ads/google_ads/v0/services/keyword_plan_idea_service_client_config.json +31 -0
  184. data/lib/google/ads/google_ads/v0/services/keyword_plan_idea_service_pb.rb +56 -0
  185. data/lib/google/ads/google_ads/v0/services/keyword_plan_idea_service_services_pb.rb +48 -0
  186. data/lib/google/ads/google_ads/v0/services/keyword_plan_keyword_service_client.rb +268 -0
  187. data/lib/google/ads/google_ads/v0/services/keyword_plan_keyword_service_client_config.json +36 -0
  188. data/lib/google/ads/google_ads/v0/services/keyword_plan_keyword_service_pb.rb +47 -0
  189. data/lib/google/ads/google_ads/v0/services/keyword_plan_keyword_service_services_pb.rb +51 -0
  190. data/lib/google/ads/google_ads/v0/services/keyword_plan_negative_keyword_service_client.rb +269 -0
  191. data/lib/google/ads/google_ads/v0/services/keyword_plan_negative_keyword_service_client_config.json +36 -0
  192. data/lib/google/ads/google_ads/v0/services/keyword_plan_negative_keyword_service_pb.rb +47 -0
  193. data/lib/google/ads/google_ads/v0/services/keyword_plan_negative_keyword_service_services_pb.rb +51 -0
  194. data/lib/google/ads/google_ads/v0/services/keyword_plan_service_client.rb +339 -0
  195. data/lib/google/ads/google_ads/v0/services/keyword_plan_service_client_config.json +46 -0
  196. data/lib/google/ads/google_ads/v0/services/keyword_plan_service_pb.rb +95 -0
  197. data/lib/google/ads/google_ads/v0/services/keyword_plan_service_services_pb.rb +55 -0
  198. data/lib/google/ads/google_ads/v0/services/language_constant_service_client.rb +219 -0
  199. data/lib/google/ads/google_ads/v0/services/language_constant_service_client_config.json +31 -0
  200. data/lib/google/ads/google_ads/v0/services/language_constant_service_pb.rb +24 -0
  201. data/lib/google/ads/google_ads/v0/services/language_constant_service_services_pb.rb +48 -0
  202. data/lib/google/ads/google_ads/v0/services/payments_account_service_client.rb +209 -0
  203. data/lib/google/ads/google_ads/v0/services/payments_account_service_client_config.json +31 -0
  204. data/lib/google/ads/google_ads/v0/services/payments_account_service_pb.rb +28 -0
  205. data/lib/google/ads/google_ads/v0/services/payments_account_service_services_pb.rb +51 -0
  206. data/lib/google/ads/google_ads/v0/services/recommendation_service_client.rb +71 -1
  207. data/lib/google/ads/google_ads/v0/services/recommendation_service_client_config.json +5 -0
  208. data/lib/google/ads/google_ads/v0/services/recommendation_service_pb.rb +22 -4
  209. data/lib/google/ads/google_ads/v0/services/recommendation_service_services_pb.rb +2 -0
  210. data/lib/google/ads/google_ads/v0/services/search_term_view_service_client.rb +221 -0
  211. data/lib/google/ads/google_ads/v0/services/search_term_view_service_client_config.json +31 -0
  212. data/lib/google/ads/google_ads/v0/services/search_term_view_service_pb.rb +24 -0
  213. data/lib/google/ads/google_ads/v0/services/search_term_view_service_services_pb.rb +48 -0
  214. data/lib/google/ads/google_ads/v0/services/user_interest_service_client.rb +221 -0
  215. data/lib/google/ads/google_ads/v0/services/user_interest_service_client_config.json +31 -0
  216. data/lib/google/ads/google_ads/v0/services/user_interest_service_pb.rb +24 -0
  217. data/lib/google/ads/google_ads/v0/services/user_interest_service_services_pb.rb +48 -0
  218. data/lib/google/ads/google_ads/v0/services/user_list_service_client.rb +267 -0
  219. data/lib/google/ads/google_ads/v0/services/user_list_service_client_config.json +36 -0
  220. data/lib/google/ads/google_ads/v0/services/user_list_service_pb.rb +47 -0
  221. data/lib/google/ads/google_ads/v0/services/user_list_service_services_pb.rb +50 -0
  222. data/lib/google/ads/google_ads/version.rb +1 -1
  223. metadata +179 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de06597455e3e248f85ad099e1efbce93be06a56c6d628dccf74c81ab42fd2ac
4
- data.tar.gz: 9116fbbe25c7c0a014a4a414c60cc83f668e66494447289c5995e1383c9bba44
3
+ metadata.gz: 1f38c69bf5db98e6462f97b1d97f323a947a3a3df4cbcbf975c84f4c414497e7
4
+ data.tar.gz: 67eccd38a76edc000060290be2dcdf334a0155bc38b1a15fd177e1b38a71d7f0
5
5
  SHA512:
6
- metadata.gz: 1d56aebba6c2e107505230db20a88dfb27791933f61f5a75c8fcce091a5eb47e2c48de7bccaf9cd69c92c200714ec04d73804d20714c8bdf0e68505ea4c1dbdb
7
- data.tar.gz: 82f4e3fe59f9d2c282fd257f4a0300fdf62268889daa4a072e7e0dc4d44b0c4d8d03d9b9f1abd9099044dec6ae30fb41906f36267b896eb297832ccd696e1af3
6
+ metadata.gz: 2ae4cbc61289e33021a980c85c4710313b666ab1301c97ebf6c6c6df9bd6fc5f240d38746406d6753d0ddafceec03e1734278b1705ba5b56eccd618729b56fba
7
+ data.tar.gz: 20263aa659838b1bafd537f13c9877bb733ae662a0298511e7d653f7633832132a459d3f4d02d698e438d6a9e85d08cf7d2ebbad3e3304a68f5894faca9fdfbd
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ 0.7.0:
2
+ - Adding support for Google Ads API v0_6.
3
+ - Adding configuration file support for login_customer_id.
4
+
1
5
  0.6.0:
2
6
  - Adding support for Google Ads API v0_5.
3
7
 
data/google_ads_config.rb CHANGED
@@ -3,8 +3,17 @@
3
3
  # Please fill in the required fields and copy it to your home directory.
4
4
 
5
5
  Google::Ads::GoogleAds::Config.new do |c|
6
+ # These fields are required to make any API call
6
7
  c.client_id = 'INSERT_CLIENT_ID_HERE'
7
8
  c.client_secret = 'INSERT_CLIENT_SECRET_HERE'
8
9
  c.refresh_token = 'INSERT_REFRESH_TOKEN_HERE'
9
10
  c.developer_token = 'INSERT_DEVELOPER_TOKEN_HERE'
11
+
12
+ # These fields are required only in some circumstances
13
+ # Required for manager accounts only: Specify the login customer ID used to
14
+ # authenticate API calls. This will be the customer ID of the authenticated
15
+ # manager account. If you need to use different values for this field, then
16
+ # make sure fetch a new copy of the service after each time you change the
17
+ # value.
18
+ # c.login_customer_id = 'INSERT_LOGIN_CUSTOMER_ID_HERE'
10
19
  end
@@ -24,12 +24,14 @@ module Google
24
24
  attr_accessor :client_id
25
25
  attr_accessor :client_secret
26
26
  attr_accessor :developer_token
27
+ attr_accessor :login_customer_id
27
28
 
28
29
  def initialize(&block)
29
30
  @refresh_token = nil
30
31
  @client_id = nil
31
32
  @client_secret = nil
32
33
  @developer_token = nil
34
+ @login_customer_id = nil
33
35
  yield self if block_given?
34
36
  end
35
37
 
@@ -89,9 +89,21 @@ module Google
89
89
  end
90
90
  end
91
91
 
92
+ headers = {
93
+ :"developer-token" => @config.developer_token
94
+ }
95
+ if @config.login_customer_id
96
+ login_customer_id = @config.login_customer_id
97
+ if !login_customer_id.is_a? Integer || login_customer_id <= 0 ||
98
+ login_customer_id > 9_999_999_999
99
+ raise sprintf('Invalid login_customer_id. Must be an integer ' \
100
+ '0 < x <= 9,999,999,999. Got %s', login_customer_id)
101
+ end
102
+ headers[:"login-customer-id"] = login_customer_id
103
+ end
92
104
  return class_to_return.new(
93
105
  credentials: get_updater_proc(),
94
- metadata: {:"developer-token" => @config.developer_token},
106
+ metadata: headers,
95
107
  exception_transformer: ERROR_TRANSFORMER
96
108
  )
97
109
  end
@@ -63,6 +63,13 @@ module Google
63
63
  )
64
64
  end
65
65
 
66
+ def ad_group_feed(customer_id, ad_group_id, feed_id)
67
+ @proto_lookup_util.service(:AdGroupFeed).ad_group_feed_path(
68
+ customer_id.to_s,
69
+ sprintf('%s_%s', ad_group_id.to_s, feed_id.to_s)
70
+ )
71
+ end
72
+
66
73
  def ad_group(customer_id, ad_group_id)
67
74
  @proto_lookup_util.service(:AdGroup).ad_group_path(
68
75
  customer_id.to_s, ad_group_id.to_s)
@@ -85,6 +92,14 @@ module Google
85
92
  customer_id.to_s, billing_id.to_s)
86
93
  end
87
94
 
95
+ def campaign_audience_view(customer_id, campaign_id, criterion_id)
96
+ @proto_lookup_util.service(:CampaignAudienceView).
97
+ campaign_audience_view_path(
98
+ customer_id.to_s,
99
+ sprintf('%s_%s', campaign_id.to_s, criterion_id.to_s)
100
+ )
101
+ end
102
+
88
103
  def campaign_bid_modifier(customer_id, campaign_bid_modifier_id)
89
104
  @proto_lookup_util.service(:CampaignBidModifier).
90
105
  campaign_bid_modifier_path(customer_id.to_s,
@@ -103,6 +118,13 @@ module Google
103
118
  )
104
119
  end
105
120
 
121
+ def campaign_feed(customer_id, campaign_id, feed_id)
122
+ @proto_lookup_util.service(:CampaignFeed).campaign_feed_path(
123
+ customer_id.to_s,
124
+ sprintf('%s_%s', campaign_id.to_s, feed_id.to_s)
125
+ )
126
+ end
127
+
106
128
  def campaign_group(customer_id, campaign_group_id)
107
129
  @proto_lookup_util.service(:CampaignGroup).campaign_group_path(
108
130
  customer_id.to_s, campaign_group_id.to_s)
@@ -119,6 +141,11 @@ module Google
119
141
  customer_id.to_s, campaign_id.to_s)
120
142
  end
121
143
 
144
+ def carrier_constant(criterion_id)
145
+ @proto_lookup_util.service(:CarrierConstant).carrier_constant_path(
146
+ criterion_id.to_s)
147
+ end
148
+
122
149
  def change_status(customer_id, change_status_id)
123
150
  @proto_lookup_util.service(:ChangeStatus).change_status_path(
124
151
  customer_id.to_s, change_status_id.to_s)
@@ -138,6 +165,16 @@ module Google
138
165
  )
139
166
  end
140
167
 
168
+ def customer_client(customer_id, client_customer_id)
169
+ @proto_lookup_util.service(:CustomerClient).customer_client_path(
170
+ customer_id.to_s, client_customer_id.to_s)
171
+ end
172
+
173
+ def customer_feed(customer_id, feed_id)
174
+ @proto_lookup_util.service(:CustomerFeed).customer_feed_path(
175
+ customer_id.to_s, feed_id.to_s)
176
+ end
177
+
141
178
  def customer_manager_link(
142
179
  customer_id, manager_customer_id, manager_link_id)
143
180
  @proto_lookup_util.service(:CustomerManagerLink).
@@ -159,6 +196,25 @@ module Google
159
196
  )
160
197
  end
161
198
 
199
+ def feed_item(customer_id, feed_id, feed_item_id)
200
+ @proto_lookup_util.service(:FeedItem).feed_item_path(
201
+ customer_id.to_s,
202
+ sprintf('%s_%s', feed_id.to_s, feed_item_id.to_s)
203
+ )
204
+ end
205
+
206
+ def feed_mapping(customer_id, feed_id, feed_mapping_id)
207
+ @proto_lookup_util.service(:FeedMapping).feed_mapping_path(
208
+ customer_id.to_s,
209
+ sprintf('%s_%s', feed_id.to_s, feed_mapping_id.to_s)
210
+ )
211
+ end
212
+
213
+ def feed(customer_id, feed_id)
214
+ @proto_lookup_util.service(:Feed).feed_path(
215
+ customer_id.to_s, feed_id.to_s)
216
+ end
217
+
162
218
  def gender_view(customer_id, ad_group_id, criterion_id)
163
219
  @proto_lookup_util.service(:GenderView).gender_view_path(
164
220
  customer_id.to_s,
@@ -183,6 +239,42 @@ module Google
183
239
  )
184
240
  end
185
241
 
242
+ def hotel_performance_view(customer_id)
243
+ @proto_lookup_util.service(:HotelPerformanceView).
244
+ hotel_performance_view_path(customer_id.to_s)
245
+ end
246
+
247
+ def keyword_plan_ad_group(customer_id, kp_ad_group_id)
248
+ @proto_lookup_util.service(:KeywordPlanAdGroup).
249
+ keyword_plan_ad_group_path(customer_id.to_s, kp_ad_group_id.to_s)
250
+ end
251
+
252
+ def keyword_plan_campaign(customer_id, kp_campaign_id)
253
+ @proto_lookup_util.service(:KeywordPlanCampaign).
254
+ keyword_plan_campaign_path(customer_id.to_s, kp_campaign_id.to_s)
255
+ end
256
+
257
+ def keyword_plan_keyword(customer_id, kp_ad_group_keyword_id)
258
+ @proto_lookup_util.service(:KeywordPlanKeyword).
259
+ keyword_plan_keyword_path(
260
+ customer_id.to_s,
261
+ kp_ad_group_keyword_id.to_s
262
+ )
263
+ end
264
+
265
+ def keyword_plan_negative_keyword(customer_id, kp_negative_keyword_id)
266
+ @proto_lookup_util.service(:KeywordPlanNegativeKeyword).
267
+ keyword_plan_negative_keyword_path(
268
+ customer_id.to_s,
269
+ kp_negative_keyword_id.to_s
270
+ )
271
+ end
272
+
273
+ def keyword_plan(customer_id, kp_plan_id)
274
+ @proto_lookup_util.service(:KeywordPlan).keyword_plan_path(
275
+ customer_id.to_s, kp_plan_id.to_s)
276
+ end
277
+
186
278
  def keyword_view(customer_id, ad_group_id, criterion_id)
187
279
  @proto_lookup_util.service(:KeywordView).keyword_view_path(
188
280
  customer_id.to_s,
@@ -190,6 +282,11 @@ module Google
190
282
  )
191
283
  end
192
284
 
285
+ def language_constant(criterion_id)
286
+ @proto_lookup_util.service(:LanguageConstant).
287
+ language_constant_path(criterion_id.to_s)
288
+ end
289
+
193
290
  def managed_placement_view(customer_id, ad_group_id, criterion_id)
194
291
  @proto_lookup_util.service(:ManagedPlacementView).
195
292
  managed_placement_view_path(
@@ -224,6 +321,14 @@ module Google
224
321
  customer_id.to_s, recommendation_id.to_s)
225
322
  end
226
323
 
324
+ def search_term_view(customer_id, campaign_id, ad_group_id, search_term)
325
+ @proto_lookup_util.service(:SearchTermView).search_term_view_path(
326
+ customer_id.to_s,
327
+ sprintf('%s_%s_%s',
328
+ campaign_id.to_s, ad_group_id.to_s, search_term.to_s)
329
+ )
330
+ end
331
+
227
332
  def shared_criterion(customer_id, shared_set_id, criterion_id)
228
333
  @proto_lookup_util.service(:SharedCriterion).shared_criteria_path(
229
334
  customer_id.to_s,
@@ -248,6 +353,16 @@ module Google
248
353
  )
249
354
  end
250
355
 
356
+ def user_interest(customer_id, user_interest_id)
357
+ @proto_lookup_util.service(:UserInterest).user_interest_path(
358
+ customer_id.to_s, user_interest_id.to_s)
359
+ end
360
+
361
+ def user_list(customer_id, user_list_id)
362
+ @proto_lookup_util.service(:UserList).user_list_path(
363
+ customer_id.to_s, user_list_id.to_s)
364
+ end
365
+
251
366
  def video(customer_id, video_id)
252
367
  @proto_lookup_util.service(:Video).video_path(
253
368
  customer_id.to_s, video_id.to_s)
@@ -58,6 +58,7 @@ module Google
58
58
  AdGroup: ['resources', 'ad_group_pb', 'AdGroup'],
59
59
  AdGroupBidModifier: ['resources', 'ad_group_bid_modifier_pb',
60
60
  'AdGroupBidModifier'],
61
+ AdGroupFeed: ['resources', 'ad_group_feed_pb', 'AdGroupFeed'],
61
62
  Ad: ['resources', 'ad_pb', 'Ad'],
62
63
  AgeRangeView: ['resources', 'age_range_view_pb', 'AgeRangeView'],
63
64
  BiddingStrategy: ['resources', 'bidding_strategy_pb',
@@ -65,11 +66,14 @@ module Google
65
66
  BillingSetup: ['resources', 'billing_setup_pb', 'BillingSetup'],
66
67
  PaymentsAccountInfo: ['resources', 'billing_setup_pb',
67
68
  'BillingSetup::PaymentsAccountInfo'],
69
+ CampaignAudienceView: ['resources', 'campaign_audience_view_pb',
70
+ 'CampaignAudienceView'],
68
71
  CampaignBidModifier: ['resources', 'campaign_bid_modifier_pb',
69
72
  'CampaignBidModifier'],
70
73
  CampaignBudget: ['resources', 'campaign_budget_pb', 'CampaignBudget'],
71
74
  CampaignCriterion: ['resources', 'campaign_criterion_pb',
72
75
  'CampaignCriterion'],
76
+ CampaignFeed: ['resources', 'campaign_feed_pb', 'CampaignFeed'],
73
77
  CampaignGroup: ['resources', 'campaign_group_pb', 'CampaignGroup'],
74
78
  Campaign: ['resources', 'campaign_pb', 'Campaign'],
75
79
  NetworkSettings: ['resources', 'campaign_pb',
@@ -82,6 +86,8 @@ module Google
82
86
  'Campaign::ShoppingSetting'],
83
87
  CampaignSharedSet: ['resources', 'campaign_shared_set_pb',
84
88
  'CampaignSharedSet'],
89
+ CarrierConstant: ['resources', 'carrier_constant_pb',
90
+ 'CarrierConstant'],
85
91
  ChangeStatus: ['resources', 'change_status_pb', 'ChangeStatus'],
86
92
  ConversionAction: ['resources', 'conversion_action_pb',
87
93
  'ConversionAction'],
@@ -91,6 +97,8 @@ module Google
91
97
  'ConversionAction::ValueSettings'],
92
98
  CustomerClientLink: ['resources', 'customer_client_link_pb',
93
99
  'CustomerClientLink'],
100
+ CustomerClient: ['resources', 'customer_client_pb', 'CustomerClient'],
101
+ CustomerFeed: ['resources', 'customer_feed_pb', 'CustomerFeed'],
94
102
  CustomerManagerLink: ['resources', 'customer_manager_link_pb',
95
103
  'CustomerManagerLink'],
96
104
  Customer: ['resources', 'customer_pb', 'Customer'],
@@ -98,6 +106,24 @@ module Google
98
106
  'CallReportingSetting'],
99
107
  DisplayKeywordView: ['resources', 'display_keyword_view_pb',
100
108
  'DisplayKeywordView'],
109
+ FeedItem: ['resources', 'feed_item_pb', 'FeedItem'],
110
+ FeedItemAttributeValue: ['resources', 'feed_item_pb',
111
+ 'FeedItemAttributeValue'],
112
+ FeedMapping: ['resources', 'feed_mapping_pb', 'FeedMapping'],
113
+ AttributeFieldMapping: ['resources', 'feed_mapping_pb',
114
+ 'AttributeFieldMapping'],
115
+ Feed: ['resources', 'feed_pb', 'Feed'],
116
+ PlacesLocationFeedData: ['resources', 'feed_pb',
117
+ 'Feed::PlacesLocationFeedData'],
118
+ OAuthInfo: ['resources', 'feed_pb',
119
+ 'Feed::PlacesLocationFeedData::OAuthInfo'],
120
+ AffiliateLocationFeedData: ['resources', 'feed_pb',
121
+ 'Feed::AffiliateLocationFeedData'],
122
+ FeedAttribute: ['resources', 'feed_pb', 'FeedAttribute'],
123
+ FeedAttributeOperation: ['resources', 'feed_pb',
124
+ 'FeedAttributeOperation'],
125
+ Operator: ['resources', 'feed_pb',
126
+ 'FeedAttributeOperation::Operator'],
101
127
  GenderView: ['resources', 'gender_view_pb', 'GenderView'],
102
128
  GeoTargetConstant: ['resources', 'geo_target_constant_pb',
103
129
  'GeoTargetConstant'],
@@ -105,7 +131,24 @@ module Google
105
131
  'GoogleAdsField'],
106
132
  HotelGroupView: ['resources', 'hotel_group_view_pb',
107
133
  'HotelGroupView'],
134
+ HotelPerformanceView: ['resources', 'hotel_performance_view_pb',
135
+ 'HotelPerformanceView'],
136
+ KeywordPlanAdGroup: ['resources', 'keyword_plan_ad_group_pb',
137
+ 'KeywordPlanAdGroup'],
138
+ KeywordPlanCampaign: ['resources', 'keyword_plan_campaign_pb',
139
+ 'KeywordPlanCampaign'],
140
+ KeywordPlanGeoTarget: ['resources', 'keyword_plan_campaign_pb',
141
+ 'KeywordPlanGeoTarget'],
142
+ KeywordPlanKeyword: ['resources', 'keyword_plan_keyword_pb',
143
+ 'KeywordPlanKeyword'],
144
+ KeywordPlanNegativeKeyword: ['resources',
145
+ 'keyword_plan_negative_keyword_pb', 'KeywordPlanNegativeKeyword'],
146
+ KeywordPlan: ['resources', 'keyword_plan_pb', 'KeywordPlan'],
147
+ KeywordPlanForecastPeriod: ['resources', 'keyword_plan_pb',
148
+ 'KeywordPlanForecastPeriod'],
108
149
  KeywordView: ['resources', 'keyword_view_pb', 'KeywordView'],
150
+ LanguageConstant: ['resources', 'language_constant_pb',
151
+ 'LanguageConstant'],
109
152
  ManagedPlacementView: ['resources', 'managed_placement_view_pb',
110
153
  'ManagedPlacementView'],
111
154
  MediaFile: ['resources', 'media_file_pb', 'MediaFile'],
@@ -113,6 +156,8 @@ module Google
113
156
  MediaBundle: ['resources', 'media_file_pb', 'MediaBundle'],
114
157
  ParentalStatusView: ['resources', 'parental_status_view_pb',
115
158
  'ParentalStatusView'],
159
+ PaymentsAccount: ['resources', 'payments_account_pb',
160
+ 'PaymentsAccount'],
116
161
  ProductGroupView: ['resources', 'product_group_view_pb',
117
162
  'ProductGroupView'],
118
163
  Recommendation: ['resources', 'recommendation_pb', 'Recommendation'],
@@ -143,11 +188,15 @@ module Google
143
188
  'Recommendation::MaximizeClicksOptInRecommendation'],
144
189
  OptimizeAdRotationRecommendation: ['resources', 'recommendation_pb',
145
190
  'Recommendation::OptimizeAdRotationRecommendation'],
191
+ SearchTermView: ['resources', 'search_term_view_pb',
192
+ 'SearchTermView'],
146
193
  SharedCriterion: ['resources', 'shared_criterion_pb',
147
194
  'SharedCriterion'],
148
195
  SharedSet: ['resources', 'shared_set_pb', 'SharedSet'],
149
196
  TopicConstant: ['resources', 'topic_constant_pb', 'TopicConstant'],
150
197
  TopicView: ['resources', 'topic_view_pb', 'TopicView'],
198
+ UserInterest: ['resources', 'user_interest_pb', 'UserInterest'],
199
+ UserList: ['resources', 'user_list_pb', 'UserList'],
151
200
  Video: ['resources', 'video_pb', 'Video'],
152
201
  TextAdInfo: ['common', 'ad_type_infos_pb', 'TextAdInfo'],
153
202
  ExpandedTextAdInfo: ['common', 'ad_type_infos_pb',
@@ -164,6 +213,11 @@ module Google
164
213
  'ShoppingSmartAdInfo'],
165
214
  ShoppingProductAdInfo: ['common', 'ad_type_infos_pb',
166
215
  'ShoppingProductAdInfo'],
216
+ GmailAdInfo: ['common', 'ad_type_infos_pb', 'GmailAdInfo'],
217
+ GmailTeaser: ['common', 'ad_type_infos_pb', 'GmailTeaser'],
218
+ DisplayCallToAction: ['common', 'ad_type_infos_pb',
219
+ 'DisplayCallToAction'],
220
+ ImageAdInfo: ['common', 'ad_type_infos_pb', 'ImageAdInfo'],
167
221
  EnhancedCpc: ['common', 'bidding_pb', 'EnhancedCpc'],
168
222
  ManualCpc: ['common', 'bidding_pb', 'ManualCpc'],
169
223
  ManualCpm: ['common', 'bidding_pb', 'ManualCpm'],
@@ -214,11 +268,38 @@ module Google
214
268
  ParentalStatusInfo: ['common', 'criteria_pb', 'ParentalStatusInfo'],
215
269
  YouTubeVideoInfo: ['common', 'criteria_pb', 'YouTubeVideoInfo'],
216
270
  YouTubeChannelInfo: ['common', 'criteria_pb', 'YouTubeChannelInfo'],
271
+ UserListInfo: ['common', 'criteria_pb', 'UserListInfo'],
217
272
  ProximityInfo: ['common', 'criteria_pb', 'ProximityInfo'],
218
273
  GeoPointInfo: ['common', 'criteria_pb', 'GeoPointInfo'],
219
274
  AddressInfo: ['common', 'criteria_pb', 'AddressInfo'],
220
275
  TopicInfo: ['common', 'criteria_pb', 'TopicInfo'],
276
+ LanguageInfo: ['common', 'criteria_pb', 'LanguageInfo'],
277
+ IpBlockInfo: ['common', 'criteria_pb', 'IpBlockInfo'],
278
+ ContentLabelInfo: ['common', 'criteria_pb', 'ContentLabelInfo'],
279
+ CarrierInfo: ['common', 'criteria_pb', 'CarrierInfo'],
280
+ UserInterestInfo: ['common', 'criteria_pb', 'UserInterestInfo'],
281
+ CriterionCategoryAvailability: ['common',
282
+ 'criterion_category_availability_pb',
283
+ 'CriterionCategoryAvailability'],
284
+ CriterionCategoryChannelAvailability: ['common',
285
+ 'criterion_category_availability_pb',
286
+ 'CriterionCategoryChannelAvailability'],
287
+ CriterionCategoryLocaleAvailability: ['common',
288
+ 'criterion_category_availability_pb',
289
+ 'CriterionCategoryLocaleAvailability'],
221
290
  CustomParameter: ['common', 'custom_parameter_pb', 'CustomParameter'],
291
+ DateRange: ['common', 'dates_pb', 'DateRange'],
292
+ ExplorerAutoOptimizerSetting: ['common',
293
+ 'explorer_auto_optimizer_setting_pb',
294
+ 'ExplorerAutoOptimizerSetting'],
295
+ Price: ['common', 'feed_common_pb', 'Price'],
296
+ FrequencyCapEntry: ['common', 'frequency_cap_pb',
297
+ 'FrequencyCapEntry'],
298
+ FrequencyCapKey: ['common', 'frequency_cap_pb', 'FrequencyCapKey'],
299
+ KeywordPlanHistoricalMetrics: ['common', 'keyword_plan_common_pb',
300
+ 'KeywordPlanHistoricalMetrics'],
301
+ MatchingFunction: ['common', 'matching_function_pb',
302
+ 'MatchingFunction'],
222
303
  Metrics: ['common', 'metrics_pb', 'Metrics'],
223
304
  PolicyViolationKey: ['common', 'policy_pb', 'PolicyViolationKey'],
224
305
  PolicyValidationParameter: ['common', 'policy_pb',
@@ -240,8 +321,14 @@ module Google
240
321
  'PolicyTopicConstraint::ResellerConstraint'],
241
322
  CountryConstraint: ['common', 'policy_pb',
242
323
  'PolicyTopicConstraint::CountryConstraint'],
243
- Value: ['common', 'value_pb', 'Value'],
324
+ RealTimeBiddingSetting: ['common', 'real_time_bidding_setting_pb',
325
+ 'RealTimeBiddingSetting'],
244
326
  TagSnippet: ['common', 'tag_snippet_pb', 'TagSnippet'],
327
+ SimilarUserListInfo: ['common', 'user_lists_pb',
328
+ 'SimilarUserListInfo'],
329
+ CrmBasedUserListInfo: ['common', 'user_lists_pb',
330
+ 'CrmBasedUserListInfo'],
331
+ Value: ['common', 'value_pb', 'Value'],
245
332
  CampaignBudgetParameters: ['services', 'recommendation_service_pb',
246
333
  'ApplyRecommendationOperation::CampaignBudgetParameters'],
247
334
  TextAdParameters: ['services', 'recommendation_service_pb',
@@ -257,12 +344,15 @@ module Google
257
344
  }.freeze
258
345
 
259
346
  ENUMS = {
347
+ AccessReason: ['access_reason_pb', 'AccessReason'],
260
348
  AccountBudgetProposalStatus: ['account_budget_proposal_status_pb',
261
349
  'AccountBudgetProposalStatus'],
262
350
  AccountBudgetProposalType: ['account_budget_proposal_type_pb',
263
351
  'AccountBudgetProposalType'],
264
352
  AccountBudgetStatus: ['account_budget_status_pb',
265
353
  'AccountBudgetStatus'],
354
+ AdCustomizerPlaceholderField: ['ad_customizer_placeholder_field_pb',
355
+ 'AdCustomizerPlaceholderField'],
266
356
  AdGroupAdRotationMode: ['ad_group_ad_rotation_mode_pb',
267
357
  'AdGroupAdRotationMode'],
268
358
  AdGroupAdStatus: ['ad_group_ad_status_pb', 'AdGroupAdStatus'],
@@ -278,7 +368,12 @@ module Google
278
368
  'AdvertisingChannelSubType'],
279
369
  AdvertisingChannelType: ['advertising_channel_type_pb',
280
370
  'AdvertisingChannelType'],
371
+ AffiliateLocationFeedRelationshipType: [
372
+ 'affiliate_location_feed_relationship_type_pb',
373
+ 'AffiliateLocationFeedRelationshipType'],
281
374
  AgeRangeType: ['age_range_type_pb', 'AgeRangeType'],
375
+ AppPlaceholderField: ['app_placeholder_field_pb',
376
+ 'AppPlaceholderField'],
282
377
  AttributionModel: ['attribution_model_pb', 'AttributionModel'],
283
378
  BiddingSource: ['bidding_source_pb', 'BiddingSource'],
284
379
  BiddingStrategyType: ['bidding_strategy_type_pb',
@@ -290,6 +385,10 @@ module Google
290
385
  BudgetStatus: ['budget_status_pb', 'BudgetStatus'],
291
386
  CallConversionReportingState: ['call_conversion_reporting_state_pb',
292
387
  'CallConversionReportingState'],
388
+ CallPlaceholderField: ['call_placeholder_field_pb',
389
+ 'CallPlaceholderField'],
390
+ CalloutPlaceholderField: ['callout_placeholder_field_pb',
391
+ 'CalloutPlaceholderField'],
293
392
  CampaignGroupStatus: ['campaign_group_status_pb',
294
393
  'CampaignGroupStatus'],
295
394
  CampaignServingStatus: ['campaign_serving_status_pb',
@@ -301,6 +400,7 @@ module Google
301
400
  'ChangeStatusOperation'],
302
401
  ChangeStatusResourceType: ['change_status_resource_type_pb',
303
402
  'ChangeStatusResourceType'],
403
+ ContentLabelType: ['content_label_type_pb', 'ContentLabelType'],
304
404
  ConversionActionCategory: ['conversion_action_category_pb',
305
405
  'ConversionActionCategory'],
306
406
  ConversionActionCountingType: ['conversion_action_counting_type_pb',
@@ -309,13 +409,42 @@ module Google
309
409
  'ConversionActionStatus'],
310
410
  ConversionActionType: ['conversion_action_type_pb',
311
411
  'ConversionActionType'],
412
+ CriterionCategoryChannelAvailabilityMode: [
413
+ 'criterion_category_channel_availability_mode_pb',
414
+ 'CriterionCategoryChannelAvailabilityMode'],
415
+ CriterionCategoryLocaleAvailabilityMode: [
416
+ 'criterion_category_locale_availability_mode_pb',
417
+ 'CriterionCategoryLocaleAvailabilityMode'],
418
+ CustomPlaceholderField: ['custom_placeholder_field_pb',
419
+ 'CustomPlaceholderField'],
420
+ CustomerMatchUploadKeyType: ['customer_match_upload_key_type_pb',
421
+ 'CustomerMatchUploadKeyType'],
312
422
  DataDrivenModelStatus: ['data_driven_model_status_pb',
313
423
  'DataDrivenModelStatus'],
314
424
  DayOfWeek: ['day_of_week_pb', 'DayOfWeek'],
315
425
  Device: ['device_pb', 'Device'],
316
426
  DisplayAdFormatSetting: ['display_ad_format_setting_pb',
317
427
  'DisplayAdFormatSetting'],
428
+ EducationPlaceholderField: ['education_placeholder_field_pb',
429
+ 'EducationPlaceholderField'],
430
+ FeedAttributeType: ['feed_attribute_type_pb', 'FeedAttributeType'],
431
+ FeedItemStatus: ['feed_item_status_pb', 'FeedItemStatus'],
432
+ FeedLinkStatus: ['feed_link_status_pb', 'FeedLinkStatus'],
433
+ FeedMappingCriterionType: ['feed_mapping_criterion_type_pb',
434
+ 'FeedMappingCriterionType'],
435
+ FeedMappingStatus: ['feed_mapping_status_pb', 'FeedMappingStatus'],
436
+ FeedOrigin: ['feed_origin_pb', 'FeedOrigin'],
437
+ FeedStatus: ['feed_status_pb', 'FeedStatus'],
438
+ FlightPlaceholderField: ['flight_placeholder_field_pb',
439
+ 'FlightPlaceholderField'],
440
+ FrequencyCapEventType: ['frequency_cap_event_type_pb',
441
+ 'FrequencyCapEventType'],
442
+ FrequencyCapLevel: ['frequency_cap_level_pb', 'FrequencyCapLevel'],
443
+ FrequencyCapTimeUnit: ['frequency_cap_time_unit_pb',
444
+ 'FrequencyCapTimeUnit'],
318
445
  GenderType: ['gender_type_pb', 'GenderType'],
446
+ GeoTargetingRestriction: ['geo_targeting_restriction_pb',
447
+ 'GeoTargetingRestriction'],
319
448
  GeoTargetConstantStatus: ['geo_target_constant_status_pb',
320
449
  'GeoTargetConstantStatus'],
321
450
  GoogleAdsFieldCategory: ['google_ads_field_category_pb',
@@ -324,13 +453,26 @@ module Google
324
453
  'GoogleAdsFieldDataType'],
325
454
  HotelDateSelectionType: ['hotel_date_selection_type_pb',
326
455
  'HotelDateSelectionType'],
456
+ HotelPlaceholderField: ['hotel_placeholder_field_pb',
457
+ 'HotelPlaceholderField'],
327
458
  IncomeRangeType: ['income_range_type_pb', 'IncomeRangeType'],
328
459
  InteractionType: ['interaction_type_pb', 'InteractionType'],
460
+ JobPlaceholderField: ['job_placeholder_field_pb',
461
+ 'JobPlaceholderField'],
329
462
  KeywordMatchType: ['keyword_match_type_pb', 'KeywordMatchType'],
463
+ KeywordPlanCompetitionLevel: ['keyword_plan_competition_level_pb',
464
+ 'KeywordPlanCompetitionLevel'],
465
+ KeywordPlanForecastInterval: ['keyword_plan_forecast_interval_pb',
466
+ 'KeywordPlanForecastInterval'],
467
+ KeywordPlanNetwork: ['keyword_plan_network_pb', 'KeywordPlanNetwork'],
330
468
  ListingCustomAttributeIndex: ['listing_custom_attribute_index_pb',
331
469
  'ListingCustomAttributeIndex'],
332
470
  ListingGroupType: ['listing_group_type_pb', 'ListingGroupType'],
471
+ LocalPlaceholderField: ['local_placeholder_field_pb',
472
+ 'LocalPlaceholderField'],
333
473
  ManagerLinkStatus: ['manager_link_status_pb', 'ManagerLinkStatus'],
474
+ MessagePlaceholderField: ['message_placeholder_field_pb',
475
+ 'MessagePlaceholderField'],
334
476
  MinuteOfHour: ['minute_of_hour_pb', 'MinuteOfHour'],
335
477
  MonthOfYear: ['month_of_year_pb', 'MonthOfYear'],
336
478
  MediaType: ['media_type_pb', 'MediaType'],
@@ -338,6 +480,7 @@ module Google
338
480
  PageOnePromotedStrategyGoal: ['page_one_promoted_strategy_goal_pb',
339
481
  'PageOnePromotedStrategyGoal'],
340
482
  ParentalStatusType: ['parental_status_type_pb', 'ParentalStatusType'],
483
+ PlaceholderType: ['placeholder_type_pb', 'PlaceholderType'],
341
484
  PolicyApprovalStatus: ['policy_approval_status_pb',
342
485
  'PolicyApprovalStatus'],
343
486
  PolicyReviewStatus: ['policy_review_status_pb',
@@ -347,26 +490,58 @@ module Google
347
490
  PolicyTopicEvidenceDestinationMismatchUrlType: [
348
491
  'policy_topic_evidence_destination_mismatch_url_type_pb',
349
492
  'PolicyTopicEvidenceDestinationMismatchUrlType'],
493
+ PreferredContentType: ['preferred_content_type_pb',
494
+ 'PreferredContentType'],
495
+ PricePlaceholderField: ['price_placeholder_field_pb',
496
+ 'PricePlaceholderField'],
350
497
  ProductChannel: ['product_channel_pb', 'ProductChannel'],
351
498
  ProductChannelExclusivity: ['product_channel_exclusivity_pb',
352
499
  'ProductChannelExclusivity'],
353
500
  ProductCondition: ['product_condition_pb', 'ProductCondition'],
354
501
  ProductTypeLevel: ['product_type_level_pb', 'ProductTypeLevel'],
502
+ PromotionPlaceholderField: ['promotion_placeholder_field_pb',
503
+ 'PromotionPlaceholderField'],
355
504
  ProximityRadiusUnits: ['proximity_radius_units_pb',
356
505
  'ProximityRadiusUnits'],
357
506
  QualityScoreBucket: ['quality_score_bucket_pb', 'QualityScoreBucket'],
358
507
  RecommendationType: ['recommendation_type_pb', 'RecommendationType'],
508
+ RealEstatePlaceholderField: ['real_estate_placeholder_field_pb',
509
+ 'RealEstatePlaceholderField'],
510
+ SearchTermMatchType: ['search_term_match_type_pb',
511
+ 'SearchTermMatchType'],
512
+ SearchTermTargetingStatus: ['search_term_targeting_status_pb',
513
+ 'SearchTermTargetingStatus'],
359
514
  SharedSetStatus: ['shared_set_status_pb', 'SharedSetStatus'],
360
515
  SharedSetType: ['shared_set_type_pb', 'SharedSetType'],
516
+ SitelinkPlaceholderField: ['sitelink_placeholder_field_pb',
517
+ 'SitelinkPlaceholderField'],
361
518
  Slot: ['slot_pb', 'Slot'],
362
519
  SpendingLimitType: ['spending_limit_type_pb',
363
520
  'SpendingLimitType'],
521
+ StructuredSnippetPlaceholderField: [
522
+ 'structured_snippet_placeholder_field_pb',
523
+ 'StructuredSnippetPlaceholderField'],
524
+ TargetingDimension: ['targeting_dimension_pb', 'TargetingDimension'],
364
525
  TargetCpaOptInRecommendationGoal: [
365
526
  'target_cpa_opt_in_recommendation_goal_pb',
366
527
  'TargetCpaOptInRecommendationGoal'],
367
528
  TimeType: ['time_type_pb', 'TimeType'],
368
529
  TrackingCodePageFormat: ['tracking_code_page_format_pb', 'TrackingCodePageFormat'],
369
- TrackingCodeType: ['tracking_code_type_pb', 'TrackingCodeType']
530
+ TrackingCodeType: ['tracking_code_type_pb', 'TrackingCodeType'],
531
+ TravelPlaceholderField: ['travel_placeholder_field_pb',
532
+ 'TravelPlaceholderField'],
533
+ UserInterestTaxonomyType: ['user_interest_taxonomy_type_pb',
534
+ 'UserInterestTaxonomyType'],
535
+ UserListAccessStatus: ['user_list_access_status_pb',
536
+ 'UserListAccessStatus'],
537
+ UserListClosingReason: ['user_list_closing_reason_pb',
538
+ 'UserListClosingReason'],
539
+ UserListCrmDataSourceType: ['user_list_crm_data_source_type_pb',
540
+ 'UserListCrmDataSourceType'],
541
+ UserListMembershipStatus: ['user_list_membership_status_pb',
542
+ 'UserListMembershipStatus'],
543
+ UserListSizeRange: ['user_list_size_range_pb', 'UserListSizeRange'],
544
+ UserListType: ['user_list_type_pb', 'UserListType']
370
545
  }.freeze
371
546
 
372
547
  SERVICES = {
@@ -381,6 +556,8 @@ module Google
381
556
  'AdGroupBidModifierServiceClient'],
382
557
  AdGroupCriterion: ['ad_group_criterion_service_client',
383
558
  'AdGroupCriterionServiceClient'],
559
+ AdGroupFeed: ['ad_group_feed_service_client',
560
+ 'AdGroupFeedServiceClient'],
384
561
  AdGroup: ['ad_group_service_client', 'AdGroupServiceClient'],
385
562
  AgeRangeView: ['age_range_view_service_client',
386
563
  'AgeRangeViewServiceClient'],
@@ -388,28 +565,42 @@ module Google
388
565
  'BiddingStrategyServiceClient'],
389
566
  BillingSetup: ['billing_setup_service_client',
390
567
  'BillingSetupServiceClient'],
568
+ CampaignAudienceView: ['campaign_audience_view_service_client',
569
+ 'CampaignAudienceViewServiceClient'],
391
570
  CampaignBidModifier: ['campaign_bid_modifier_service_client',
392
571
  'CampaignBidModifierServiceClient'],
393
572
  CampaignBudget: ['campaign_budget_service_client',
394
573
  'CampaignBudgetServiceClient'],
395
574
  CampaignCriterion: ['campaign_criterion_service_client',
396
575
  'CampaignCriterionServiceClient'],
576
+ CampaignFeed: ['campaign_feed_service_client',
577
+ 'CampaignFeedServiceClient'],
397
578
  CampaignGroup: ['campaign_group_service_client',
398
579
  'CampaignGroupServiceClient'],
399
580
  Campaign: ['campaign_service_client', 'CampaignServiceClient'],
400
581
  CampaignSharedSet: ['campaign_shared_set_service_client',
401
582
  'CampaignSharedSetServiceClient'],
583
+ CarrierConstant: ['carrier_constant_service_client',
584
+ 'CarrierConstantServiceClient'],
402
585
  ChangeStatus: ['change_status_service_client',
403
586
  'ChangeStatusServiceClient'],
404
587
  ConversionAction: ['conversion_action_service_client',
405
588
  'ConversionActionServiceClient'],
406
589
  CustomerClientLink: ['customer_client_link_service_client',
407
590
  'CustomerClientLinkServiceClient'],
591
+ CustomerClient: ['customer_client_service_client',
592
+ 'CustomerClientServiceClient'],
593
+ CustomerFeed: ['customer_feed_service_client',
594
+ 'CustomerFeedServiceClient'],
408
595
  CustomerManagerLink: ['customer_manager_link_service_client',
409
596
  'CustomerManagerLinkServiceClient'],
410
597
  Customer: ['customer_service_client', 'CustomerServiceClient'],
411
598
  DisplayKeywordView: ['display_keyword_view_service_client',
412
599
  'DisplayKeywordViewServiceClient'],
600
+ FeedItem: ['feed_item_service_client', 'FeedItemServiceClient'],
601
+ FeedMapping: ['feed_mapping_service_client',
602
+ 'FeedMappingServiceClient'],
603
+ Feed: ['feed_service_client', 'FeedServiceClient'],
413
604
  GenderView: ['gender_view_service_client', 'GenderViewServiceClient'],
414
605
  GeoTargetConstant: ['geo_target_constant_service_client',
415
606
  'GeoTargetConstantServiceClient'],
@@ -418,23 +609,47 @@ module Google
418
609
  GoogleAds: ['google_ads_service_client', 'GoogleAdsServiceClient'],
419
610
  HotelGroupView: ['hotel_group_view_service_client',
420
611
  'HotelGroupViewServiceClient'],
612
+ HotelPerformanceView: ['hotel_performance_view_service_client',
613
+ 'HotelPerformanceViewServiceClient'],
614
+ KeywordPlanAdGroup: ['keyword_plan_ad_group_service_client',
615
+ 'KeywordPlanAdGroupServiceClient'],
616
+ KeywordPlanCampaign: ['keyword_plan_campaign_service_client',
617
+ 'KeywordPlanCampaignServiceClient'],
618
+ KeywordPlanIdea: ['keyword_plan_idea_service_client',
619
+ 'KeywordPlanIdeaServiceClient'],
620
+ KeywordPlanKeyword: ['keyword_plan_keyword_service_client',
621
+ 'KeywordPlanKeywordServiceClient'],
622
+ KeywordPlanNegativeKeyword: [
623
+ 'keyword_plan_negative_keyword_service_client',
624
+ 'KeywordPlanNegativeKeywordServiceClient'],
625
+ KeywordPlan: ['keyword_plan_service_client',
626
+ 'KeywordPlanServiceClient'],
421
627
  KeywordView: ['keyword_view_service_client',
422
628
  'KeywordViewServiceClient'],
629
+ LanguageConstant: ['language_constant_service_client',
630
+ 'LanguageConstantServiceClient'],
423
631
  ManagedPlacementView: ['managed_placement_view_service_client',
424
632
  'ManagedPlacementViewServiceClient'],
425
633
  MediaFile: ['media_file_service_client', 'MediaFileServiceClient'],
634
+ PaymentsAccount: ['payments_account_service_client',
635
+ 'PaymentsAccountServiceClient'],
426
636
  ParentalStatusView: ['parental_status_view_service_client',
427
637
  'ParentalStatusViewServiceClient'],
428
638
  ProductGroupView: ['product_group_view_service_client',
429
639
  'ProductGroupViewServiceClient'],
430
640
  Recommendation: ['recommendation_service_client',
431
641
  'RecommendationServiceClient'],
642
+ SearchTermView: ['search_term_view_service_client',
643
+ 'SearchTermViewServiceClient'],
432
644
  SharedCriterion: ['shared_criterion_service_client',
433
645
  'SharedCriterionServiceClient'],
434
646
  SharedSet: ['shared_set_service_client', 'SharedSetServiceClient'],
435
647
  TopicConstant: ['topic_constant_service_client',
436
648
  'TopicConstantServiceClient'],
437
649
  TopicView: ['topic_view_service_client', 'TopicViewServiceClient'],
650
+ UserInterest: ['user_interest_service_client',
651
+ 'UserInterestServiceClient'],
652
+ UserList: ['user_list_service_client', 'UserListServiceClient'],
438
653
  Video: ['video_service_client', 'VideoServiceClient']
439
654
  }.freeze
440
655
 
@@ -446,6 +661,7 @@ module Google
446
661
  'AdGroupBidModifierOperation'],
447
662
  AdGroupCriterion: ['ad_group_criterion_service_pb',
448
663
  'AdGroupCriterionOperation'],
664
+ AdGroupFeed: ['ad_group_feed_service_pb', 'AdGroupFeedOperation'],
449
665
  AdGroup: ['ad_group_service_pb', 'AdGroupOperation'],
450
666
  ApplyRecommendation: ['recommendation_service_pb',
451
667
  'ApplyRecommendationOperation'],
@@ -458,17 +674,35 @@ module Google
458
674
  'CampaignBudgetOperation'],
459
675
  CampaignCriterion: ['campaign_criterion_service_pb',
460
676
  'CampaignCriterionOperation'],
677
+ CampaignFeed: ['campaign_feed_service_pb', 'CampaignFeedOperation'],
461
678
  CampaignGroup: ['campaign_group_service_pb',
462
679
  'CampaignGroupOperation'],
463
680
  Campaign: ['campaign_service_pb', 'CampaignOperation'],
464
681
  CampaignSharedSet: ['campaign_shared_set_service_pb',
465
682
  'CampaignSharedSetOperation'],
683
+ CustomerFeed: ['customer_feed_service_pb', 'CustomerFeedOperation'],
684
+ Customer: ['customer_service_pb', 'CustomerOperation'],
466
685
  ConversionAction: ['conversion_action_service_pb',
467
686
  'ConversionActionOperation'],
687
+ FeedItem: ['feed_item_service_pb', 'FeedItemOperation'],
688
+ FeedMapping: ['feed_mapping_service_pb', 'FeedMappingOperation'],
689
+ Feed: ['feed_service_pb', 'FeedOperation'],
690
+ KeywordPlanAdGroup: ['keyword_plan_ad_group_service_pb',
691
+ 'KeywordPlanAdGroupOperation'],
692
+ KeywordPlanCampaign: ['keyword_plan_campaign_service_pb',
693
+ 'KeywordPlanCampaignOperation'],
694
+ KeywordPlanKeyword: ['keyword_plan_keyword_service_pb',
695
+ 'KeywordPlanKeywordOperation'],
696
+ KeywordPlanNegativeKeyword: [
697
+ 'keyword_plan_negative_keyword_service_pb',
698
+ 'KeywordPlanNegativeKeywordOperation'],
699
+ KeywordPlan: ['keyword_plan_service_pb', 'KeywordPlanOperation'],
468
700
  MediaFile: ['media_file_service_pb', 'MediaFileOperation'],
701
+ Mutate: ['google_ads_service_pb', 'MutateOperation'],
469
702
  SharedCriterion: ['shared_criterion_service_pb',
470
703
  'SharedCriterionOperation'],
471
- SharedSet: ['shared_set_service_pb', 'SharedSetOperation']
704
+ SharedSet: ['shared_set_service_pb', 'SharedSetOperation'],
705
+ UserList: ['user_list_service_pb', 'UserListOperation']
472
706
  }.freeze
473
707
 
474
708
  def initialize(version)