facebookads 0.0.1 → 0.2.9

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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +17 -0
  3. data/README.md +222 -0
  4. data/lib/facebook_ads/ad_object.rb +177 -0
  5. data/lib/facebook_ads/ad_objects/ad.rb +215 -0
  6. data/lib/facebook_ads/ad_objects/ad_account.rb +665 -0
  7. data/lib/facebook_ads/ad_objects/ad_account_roas.rb +97 -0
  8. data/lib/facebook_ads/ad_objects/ad_account_targeting_unified.rb +136 -0
  9. data/lib/facebook_ads/ad_objects/ad_account_user.rb +39 -0
  10. data/lib/facebook_ads/ad_objects/ad_activity.rb +123 -0
  11. data/lib/facebook_ads/ad_objects/ad_async_request.rb +66 -0
  12. data/lib/facebook_ads/ad_objects/ad_async_request_set.rb +68 -0
  13. data/lib/facebook_ads/ad_objects/ad_async_request_set_notification_result.rb +38 -0
  14. data/lib/facebook_ads/ad_objects/ad_creative.rb +163 -0
  15. data/lib/facebook_ads/ad_objects/ad_creative_link_data.rb +62 -0
  16. data/lib/facebook_ads/ad_objects/ad_creative_link_data_app_link_spec.rb +40 -0
  17. data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action.rb +75 -0
  18. data/lib/facebook_ads/ad_objects/ad_creative_link_data_call_to_action_value.rb +46 -0
  19. data/lib/facebook_ads/ad_objects/ad_creative_link_data_child_attachment.rb +47 -0
  20. data/lib/facebook_ads/ad_objects/ad_creative_object_story_spec.rb +43 -0
  21. data/lib/facebook_ads/ad_objects/ad_creative_offer_data.rb +44 -0
  22. data/lib/facebook_ads/ad_objects/ad_creative_photo_data.rb +42 -0
  23. data/lib/facebook_ads/ad_objects/ad_creative_place_data.rb +41 -0
  24. data/lib/facebook_ads/ad_objects/ad_creative_text_data.rb +37 -0
  25. data/lib/facebook_ads/ad_objects/ad_creative_video_data.rb +48 -0
  26. data/lib/facebook_ads/ad_objects/ad_image.rb +58 -0
  27. data/lib/facebook_ads/ad_objects/ad_keyword_stats.rb +55 -0
  28. data/lib/facebook_ads/ad_objects/ad_label.rb +57 -0
  29. data/lib/facebook_ads/ad_objects/ad_place_page_set.rb +44 -0
  30. data/lib/facebook_ads/ad_objects/ad_preview.rb +54 -0
  31. data/lib/facebook_ads/ad_objects/ad_promoted_object.rb +64 -0
  32. data/lib/facebook_ads/ad_objects/ad_recommendation.rb +55 -0
  33. data/lib/facebook_ads/ad_objects/ad_recommendation_data.rb +37 -0
  34. data/lib/facebook_ads/ad_objects/ad_report_run.rb +70 -0
  35. data/lib/facebook_ads/ad_objects/ad_set.rb +267 -0
  36. data/lib/facebook_ads/ad_objects/ad_study.rb +69 -0
  37. data/lib/facebook_ads/ad_objects/ad_study_cell.rb +39 -0
  38. data/lib/facebook_ads/ad_objects/ad_study_objective.rb +59 -0
  39. data/lib/facebook_ads/ad_objects/ad_video.rb +25 -0
  40. data/lib/facebook_ads/ad_objects/adgroup_placement_specific_review_feedback.rb +43 -0
  41. data/lib/facebook_ads/ad_objects/adgroup_relevance_score.rb +40 -0
  42. data/lib/facebook_ads/ad_objects/adgroup_review_feedback.rb +38 -0
  43. data/lib/facebook_ads/ad_objects/ads_action_stats.rb +53 -0
  44. data/lib/facebook_ads/ad_objects/ads_data_partner.rb +37 -0
  45. data/lib/facebook_ads/ad_objects/ads_image_crops.rb +42 -0
  46. data/lib/facebook_ads/ad_objects/ads_insights.rb +225 -0
  47. data/lib/facebook_ads/ad_objects/ads_pixel.rb +64 -0
  48. data/lib/facebook_ads/ad_objects/ads_pixel_stats.rb +39 -0
  49. data/lib/facebook_ads/ad_objects/ads_pixel_stats_result.rb +50 -0
  50. data/lib/facebook_ads/ad_objects/agency_client_declaration.rb +48 -0
  51. data/lib/facebook_ads/ad_objects/android_app_link.rb +40 -0
  52. data/lib/facebook_ads/ad_objects/app_links.rb +43 -0
  53. data/lib/facebook_ads/ad_objects/broad_targeting_categories.rb +46 -0
  54. data/lib/facebook_ads/ad_objects/business.rb +242 -0
  55. data/lib/facebook_ads/ad_objects/business_ad_account_request.rb +37 -0
  56. data/lib/facebook_ads/ad_objects/business_page_request.rb +37 -0
  57. data/lib/facebook_ads/ad_objects/campaign.rb +211 -0
  58. data/lib/facebook_ads/ad_objects/conversion_action_query.rb +63 -0
  59. data/lib/facebook_ads/ad_objects/custom_audience.rb +166 -0
  60. data/lib/facebook_ads/ad_objects/custom_audience_ad_account.rb +36 -0
  61. data/lib/facebook_ads/ad_objects/custom_audience_data_source.rb +94 -0
  62. data/lib/facebook_ads/ad_objects/custom_audience_permission.rb +41 -0
  63. data/lib/facebook_ads/ad_objects/custom_audience_prefill_state.rb +39 -0
  64. data/lib/facebook_ads/ad_objects/custom_audience_session.rb +44 -0
  65. data/lib/facebook_ads/ad_objects/custom_audience_status.rb +38 -0
  66. data/lib/facebook_ads/ad_objects/custom_audiences_tos.rb +38 -0
  67. data/lib/facebook_ads/ad_objects/custom_conversion.rb +78 -0
  68. data/lib/facebook_ads/ad_objects/custom_conversion_stats_result.rb +50 -0
  69. data/lib/facebook_ads/ad_objects/day_part.rb +40 -0
  70. data/lib/facebook_ads/ad_objects/delivery_check.rb +40 -0
  71. data/lib/facebook_ads/ad_objects/delivery_check_extra_info.rb +39 -0
  72. data/lib/facebook_ads/ad_objects/delivery_estimate.rb +41 -0
  73. data/lib/facebook_ads/ad_objects/domain.rb +37 -0
  74. data/lib/facebook_ads/ad_objects/event.rb +74 -0
  75. data/lib/facebook_ads/ad_objects/event_source_group.rb +43 -0
  76. data/lib/facebook_ads/ad_objects/external_event_source.rb +38 -0
  77. data/lib/facebook_ads/ad_objects/flexible_targeting.rb +64 -0
  78. data/lib/facebook_ads/ad_objects/funding_source_details.rb +39 -0
  79. data/lib/facebook_ads/ad_objects/funding_source_details_coupon.rb +40 -0
  80. data/lib/facebook_ads/ad_objects/helpers/custom_audience_helpers.rb +170 -0
  81. data/lib/facebook_ads/ad_objects/hotel.rb +61 -0
  82. data/lib/facebook_ads/ad_objects/hotel_room.rb +44 -0
  83. data/lib/facebook_ads/ad_objects/id_name.rb +37 -0
  84. data/lib/facebook_ads/ad_objects/ios_app_link.rb +39 -0
  85. data/lib/facebook_ads/ad_objects/lead.rb +47 -0
  86. data/lib/facebook_ads/ad_objects/lead_gen_qualifier.rb +40 -0
  87. data/lib/facebook_ads/ad_objects/lead_gen_question.rb +40 -0
  88. data/lib/facebook_ads/ad_objects/lead_gen_question_option.rb +38 -0
  89. data/lib/facebook_ads/ad_objects/leadgen_form.rb +70 -0
  90. data/lib/facebook_ads/ad_objects/legacy_business_ad_account_request.rb +38 -0
  91. data/lib/facebook_ads/ad_objects/lookalike_spec.rb +43 -0
  92. data/lib/facebook_ads/ad_objects/minimum_budget.rb +41 -0
  93. data/lib/facebook_ads/ad_objects/offsite_pixel.rb +57 -0
  94. data/lib/facebook_ads/ad_objects/outcome_prediction_point.rb +40 -0
  95. data/lib/facebook_ads/ad_objects/partner_category.rb +51 -0
  96. data/lib/facebook_ads/ad_objects/product_catalog.rb +257 -0
  97. data/lib/facebook_ads/ad_objects/product_catalog_hotel_rooms_batch.rb +50 -0
  98. data/lib/facebook_ads/ad_objects/product_catalog_image_settings.rb +38 -0
  99. data/lib/facebook_ads/ad_objects/product_catalog_image_settings_operation.rb +37 -0
  100. data/lib/facebook_ads/ad_objects/product_catalog_pricing_variables_batch.rb +50 -0
  101. data/lib/facebook_ads/ad_objects/product_feed.rb +88 -0
  102. data/lib/facebook_ads/ad_objects/product_feed_schedule.rb +61 -0
  103. data/lib/facebook_ads/ad_objects/product_feed_upload.rb +48 -0
  104. data/lib/facebook_ads/ad_objects/product_feed_upload_error.rb +49 -0
  105. data/lib/facebook_ads/ad_objects/product_feed_upload_error_sample.rb +37 -0
  106. data/lib/facebook_ads/ad_objects/product_group.rb +98 -0
  107. data/lib/facebook_ads/ad_objects/product_item.rb +147 -0
  108. data/lib/facebook_ads/ad_objects/product_item_commerce_insights.rb +39 -0
  109. data/lib/facebook_ads/ad_objects/product_set.rb +49 -0
  110. data/lib/facebook_ads/ad_objects/product_variant.rb +39 -0
  111. data/lib/facebook_ads/ad_objects/profile_picture_source.rb +52 -0
  112. data/lib/facebook_ads/ad_objects/rate_card.rb +39 -0
  113. data/lib/facebook_ads/ad_objects/reach_estimate.rb +60 -0
  114. data/lib/facebook_ads/ad_objects/reach_frequency_prediction.rb +89 -0
  115. data/lib/facebook_ads/ad_objects/reach_frequency_spec.rb +42 -0
  116. data/lib/facebook_ads/ad_objects/rev_share_policy.rb +38 -0
  117. data/lib/facebook_ads/ad_objects/roas_cohorts_data.rb +41 -0
  118. data/lib/facebook_ads/ad_objects/roas_cohorts_per_cohort_interval_unit.rb +38 -0
  119. data/lib/facebook_ads/ad_objects/targeting.rb +133 -0
  120. data/lib/facebook_ads/ad_objects/targeting_dynamic_rule.rb +44 -0
  121. data/lib/facebook_ads/ad_objects/targeting_geo_location.rb +47 -0
  122. data/lib/facebook_ads/ad_objects/targeting_geo_location_city.rb +43 -0
  123. data/lib/facebook_ads/ad_objects/targeting_geo_location_custom_location.rb +50 -0
  124. data/lib/facebook_ads/ad_objects/targeting_geo_location_electoral_district.rb +40 -0
  125. data/lib/facebook_ads/ad_objects/targeting_geo_location_market.rb +40 -0
  126. data/lib/facebook_ads/ad_objects/targeting_geo_location_place.rb +45 -0
  127. data/lib/facebook_ads/ad_objects/targeting_geo_location_political_district.rb +40 -0
  128. data/lib/facebook_ads/ad_objects/targeting_geo_location_region.rb +39 -0
  129. data/lib/facebook_ads/ad_objects/targeting_geo_location_zip.rb +41 -0
  130. data/lib/facebook_ads/ad_objects/targeting_product_audience_spec.rb +39 -0
  131. data/lib/facebook_ads/ad_objects/targeting_product_audience_sub_spec.rb +38 -0
  132. data/lib/facebook_ads/ad_objects/targeting_sentence_line.rb +38 -0
  133. data/lib/facebook_ads/ad_objects/transaction.rb +56 -0
  134. data/lib/facebook_ads/ad_objects/transaction_currency_amount.rb +39 -0
  135. data/lib/facebook_ads/ad_objects/user.rb +127 -0
  136. data/lib/facebook_ads/ad_objects/user_lead_gen_disclaimer_response.rb +38 -0
  137. data/lib/facebook_ads/ad_objects/user_lead_gen_field_data.rb +38 -0
  138. data/lib/facebook_ads/ad_objects/video_thumbnail.rb +42 -0
  139. data/lib/facebook_ads/ad_objects/web_app_link.rb +38 -0
  140. data/lib/facebook_ads/ad_objects/windows_app_link.rb +40 -0
  141. data/lib/facebook_ads/ad_objects/windows_phone_app_link.rb +39 -0
  142. data/lib/facebook_ads/api_request.rb +123 -0
  143. data/lib/facebook_ads/api_response.rb +47 -0
  144. data/lib/facebook_ads/batch_api/batch.rb +86 -0
  145. data/lib/facebook_ads/batch_api/batch_proxy.rb +67 -0
  146. data/lib/facebook_ads/config.rb +43 -0
  147. data/lib/facebook_ads/edge.rb +184 -0
  148. data/lib/facebook_ads/errors.rb +55 -0
  149. data/lib/facebook_ads/field_types/ad_object.rb +37 -0
  150. data/lib/facebook_ads/field_types/base.rb +33 -0
  151. data/lib/facebook_ads/field_types/boolean.rb +25 -0
  152. data/lib/facebook_ads/field_types/datetime.rb +47 -0
  153. data/lib/facebook_ads/field_types/double.rb +29 -0
  154. data/lib/facebook_ads/field_types/enum.rb +31 -0
  155. data/lib/facebook_ads/field_types/integer.rb +33 -0
  156. data/lib/facebook_ads/field_types/list.rb +57 -0
  157. data/lib/facebook_ads/field_types/object.rb +33 -0
  158. data/lib/facebook_ads/field_types/string_type.rb +34 -0
  159. data/lib/facebook_ads/field_types/upload_file.rb +121 -0
  160. data/lib/facebook_ads/field_types.rb +65 -0
  161. data/lib/facebook_ads/fields.rb +66 -0
  162. data/lib/facebook_ads/helpers/edge_helpers.rb +57 -0
  163. data/lib/facebook_ads/helpers/node_helpers.rb +80 -0
  164. data/lib/facebook_ads/helpers/shortcuts.rb +34 -0
  165. data/lib/facebook_ads/param_set.rb +74 -0
  166. data/lib/facebook_ads/ruby2patch.rb +27 -0
  167. data/lib/facebook_ads/session.rb +99 -0
  168. data/lib/facebook_ads/utils/utils.rb +29 -0
  169. data/lib/facebook_ads/version.rb +24 -0
  170. data/lib/facebook_ads/videos/video_io.rb +25 -0
  171. data/lib/facebook_ads/videos/video_request.rb +42 -0
  172. data/lib/facebook_ads.rb +72 -0
  173. metadata +337 -13
  174. data/lib/facebookads.rb +0 -5
