diff --git a/lib/facebook_ads/ad_objects/ad_account.rb b/lib/facebook_ads/ad_objects/ad_account.rb index ba2e6716..5e158d33 100644 --- a/lib/facebook_ads/ad_objects/ad_account.rb +++ b/lib/facebook_ads/ad_objects/ad_account.rb @@ -26,24 +26,16 @@ module FacebookAds # pull request for this class. class AdAccount < AdObject - PERMITTED_ROLES = [ - "ADMIN", - "GENERAL_USER", - "REPORTS_ONLY", - "INSTAGRAM_ADVERTISER", - "INSTAGRAM_MANAGER", - "CREATIVE", - "FB_EMPLOYEE_DSO_ADVERTISER", + PERMITTED_TASKS = [ + "MANAGE", + "ADVERTISE", + "ANALYZE", ] - ROLE = [ - "ADMIN", - "GENERAL_USER", - "REPORTS_ONLY", - "INSTAGRAM_ADVERTISER", - "INSTAGRAM_MANAGER", - "CREATIVE", - "FB_EMPLOYEE_DSO_ADVERTISER", + TASKS = [ + "MANAGE", + "ADVERTISE", + "ANALYZE", ] SUBTYPE = [ @@ -109,6 +101,7 @@ class AdAccount < AdObject field :offsite_pixels_tos_accepted, 'bool' field :owner, 'string' field :partner, 'string' + field :rate_limit_reset_time, 'string' field :rf_spec, 'ReachFrequencySpec' field :show_checkout_experience, 'bool' field :spend_cap, 'string' @@ -402,7 +395,7 @@ class AdAccount < AdObject end edge.post 'AdAccount' do |api| api.has_param :business, 'string' - api.has_param :permitted_roles, { list: { enum: -> { AdAccount::PERMITTED_ROLES }} } + api.has_param :permitted_tasks, { list: { enum: -> { AdAccount::PERMITTED_TASKS }} } end end @@ -418,7 +411,7 @@ class AdAccount < AdObject api.has_param :business, 'string' end edge.post 'AdAccount' do |api| - api.has_param :role, { enum: -> { AdAccount::ROLE }} + api.has_param :tasks, { list: { enum: -> { AdAccount::TASKS }} } api.has_param :user, 'int' end end @@ -645,16 +638,6 @@ class AdAccount < AdObject edge.get 'AdsDataPartner' end - has_edge :pending_users do |edge| - edge.delete do |api| - api.has_param :request_id, 'int' - end - edge.post 'AdAccount' do |api| - api.has_param :request_id, 'int' - api.has_param :role, { enum: -> { AdAccount::ROLE }} - end - end - has_edge :product_audiences do |edge| edge.post 'CustomAudience' do |api| api.has_param :associated_audience_id, 'int' diff --git a/lib/facebook_ads/ad_objects/ad_account_creation_request.rb b/lib/facebook_ads/ad_objects/ad_account_creation_request.rb index f8b7213d..6fad3c41 100644 --- a/lib/facebook_ads/ad_objects/ad_account_creation_request.rb +++ b/lib/facebook_ads/ad_objects/ad_account_creation_request.rb @@ -35,7 +35,9 @@ class AdAccountCreationRequest < AdObject "APPAREL_AND_ACCESSORIES", "ARTS", "AUCTIONS", + "AUTO_AGENCY", "AUTO_RENTAL", + "AUTOMOTIVE_MANUFACTURER", "B2B", "B2B_MANUFACTURING", "BEAUTY_AND_PERSONAL_CARE", @@ -57,6 +59,7 @@ class AdAccountCreationRequest < AdObject "CVB_CONVENTION_AND_VISITORS_BUREAU", "DAILYDEALS", "DATING", + "DEALERSHIP", "DEPARTMENT_STORE", "DESKTOP_SOFTWARE", "DIGITAL_ADVERTISING_AND_MARKETING_OR_UNTAGGED_AGENCIES", @@ -80,11 +83,13 @@ class AdAccountCreationRequest < AdObject "HOME_SERVICE", "HOTEL_AND_ACCOMODATION", "HOUSEHOLD_GOODS", + "INDUSTRIAL_AND_FARM_VEHICLE", "INSURANCE", "INVESTMENT_BANK_AND_BROKERAGE", "MEDIA", "MOBILE_AND_SOCIAL", "MOBILE_APPS", + "MOTORCYCLES", "MOVIES", "MUSEUMS_AND_PARKS_AND_LIBRARIES", "MUSIC_AND_RADIO", @@ -93,6 +98,7 @@ class AdAccountCreationRequest < AdObject "OFFICE", "OIL_AND_GAS_AND_CONSUMABLE_FUEL", "ONLINE_OR_SOFTWARE", + "PARTS_AND_SERVICE", "PET", "PET_RETAIL", "PHARMACEUTICAL_OR_HEALTH", @@ -101,6 +107,7 @@ class AdAccountCreationRequest < AdObject "PR", "PUBLISHING_INTERNET", "RAILROADS", + "RECREATIONAL", "REAL_ESTATE", "REAL_MONEY_OR_SKILLED_GAMING", "RELIGIOUS", @@ -145,6 +152,7 @@ class AdAccountCreationRequest < AdObject VERTICAL = [ "ADVERTISING_AND_MARKETING", "AUTO_AGENCY", + "AUTOMOTIVE", "CONSUMER_PACKAGED_GOODS", "CPG_AND_BEVERAGE", "ECOMMERCE", diff --git a/lib/facebook_ads/ad_objects/ad_account_user.rb b/lib/facebook_ads/ad_objects/ad_account_user.rb index dbba54e5..f09b13bb 100644 --- a/lib/facebook_ads/ad_objects/ad_account_user.rb +++ b/lib/facebook_ads/ad_objects/ad_account_user.rb @@ -29,8 +29,7 @@ class AdAccountUser < AdObject field :id, 'string' field :name, 'string' - field :permissions, { list: 'int' } - field :role, 'int' + field :tasks, { list: 'string' } has_no_get has_no_post has_no_delete diff --git a/lib/facebook_ads/ad_objects/ad_activity.rb b/lib/facebook_ads/ad_objects/ad_activity.rb index dde67522..0fac1670 100644 --- a/lib/facebook_ads/ad_objects/ad_activity.rb +++ b/lib/facebook_ads/ad_objects/ad_activity.rb @@ -118,6 +118,7 @@ class AdActivity < AdObject field :extra_data, 'string' field :object_id, 'string' field :object_name, 'string' + field :object_type, 'string' field :translated_event_type, 'string' has_no_id has_no_get diff --git a/lib/facebook_ads/ad_objects/ads_insights.rb b/lib/facebook_ads/ad_objects/ads_insights.rb index 77225e45..0a002c7e 100644 --- a/lib/facebook_ads/ad_objects/ads_insights.rb +++ b/lib/facebook_ads/ad_objects/ads_insights.rb @@ -150,7 +150,6 @@ class AdsInsights < AdObject field :adset_id, 'string' field :adset_name, 'string' field :buying_type, 'string' - field :call_to_action_clicks, 'string' field :campaign_id, 'string' field :campaign_name, 'string' field :canvas_avg_view_percent, 'string' @@ -162,7 +161,6 @@ class AdsInsights < AdObject field :cost_per_inline_link_click, 'string' field :cost_per_inline_post_engagement, 'string' field :cost_per_outbound_click, { list: 'AdsActionStats' } - field :cost_per_total_action, 'string' field :cost_per_unique_action_type, { list: 'AdsActionStats' } field :cost_per_unique_click, 'string' field :cost_per_unique_inline_link_click, 'string' @@ -187,14 +185,10 @@ class AdsInsights < AdObject field :place_page_name, 'string' field :reach, 'string' field :relevance_score, 'AdgroupRelevanceScore' - field :social_clicks, 'string' field :social_impressions, 'string' - field :social_reach, 'string' field :social_spend, 'string' field :spend, 'string' field :total_action_value, 'string' - field :total_actions, 'string' - field :total_unique_actions, 'string' field :unique_actions, { list: 'AdsActionStats' } field :unique_clicks, 'string' field :unique_ctr, 'string' @@ -203,7 +197,6 @@ class AdsInsights < AdObject field :unique_link_clicks_ctr, 'string' field :unique_outbound_clicks, { list: 'AdsActionStats' } field :unique_outbound_clicks_ctr, { list: 'AdsActionStats' } - field :unique_social_clicks, 'string' field :video_10_sec_watched_actions, { list: 'AdsActionStats' } field :video_30_sec_watched_actions, { list: 'AdsActionStats' } field :video_avg_percent_watched_actions, { list: 'AdsActionStats' } diff --git a/lib/facebook_ads/ad_objects/business.rb b/lib/facebook_ads/ad_objects/business.rb index e4559ebc..727bae4e 100644 --- a/lib/facebook_ads/ad_objects/business.rb +++ b/lib/facebook_ads/ad_objects/business.rb @@ -273,7 +273,7 @@ class Business < AdObject edge.get 'AdAccount' edge.post 'AdAccount' do |api| api.has_param :adaccount_id, 'string' - api.has_param :permitted_roles, { list: { enum: -> { AdAccount::PERMITTED_ROLES }} } + api.has_param :permitted_tasks, { list: { enum: -> { AdAccount::PERMITTED_TASKS }} } end end diff --git a/lib/facebook_ads/ad_objects/custom_audience.rb b/lib/facebook_ads/ad_objects/custom_audience.rb index f25edbf3..9cadd3b7 100644 --- a/lib/facebook_ads/ad_objects/custom_audience.rb +++ b/lib/facebook_ads/ad_objects/custom_audience.rb @@ -36,12 +36,12 @@ class CustomAudience < AdObject ] CONTENT_TYPE = [ - "AUTO_OFFER", "DESTINATION", "FLIGHT", "HOME_LISTING", "HOTEL", "MEDIA_TITLE", + "PRODUCT", "VEHICLE", "VEHICLE_OFFER", ] @@ -70,7 +70,6 @@ class CustomAudience < AdObject ] FIELDS = [ - "id", "account_id", "approximate_count", "customer_file_source", @@ -78,6 +77,7 @@ class CustomAudience < AdObject "delivery_status", "description", "external_event_source", + "id", "is_value_based", "lookalike_audience_ids", "lookalike_spec", diff --git a/lib/facebook_ads/ad_objects/lead_gen_data_draft.rb b/lib/facebook_ads/ad_objects/lead_gen_data_draft.rb index 5da41ecc..3861580f 100644 --- a/lib/facebook_ads/ad_objects/lead_gen_data_draft.rb +++ b/lib/facebook_ads/ad_objects/lead_gen_data_draft.rb @@ -88,6 +88,7 @@ class LeadGenDataDraft < AdObject field :questions, { list: 'LeadGenDraftQuestion' } field :status, 'string' field :thank_you_page, 'object' + field :tracking_parameters, { list: 'object' } has_no_delete end diff --git a/lib/facebook_ads/ad_objects/leadgen_form.rb b/lib/facebook_ads/ad_objects/leadgen_form.rb index 398e7479..79cccf1c 100644 --- a/lib/facebook_ads/ad_objects/leadgen_form.rb +++ b/lib/facebook_ads/ad_objects/leadgen_form.rb @@ -97,6 +97,7 @@ class LeadgenForm < AdObject field :status, 'string' field :tcpa_compliance, 'bool' field :thank_you_page, 'object' + field :tracking_parameters, { list: 'object' } has_edge :leads do |edge| edge.get 'Lead' diff --git a/lib/facebook_ads/ad_objects/live_video.rb b/lib/facebook_ads/ad_objects/live_video.rb index 22b3726c..cc539e9b 100644 --- a/lib/facebook_ads/ad_objects/live_video.rb +++ b/lib/facebook_ads/ad_objects/live_video.rb @@ -63,6 +63,11 @@ class LiveVideo < AdObject "CUBEMAP", ] + SOURCE = [ + "target", + "owner", + ] + SPATIAL_AUDIO_FORMAT = [ "ambiX_4", ] @@ -73,11 +78,6 @@ class LiveVideo < AdObject "TOP_BOTTOM", ] - TYPE = [ - "tagged", - "uploaded", - ] - field :ad_break_config, 'object' field :ad_break_failure_reason, 'string' diff --git a/lib/facebook_ads/ad_objects/page.rb b/lib/facebook_ads/ad_objects/page.rb index 55ae97de..875dcd41 100644 --- a/lib/facebook_ads/ad_objects/page.rb +++ b/lib/facebook_ads/ad_objects/page.rb @@ -92,12 +92,14 @@ class Page < AdObject "Vietnamese", ] - ROLE = [ - "MANAGER", - "CONTENT_CREATOR", - "MODERATOR", - "ADVERTISER", - "INSIGHTS_ANALYST", + TASKS = [ + "MANAGE", + "CREATE_CONTENT", + "MODERATE", + "MODERATE_COMMUNITY", + "ADVERTISE", + "ANALYZE", + "CREATE_LIVE_CONTENT", ] LOCALE = [ @@ -311,7 +313,7 @@ class Page < AdObject api.has_param :business, 'string' end edge.post 'Page' do |api| - api.has_param :role, { enum: -> { Page::ROLE }} + api.has_param :tasks, { list: { enum: -> { Page::TASKS }} } api.has_param :user, 'int' end end @@ -638,10 +640,11 @@ class Page < AdObject api.has_param :legal_content_id, 'string' api.has_param :locale, { enum: -> { Page::LOCALE }} api.has_param :name, 'string' - api.has_param :privacy_policy, 'object' + api.has_param :privacy_policy, 'hash' api.has_param :question_page_custom_headline, 'string' api.has_param :questions, { list: 'object' } - api.has_param :thank_you_page, 'object' + api.has_param :thank_you_page, 'hash' + api.has_param :tracking_parameters, 'object' end end @@ -650,19 +653,19 @@ class Page < AdObject api.has_param :allow_organic_lead_retrieval, 'bool' api.has_param :block_display_for_non_targeted_viewer, 'bool' api.has_param :context_card, 'object' - api.has_param :context_card_id, 'string' + api.has_param :context_card_id, 'object' api.has_param :cover_photo, 'file' api.has_param :custom_disclaimer, 'object' - api.has_param :follow_up_action_url, 'string' + api.has_param :follow_up_action_url, 'object' api.has_param :is_optimized_for_quality, 'bool' - api.has_param :legal_content_id, 'string' + api.has_param :legal_content_id, 'object' api.has_param :locale, { enum: -> { Page::LOCALE }} api.has_param :name, 'string' api.has_param :privacy_policy, 'object' api.has_param :question_page_custom_headline, 'string' api.has_param :questions, { list: 'object' } api.has_param :thank_you_page, 'object' - api.has_param :thank_you_page_id, 'string' + api.has_param :thank_you_page_id, 'object' end end @@ -702,7 +705,7 @@ class Page < AdObject has_edge :live_videos do |edge| edge.get 'LiveVideo' do |api| api.has_param :broadcast_status, { list: { enum: -> { LiveVideo::BROADCAST_STATUS }} } - api.has_param :type, { enum: -> { LiveVideo::TYPE }} + api.has_param :source, { enum: -> { LiveVideo::SOURCE }} end edge.post 'LiveVideo' do |api| api.has_param :attribution_app_id, 'string' @@ -853,23 +856,6 @@ class Page < AdObject end end - has_edge :offers_v3 do |edge| - edge.post do |api| - api.has_param :availability_location, { enum: %w{both offline online }} - api.has_param :description, 'string' - api.has_param :destination_uri, 'string' - api.has_param :discount_code, 'string' - api.has_param :expiration_time, 'datetime' - api.has_param :hidden, 'bool' - api.has_param :photo_uris, { list: 'string' } - api.has_param :referrer, 'string' - api.has_param :schedule_time, 'datetime' - api.has_param :start_time, 'datetime' - api.has_param :terms_and_conditions, 'string' - api.has_param :video_ids, { list: 'string' } - end - end - has_edge :page_backed_instagram_accounts do |edge| edge.post end @@ -882,19 +868,6 @@ class Page < AdObject end end - has_edge :pending_users do |edge| - edge.delete do |api| - api.has_param :request_id, 'int' - end - edge.get 'BusinessRoleRequest' do |api| - api.has_param :business, 'int' - end - edge.post 'Page' do |api| - api.has_param :request_id, 'int' - api.has_param :role, { enum: -> { Page::ROLE }} - end - end - has_edge :photos do |edge| edge.get 'Photo' do |api| api.has_param :biz_tag_id, 'int' diff --git a/lib/facebook_ads/ad_objects/product_catalog.rb b/lib/facebook_ads/ad_objects/product_catalog.rb index 119adcb8..8f50178d 100644 --- a/lib/facebook_ads/ad_objects/product_catalog.rb +++ b/lib/facebook_ads/ad_objects/product_catalog.rb @@ -223,7 +223,7 @@ class ProductCatalog < AdObject has_edge :products do |edge| edge.get 'ProductItem' do |api| api.has_param :bulk_pagination, 'bool' - api.has_param :return_only_approved_products, 'bool' + api.has_param :filter, 'object' end edge.post 'ProductItem' do |api| api.has_param :additional_image_urls, { list: 'string' } diff --git a/lib/facebook_ads/ad_objects/user.rb b/lib/facebook_ads/ad_objects/user.rb index 96950e8f..7659b47f 100644 --- a/lib/facebook_ads/ad_objects/user.rb +++ b/lib/facebook_ads/ad_objects/user.rb @@ -51,12 +51,10 @@ class User < AdObject field :installed, 'bool' field :interested_in, { list: 'string' } field :is_famedeeplinkinguser, 'bool' - field :is_payment_enabled, 'bool' field :is_shared_login, 'bool' field :is_verified, 'bool' field :labels, { list: 'PageLabel' } field :languages, { list: 'object' } - field :last_ad_referral, 'object' field :last_name, 'string' field :link, 'string' field :local_news_megaphone_dismiss_status, 'bool' @@ -165,7 +163,7 @@ class User < AdObject has_edge :live_videos do |edge| edge.get 'LiveVideo' do |api| api.has_param :broadcast_status, { list: { enum: -> { LiveVideo::BROADCAST_STATUS }} } - api.has_param :type, { enum: -> { LiveVideo::TYPE }} + api.has_param :source, { enum: -> { LiveVideo::SOURCE }} end edge.post 'LiveVideo' do |api| api.has_param :attribution_app_id, 'string' diff --git a/lib/facebook_ads/version.rb b/lib/facebook_ads/version.rb index baea1473..92bdf06d 100644 --- a/lib/facebook_ads/version.rb +++ b/lib/facebook_ads/version.rb @@ -19,6 +19,6 @@ # FB:AUTOGEN module FacebookAds - VERSION = '0.3.0.6' - API_VERSION = '3.0' + VERSION = '0.3.1.0' + API_VERSION = '3.1' end