google-ads-googleads 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)