@@ -0,0 +1,41 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ # FB:AUTOGEN
20
+
21
+ module FacebookAds
22
+ # This class is auto-genereated.
23
+
24
+ # For any issues or feature requests related to this class, please let us know
25
+ # on github and we'll fix in our codegen framework. We'll not be able to accept
26
+ # pull request for this class.
27
+
28
+ class MinimumBudget < AdObject
29
+
30
+ field :currency, 'string'
31
+ field :min_daily_budget_high_freq, 'int'
32
+ field :min_daily_budget_imp, 'int'
33
+ field :min_daily_budget_low_freq, 'int'
34
+ field :min_daily_budget_video_views, 'int'
35
+ has_no_id
36
+ has_no_get
37
+ has_no_post
38
+ has_no_delete
39
+
40
+ end
41
+ end
@@ -0,0 +1,57 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ # FB:AUTOGEN
20
+
21
+ module FacebookAds
22
+ # This class is auto-genereated.
23
+
24
+ # For any issues or feature requests related to this class, please let us know
25
+ # on github and we'll fix in our codegen framework. We'll not be able to accept
26
+ # pull request for this class.
27
+
28
+ class OffsitePixel < AdObject
29
+ TAG = [
30
+ "CHECKOUT",
31
+ "REGISTRATION",
32
+ "LEAD",
33
+ "KEY_PAGE_VIEW",
34
+ "ADD_TO_CART",
35
+ "OTHER",
36
+ ]
37
+
38
+
39
+ field :creator, 'string'
40
+ field :id, 'string'
41
+ field :js_pixel, 'string'
42
+ field :last_firing_time, 'datetime'
43
+ field :name, 'string'
44
+ field :tag, 'string'
45
+
46
+ has_edge :adaccounts do |edge|
47
+ edge.delete do |api|
48
+ api.has_param :adaccounts, { list: 'string' }
49
+ end
50
+ edge.get 'AdAccount'
51
+ edge.post 'AdAccount' do |api|
52
+ api.has_param :adaccounts, { list: 'string' }
53
+ end
54
+ end
55
+
56
+ end
57
+ end
@@ -0,0 +1,40 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ # FB:AUTOGEN
20
+
21
+ module FacebookAds
22
+ # This class is auto-genereated.
23
+
24
+ # For any issues or feature requests related to this class, please let us know
25
+ # on github and we'll fix in our codegen framework. We'll not be able to accept
26
+ # pull request for this class.
27
+
28
+ class OutcomePredictionPoint < AdObject
29
+
30
+ field :actions, 'double'
31
+ field :impressions, 'double'
32
+ field :reach, 'double'
33
+ field :spend, 'int'
34
+ has_no_id
35
+ has_no_get
36
+ has_no_post
37
+ has_no_delete
38
+
39
+ end
40
+ end
@@ -0,0 +1,51 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ # FB:AUTOGEN
20
+
21
+ module FacebookAds
22
+ # This class is auto-genereated.
23
+
24
+ # For any issues or feature requests related to this class, please let us know
25
+ # on github and we'll fix in our codegen framework. We'll not be able to accept
26
+ # pull request for this class.
27
+
28
+ class PartnerCategory < AdObject
29
+ PRIVATE_OR_PUBLIC = [
30
+ "PRIVATE",
31
+ "PUBLIC",
32
+ ]
33
+
34
+
35
+ field :approximate_count, 'int'
36
+ field :country, 'string'
37
+ field :description, 'string'
38
+ field :details, 'string'
39
+ field :id, 'string'
40
+ field :is_private, 'bool'
41
+ field :name, 'string'
42
+ field :parent_category, 'string'
43
+ field :source, 'string'
44
+ field :status, 'string'
45
+ field :targeting_type, 'string'
46
+ has_no_get
47
+ has_no_post
48
+ has_no_delete
49
+
50
+ end
51
+ end
@@ -0,0 +1,257 @@
1
+ # Copyright (c) 2017-present, Facebook, Inc. All rights reserved.
2
+ #
3
+ # You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
4
+ # copy, modify, and distribute this software in source code or binary form for use
5
+ # in connection with the web services and APIs provided by Facebook.
6
+ #
7
+ # As with any software that integrates with the Facebook platform, your use of
8
+ # this software is subject to the Facebook Platform Policy
9
+ # [http://developers.facebook.com/policy/]. This copyright notice shall be
10
+ # included in all copies or substantial portions of the software.
11
+ #
12
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
14
+ # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
15
+ # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
16
+ # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
17
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
18
+
19
+ # FB:AUTOGEN
20
+
21
+ module FacebookAds
22
+ # This class is auto-genereated.
23
+
24
+ # For any issues or feature requests related to this class, please let us know
25
+ # on github and we'll fix in our codegen framework. We'll not be able to accept
26
+ # pull request for this class.
27
+
28
+ class ProductCatalog < AdObject
29
+ VERTICAL = [
30
+ "commerce",
31
+ "destinations",
32
+ "flights",
33
+ "hotels",
34
+ ]
35
+
36
+
37
+ field :business, 'Business'
38
+ field :da_display_settings, 'ProductCatalogImageSettings'
39
+ field :default_image_url, 'string'
40
+ field :fallback_image_url, { list: 'string' }
41
+ field :feed_count, 'int'
42
+ field :id, 'string'
43
+ field :image_padding_landscape, 'bool'
44
+ field :image_padding_square, 'bool'
45
+ field :name, 'string'
46
+ field :product_count, 'int'
47
+ field :vertical, 'string'
48
+
49
+ has_edge :agencies do |edge|
50
+ edge.get 'Business'
51
+ end
52
+
53
+ has_edge :destinations do |edge|
54
+ edge.get do |api|
55
+ api.has_param :bulk_pagination, 'bool'
56
+ api.has_param :filter, 'object'
57
+ end
58
+ end
59
+
60
+ has_edge :external_event_sources do |edge|
61
+ edge.delete do |api|
62
+ api.has_param :external_event_sources, { list: 'string' }
63
+ end
64
+ edge.get 'ExternalEventSource'
65
+ edge.post 'ExternalEventSource' do |api|
66
+ api.has_param :external_event_sources, { list: 'string' }
67
+ end
68
+ end
69
+
70
+ has_edge :flights do |edge|
71
+ edge.get do |api|
72
+ api.has_param :bulk_pagination, 'bool'
73
+ api.has_param :filter, 'object'
74
+ end
75
+ end
76
+
77
+ has_edge :hotel_rooms_batch do |edge|
78
+ edge.get 'ProductCatalogHotelRoomsBatch' do |api|
79
+ api.has_param :handle, 'string'
80
+ end
81
+ edge.post 'ProductCatalogHotelRoomsBatch' do |api|
82
+ api.has_param :file, 'file'
83
+ api.has_param :password, 'string'
84
+ api.has_param :standard, { enum: -> { ProductCatalogHotelRoomsBatch::STANDARD }}
85
+ api.has_param :update_only, 'bool'
86
+ api.has_param :url, 'string'
87
+ api.has_param :username, 'string'
88
+ end
89
+ end
90
+
91
+ has_edge :hotels do |edge|
92
+ edge.get 'Hotel' do |api|
93
+ api.has_param :bulk_pagination, 'bool'
94
+ api.has_param :filter, 'object'
95
+ end
96
+ edge.post 'Hotel' do |api|
97
+ api.has_param :address, 'object'
98
+ api.has_param :applinks, 'object'
99
+ api.has_param :brand, 'string'
100
+ api.has_param :description, 'string'
101
+ api.has_param :guest_ratings, { list: 'object' }
102
+ api.has_param :hotel_id, 'string'
103
+ api.has_param :images, { list: 'object' }
104
+ api.has_param :name, 'string'
105
+ api.has_param :phone, 'string'
106
+ api.has_param :star_rating, 'double'
107
+ api.has_param :url, 'string'
108
+ end
109
+ end
110
+
111
+ has_edge :pricing_variables_batch do |edge|
112
+ edge.get 'ProductCatalogPricingVariablesBatch' do |api|
113
+ api.has_param :handle, 'string'
114
+ end
115
+ edge.post 'ProductCatalogPricingVariablesBatch' do |api|
116
+ api.has_param :file, 'file'
117
+ api.has_param :password, 'string'
118
+ api.has_param :standard, { enum: -> { ProductCatalogPricingVariablesBatch::STANDARD }}
119
+ api.has_param :update_only, 'bool'
120
+ api.has_param :url, 'string'
121
+ api.has_param :username, 'string'
122
+ end
123
+ end
124
+
125
+ has_edge :product_feeds do |edge|
126
+ edge.get 'ProductFeed'
127
+ edge.post 'ProductFeed' do |api|
128
+ api.has_param :country, 'string'
129
+ api.has_param :default_currency, 'string'
130
+ api.has_param :deletion_enabled, 'bool'
131
+ api.has_param :delimiter, { enum: -> { ProductFeed::DELIMITER }}
132
+ api.has_param :encoding, { enum: -> { ProductFeed::ENCODING }}
133
+ api.has_param :file_name, 'string'
134
+ api.has_param :name, 'string'
135
+ api.has_param :quoted_fields_mode, { enum: -> { ProductFeed::QUOTED_FIELDS_MODE }}
136
+ api.has_param :schedule, 'string'
137
+ end
138
+ end
139
+
140
+ has_edge :product_groups do |edge|
141
+ edge.get 'ProductGroup'
142
+ edge.post 'ProductGroup' do |api|
143
+ api.has_param :retailer_id, 'string'
144
+ api.has_param :variants, { list: 'object' }
145
+ end
146
+ end
147
+
148
+ has_edge :product_sets do |edge|
149
+ edge.get 'ProductSet' do |api|
150
+ api.has_param :ancestor_id, 'string'
151
+ api.has_param :has_children, 'bool'
152
+ api.has_param :parent_id, 'string'
153
+ api.has_param :retailer_id, 'string'
154
+ end
155
+ edge.post 'ProductSet' do |api|
156
+ api.has_param :filter, 'object'
157
+ api.has_param :name, 'string'
158
+ end
159
+ end
160
+
161
+ has_edge :product_sets_batch do |edge|
162
+ edge.get do |api|
163
+ api.has_param :handle, 'string'
164
+ end
165
+ end
166
+
167
+ has_edge :products do |edge|
168
+ edge.get 'ProductItem' do |api|
169
+ api.has_param :bulk_pagination, 'bool'
170
+ api.has_param :filter, 'object'
171
+ end
172
+ edge.post 'ProductItem' do |api|
173
+ api.has_param :additional_image_urls, { list: 'string' }
174
+ api.has_param :android_app_name, 'string'
175
+ api.has_param :android_class, 'string'
176
+ api.has_param :android_package, 'string'
177
+ api.has_param :android_url, 'string'
178
+ api.has_param :availability, { enum: -> { ProductItem::AVAILABILITY }}
179
+ api.has_param :brand, 'string'
180
+ api.has_param :category, 'string'
181
+ api.has_param :checkout_url, 'string'
182
+ api.has_param :color, 'string'
183
+ api.has_param :condition, { enum: -> { ProductItem::CONDITION }}
184
+ api.has_param :currency, 'string'
185
+ api.has_param :custom_data, 'hash'
186
+ api.has_param :custom_label_0, 'string'
187
+ api.has_param :custom_label_1, 'string'
188
+ api.has_param :custom_label_2, 'string'
189
+ api.has_param :custom_label_3, 'string'
190
+ api.has_param :custom_label_4, 'string'
191
+ api.has_param :description, 'string'
192
+ api.has_param :expiration_date, 'string'
193
+ api.has_param :gender, { enum: -> { ProductItem::GENDER }}
194
+ api.has_param :gtin, 'string'
195
+ api.has_param :image_url, 'string'
196
+ api.has_param :inventory, 'int'
197
+ api.has_param :ios_app_name, 'string'
198
+ api.has_param :ios_app_store_id, 'int'
199
+ api.has_param :ios_url, 'string'
200
+ api.has_param :ipad_app_name, 'string'
201
+ api.has_param :ipad_app_store_id, 'int'
202
+ api.has_param :ipad_url, 'string'
203
+ api.has_param :iphone_app_name, 'string'
204
+ api.has_param :iphone_app_store_id, 'int'
205
+ api.has_param :iphone_url, 'string'
206
+ api.has_param :manufacturer_part_number, 'string'
207
+ api.has_param :material, 'string'
208
+ api.has_param :name, 'string'
209
+ api.has_param :ordering_index, 'int'
210
+ api.has_param :pattern, 'string'
211
+ api.has_param :price, 'int'
212
+ api.has_param :product_type, 'string'
213
+ api.has_param :retailer_id, 'string'
214
+ api.has_param :retailer_product_group_id, 'string'
215
+ api.has_param :sale_price, 'int'
216
+ api.has_param :sale_price_end_date, 'datetime'
217
+ api.has_param :sale_price_start_date, 'datetime'
218
+ api.has_param :short_description, 'string'
219
+ api.has_param :size, 'string'
220
+ api.has_param :start_date, 'string'
221
+ api.has_param :url, 'string'
222
+ api.has_param :visibility, { enum: -> { ProductItem::VISIBILITY }}
223
+ api.has_param :windows_phone_app_id, 'int'
224
+ api.has_param :windows_phone_app_name, 'string'
225
+ api.has_param :windows_phone_url, 'string'
226
+ end
227
+ end
228
+
229
+ has_edge :videos do |edge|
230
+ edge.post do |api|
231
+ api.has_param :content_category, { enum: %w{BEAUTY_FASHION BUSINESS CARS_TRUCKS COMEDY CUTE_ANIMALS ENTERTAINMENT FAMILY FOOD_HEALTH HOME LIFESTYLE MUSIC NEWS POLITICS SCIENCE SPORTS TECHNOLOGY VIDEO_GAMING OTHER }}
232
+ api.has_param :description, 'string'
233
+ api.has_param :embeddable, 'bool'
234
+ api.has_param :file_size, 'int'
235
+ api.has_param :file_url, 'string'
236
+ api.has_param :fov, 'int'
237
+ api.has_param :initial_heading, 'int'
238
+ api.has_param :initial_pitch, 'int'
239
+ api.has_param :original_projection_type, { enum: %w{equirectangular cubemap }}
240
+ api.has_param :referenced_sticker_id, 'string'
241
+ api.has_param :replace_video_id, 'string'
242
+ api.has_param :slideshow_spec, 'hash'
243
+ api.has_param :source, 'string'
244
+ api.has_param :spherical, 'bool'
245
+ api.has_param :start_offset, 'int'
246
+ api.has_param :swap_mode, { enum: %w{replace }}
247
+ api.has_param :thumb, 'file'
248
+ api.has_param :title, 'string'
249
+ api.has_param :unpublished_content_type, { enum: %w{SCHEDULED DRAFT ADS_POST }}
250
+ api.has_param :upload_phase, { enum: %w{start transfer finish cancel }}
251
+ api.has_param :upload_session_id, 'string'
252
+ api.has_param :video_file_chunk, 'string'
253
+ end
254
+ end
255
+
256
+ end
257
+ end