lib/facebook_ads/ad_objects/ad_video.rb (419 lines of code) (raw):

# Copyright (c) 2017-present, Facebook, Inc. All rights reserved. # # You are hereby granted a non-exclusive, worldwide, royalty-free license to use, # copy, modify, and distribute this software in source code or binary form for use # in connection with the web services and APIs provided by Facebook. # # As with any software that integrates with the Facebook platform, your use of # this software is subject to the Facebook Platform Policy # [http://developers.facebook.com/policy/]. This copyright notice shall be # included in all copies or substantial portions of the software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS # FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # FB:AUTOGEN module FacebookAds # This class is auto-generated. # For any issues or feature requests related to this class, please let us know # on github and we'll fix in our codegen framework. We'll not be able to accept # pull request for this class. class AdVideo < AdObject CONTAINER_TYPE = [ "ACO_AUTOEXTRACTED_VIDEO", "ACO_VIDEO_VARIATION", "AD_BREAK_PREVIEW", "AD_DERIVATIVE", "AGE_UP", "ALBUM_MULTIMEDIA_POST", "ALOHA_CALL_VIDEO", "ALOHA_SUPERFRAME", "APP_REREVIEW_SCREENCAST", "APP_REVIEW_SCREENCAST", "ASSET_MANAGER", "ATLAS_VIDEO", "AUDIO_BROADCAST", "AUDIO_COMMENT", "BROADCAST", "BULLETIN_ARTICLE_AUDIO", "CANVAS", "CFC_VIDEO", "CMS_MEDIA_MANAGER", "CONTAINED_POST_ATTACHMENT", "CONTAINED_POST_AUDIO_BROADCAST", "CONTAINED_POST_COPYRIGHT_REFERENCE_BROADCAST", "COPYRIGHT_REFERENCE_BROADCAST", "COPYRIGHT_REFERENCE_VIDEO", "CREATION_ML_PRECREATION", "CULTURAL_MOMENT_DEPRECATED", "DCO_AD_ASSET_FEED", "DCO_AUTOGEN_VIDEO", "DCO_TRIMMED_VIDEO", "DIM_SUM", "DIRECTED_POST_ATTACHMENT", "DIRECT_INBOX", "DIRECT_INBOX_REACTION", "DYNAMIC_ITEM_DISPLAY_BUNDLE", "DYNAMIC_ITEM_VIDEO", "DYNAMIC_TEMPLATE_VIDEO", "EVENT_COVER_VIDEO", "EVENT_TOUR", "FACECAST_DVR", "FB_SHORTS", "FB_SHORTS_GROUP_POST", "FB_SHORTS_PMV_POST", "FB_SHORTS_POST", "FB_SHORTS_REMIX_POST", "FUNDRAISER_COVER_VIDEO", "GAME_CLIP", "GEMSTONE", "GOODWILL_ANNIVERSARY_DEPRECATED", "GOODWILL_ANNIVERSARY_PROMOTION_DEPRECATED", "GOODWILL_VIDEO_CONTAINED_SHARE", "GOODWILL_VIDEO_PROMOTION", "GOODWILL_VIDEO_SHARE", "GOODWILL_VIDEO_TOKEN_REQUIRED", "GROUP_POST", "HACK_TV", "HEURISTIC_CLUSTER_VIDEO", "HEURISTIC_PREVIEW", "HIGHLIGHT_CLIP_VIDEO", "HUDDLE_BROADCAST", "IG_REELS_XPV", "IG_STORIES_READER", "INSPIRATION_VIDEO", "INSTAGRAM_VIDEO_COPY", "INSTANT_APPLICATION_PREVIEW", "INSTANT_ARTICLE", "INSTANT_GAME_CLIP", "ISSUE_MODULE", "JOBS_CAREERS", "JOBS_VISUAL_INTRO_ENTRY", "JOB_APPLICATION_VIDEO", "JOB_OPENING_VIDEO", "KOTOTORO", "LEARN", "LEGACY", "LEGACY_CONTAINED_POST_BROADCAST", "LIVE_CLIP_PREVIEW", "LIVE_CREATIVE_KIT_VIDEO", "LIVE_PHOTO", "LOOK_NOW_DEPRECATED", "MARKETPLACE_LISTING_VIDEO", "MARKETPLACE_PRE_RECORDED_VIDEO", "MESSENGER_WATCH_TOGETHER", "MOMENTS_VIDEO", "MUSIC_CLIP", "MUSIC_CLIP_IN_COMMENT", "MUSIC_CLIP_IN_LIGHTWEIGHT_STATUS", "MUSIC_CLIP_IN_POLL_OPTION", "MUSIC_CLIP_ON_DATING_PROFILE", "NEO_ASYNC_GAME_VIDEO", "NEW_CONTAINED_POST_BROADCAST", "NO_STORY", "NO_STORY_WITH_ENTPOST", "NPE_COLLAB_COPYRIGHT_CHECK", "OCULUS_CREATOR_PORTAL", "OCULUS_VENUES_BROADCAST", "OFFERS_VIDEO", "PAGES_COVER_VIDEO", "PAGE_REVIEW_SCREENCAST", "PAGE_SLIDESHOW_VIDEO", "PAID_CONTENT_PREVIEW", "PAID_CONTENT_VIDEO", "PAID_CONTENT_VIDEO__POST", "PARTNER_DIRECTORY_BRAND_MEDIA", "PIXELCLOUD", "PODCAST_HIGHLIGHT", "PODCAST_ML_PREVIEW", "PODCAST_ML_PREVIEW_NO_NEWSFEED_STORY", "PODCAST_RSS", "PODCAST_RSS_EPHEMERAL", "PODCAST_RSS_NO_NEWSFEED_STORY", "PODCAST_VOICES", "PODCAST_VOICES_NO_NEWSFEED_STORY", "PREMIERE_SOURCE", "PREMIUM_MUSIC_VIDEO_CLIP", "PREMIUM_MUSIC_VIDEO_CROPPED_CLIP", "PREMIUM_MUSIC_VIDEO_NO_NEWSFEED_STORY", "PREMIUM_MUSIC_VIDEO_WITH_NEWSFEED_STORY", "PRIVATE_GALLERY_VIDEO", "PRODUCT_VIDEO", "PROFILE_COVER_VIDEO", "PROFILE_INTRO_CARD", "PROFILE_VIDEO", "PROTON", "QUICK_PROMOTION", "REPLACE_VIDEO", "SALES_CLIENT_INTERACTION", "SAY_THANKS_DEPRECATED", "SHOWREEL_NATIVE_DUMMY_VIDEO", "SLIDESHOW_ANIMOTO", "SLIDESHOW_SHAKR", "SLIDESHOW_VARIATION_VIDEO", "SOTTO_CONTENT", "SOUNDBITES_VIDEO", "SOUND_PLATFORM_STREAM", "SRT_ATTACHMENT", "STAGES_BROADCAST", "STORIES_VIDEO", "STORYLINE", "STORYLINE_WITH_EXTERNAL_MUSIC", "STORY_ARCHIVE_VIDEO", "STORY_CARD_TEMPLATE", "STREAM_HIGHLIGHTS_VIDEO", "TAROT_DIGEST", "TEMPORARY_UNLISTED", "TEMP_MULTIMEDIA_POST", "UNLISTED", "UNLISTED_HACK_TV", "UNLISTED_OCULUS", "VIDEO_COMMENT", "VIDEO_COMPOSITION_VARIATION", "VIDEO_CREATIVE_EDITOR_AUTOGEN_AD_VIDEO", "VIDEO_SUPERRES", "VOICES_ARTICLE_VIDEO", "VU_GENERATED_VIDEO", "WOODHENGE", "WORK_KNOWLEDGE_VIDEO", "YOUR_DAY", ] CONTENT_CATEGORY = [ "BEAUTY_FASHION", "BUSINESS", "CARS_TRUCKS", "COMEDY", "CUTE_ANIMALS", "ENTERTAINMENT", "FAMILY", "FOOD_HEALTH", "HOME", "LIFESTYLE", "MUSIC", "NEWS", "OTHER", "POLITICS", "SCIENCE", "SPORTS", "TECHNOLOGY", "VIDEO_GAMING", ] FORMATTING = [ "MARKDOWN", "PLAINTEXT", ] ORIGINAL_PROJECTION_TYPE = [ "cubemap", "equirectangular", "half_equirectangular", ] SWAP_MODE = [ "replace", ] UNPUBLISHED_CONTENT_TYPE = [ "ADS_POST", "DRAFT", "INLINE_CREATED", "PUBLISHED", "REVIEWABLE_BRANDED_CONTENT", "SCHEDULED", "SCHEDULED_RECURRING", ] UPLOAD_PHASE = [ "cancel", "finish", "start", "transfer", ] TYPE = [ "tagged", "uploaded", ] BACKDATED_TIME_GRANULARITY = [ "day", "hour", "min", "month", "none", "year", ] field :ad_breaks, { list: 'int' } field :backdated_time, 'datetime' field :backdated_time_granularity, 'string' field :content_category, 'string' field :content_tags, { list: 'string' } field :copyright, 'VideoCopyright' field :copyright_monitoring_status, 'string' field :created_time, 'datetime' field :custom_labels, { list: 'string' } field :description, 'string' field :embed_html, 'object' field :embeddable, 'bool' field :event, 'Event' field :expiration, 'object' field :format, { list: 'object' } field :from, 'object' field :icon, 'string' field :id, 'string' field :is_crosspost_video, 'bool' field :is_crossposting_eligible, 'bool' field :is_episode, 'bool' field :is_instagram_eligible, 'bool' field :is_reference_only, 'bool' field :length, 'double' field :live_audience_count, 'int' field :live_status, 'string' field :music_video_copyright, 'MusicVideoCopyright' field :permalink_url, 'object' field :picture, 'string' field :place, 'Place' field :post_views, 'int' field :premiere_living_room_status, 'string' field :privacy, 'Privacy' field :published, 'bool' field :scheduled_publish_time, 'datetime' field :source, 'string' field :spherical, 'bool' field :status, 'object' field :title, 'string' field :universal_video_id, 'string' field :updated_time, 'datetime' field :views, 'int' field :adaptive_type, 'string' field :animated_effect_id, 'int' field :application_id, 'string' field :asked_fun_fact_prompt_id, 'int' field :audio_story_wave_animation_handle, 'string' field :chunk_session_id, 'string' field :composer_entry_picker, 'string' field :composer_entry_point, 'string' field :composer_entry_time, 'int' field :composer_session_events_log, 'string' field :composer_session_id, 'string' field :composer_source_surface, 'string' field :composer_type, 'string' field :container_type, { enum: -> { CONTAINER_TYPE }} field :creative_tools, 'string' field :end_offset, 'int' field :fbuploader_video_file_chunk, 'string' field :file_size, 'int' field :file_url, 'string' field :fisheye_video_cropped, 'bool' field :formatting, { enum: -> { FORMATTING }} field :fov, 'int' field :front_z_rotation, 'double' field :fun_fact_prompt_id, 'int' field :fun_fact_toastee_id, 'int' field :guide, { list: { list: 'int' } } field :guide_enabled, 'bool' field :has_nickname, 'bool' field :holiday_card, 'string' field :initial_heading, 'int' field :initial_pitch, 'int' field :instant_game_entry_point_data, 'string' field :is_boost_intended, 'bool' field :is_group_linking_post, 'bool' field :is_voice_clip, 'bool' field :location_source_id, 'string' field :name, 'string' field :offer_like_post_id, 'int' field :og_action_type_id, 'string' field :og_icon_id, 'string' field :og_object_id, 'string' field :og_phrase, 'string' field :og_suggestion_mechanism, 'string' field :original_fov, 'int' field :original_projection_type, { enum: -> { ORIGINAL_PROJECTION_TYPE }} field :publish_event_id, 'int' field :react_mode_metadata, 'string' field :referenced_sticker_id, 'string' field :replace_video_id, 'string' field :slideshow_spec, 'hash' field :source_instagram_media_id, 'string' field :start_offset, 'int' field :swap_mode, { enum: -> { SWAP_MODE }} field :text_format_metadata, 'string' field :throwback_camera_roll_media, 'string' field :thumb, 'file' field :time_since_original_post, 'int' field :transcode_setting_properties, 'string' field :unpublished_content_type, { enum: -> { UNPUBLISHED_CONTENT_TYPE }} field :upload_phase, { enum: -> { UPLOAD_PHASE }} field :upload_session_id, 'string' field :upload_setting_properties, 'string' field :video_file_chunk, 'string' field :video_id_original, 'string' field :video_start_time_ms, 'int' field :waterfall_id, 'string' has_edge :captions do |edge| edge.get edge.post 'AdVideo' do |api| api.has_param :captions_file, 'file' api.has_param :default_locale, 'string' api.has_param :locales_to_delete, { list: 'string' } end end has_edge :comments do |edge| edge.get 'Comment' do |api| api.has_param :filter, { enum: -> { Comment::FILTER }} api.has_param :live_filter, { enum: -> { Comment::LIVE_FILTER }} api.has_param :order, { enum: -> { Comment::ORDER }} api.has_param :since, 'datetime' end edge.post 'Comment' do |api| api.has_param :attachment_id, 'string' api.has_param :attachment_share_url, 'string' api.has_param :attachment_url, 'string' api.has_param :comment_privacy_value, { enum: -> { Comment::COMMENT_PRIVACY_VALUE }} api.has_param :facepile_mentioned_ids, { list: 'string' } api.has_param :feedback_source, 'string' api.has_param :is_offline, 'bool' api.has_param :message, 'string' api.has_param :nectar_module, 'string' api.has_param :object_id, 'string' api.has_param :parent_comment_id, 'object' api.has_param :text, 'string' api.has_param :tracking, 'string' end end has_edge :crosspost_shared_pages do |edge| edge.get 'Page' end has_edge :gaming_clip_create do |edge| edge.post 'AdVideo' do |api| api.has_param :duration_seconds, 'double' end end has_edge :likes do |edge| edge.get 'Profile' edge.post 'AdVideo' do |api| api.has_param :feedback_source, 'string' api.has_param :nectar_module, 'string' api.has_param :notify, 'bool' api.has_param :tracking, 'string' end end has_edge :poll_settings do |edge| edge.get end has_edge :polls do |edge| edge.get 'VideoPoll' edge.post 'VideoPoll' do |api| api.has_param :close_after_voting, 'bool' api.has_param :correct_option, 'int' api.has_param :default_open, 'bool' api.has_param :options, { list: 'string' } api.has_param :question, 'string' api.has_param :show_gradient, 'bool' api.has_param :show_results, 'bool' end end has_edge :sponsor_tags do |edge| edge.get 'Page' end has_edge :tags do |edge| edge.get edge.post 'AdVideo' do |api| api.has_param :tag_uid, 'int' api.has_param :uid, 'int' api.has_param :vid, 'string' end end has_edge :thumbnails do |edge| edge.get 'VideoThumbnail' edge.post 'AdVideo' do |api| api.has_param :is_preferred, 'bool' api.has_param :source, 'file' end end has_edge :video_insights do |edge| edge.get 'InsightsResult' do |api| api.has_param :metric, { list: 'object' } api.has_param :period, { enum: -> { InsightsResult::PERIOD }} api.has_param :since, 'datetime' api.has_param :until, 'datetime' end end end end