Class: FacebookAds::AdSet
- Defined in:
- lib/facebook_ads/ad_set.rb
Overview
Constant Summary collapse
- FIELDS =
%w[ id account_id campaign_id name status configured_status effective_status bid_strategy bid_amount billing_event optimization_goal pacing_type daily_budget budget_remaining lifetime_budget promoted_object targeting attribution_spec start_time end_time created_time updated_time ].freeze
- STATUSES =
%w[ ACTIVE PAUSED DELETED PENDING_REVIEW DISAPPROVED PREAPPROVED PENDING_BILLING_INFO CAMPAIGN_PAUSED ARCHIVED ADSET_PAUSED ].freeze
- BILLING_EVENTS =
%w[APP_INSTALLS IMPRESSIONS].freeze
- OPTIMIZATION_GOALS =
%w[ NONE APP_INSTALLS BRAND_AWARENESS AD_RECALL_LIFT CLICKS ENGAGED_USERS EVENT_RESPONSES IMPRESSIONS LEAD_GENERATION LINK_CLICKS OFFER_CLAIMS OFFSITE_CONVERSIONS PAGE_ENGAGEMENT PAGE_LIKES POST_ENGAGEMENT REACH SOCIAL_IMPRESSIONS VIDEO_VIEWS APP_DOWNLOADS LANDING_PAGE_VIEWS ].freeze
- BID_STRATEGIES =
%w[ LOWEST_COST_WITHOUT_CAP LOWEST_COST_WITH_BID_CAP TARGET_COST ].freeze
Instance Method Summary collapse
- #activities(from: Date.today.beginning_of_day, to: Date.today.end_of_day) ⇒ Object
-
#ad_account ⇒ Object
AdAccount.
-
#ad_campaign ⇒ Object
AdCampaign.
-
#ad_insights(range: Date.today..Date.today, level: nil, breakdowns: [], fields: [], limit: 1_000) ⇒ Object
levels = enum adset, campaign, account breakdowns = list<enum product_id, …>.
-
#ads(effective_status: ['ACTIVE'], limit: 100) ⇒ Object
Ad.
- #create_ad(name:, creative_id:, status: 'PAUSED') ⇒ Object
Methods inherited from Base
all, delete, #destroy, find, find_by, get, paginate, post, #save, #update
Instance Method Details
#activities(from: Date.today.beginning_of_day, to: Date.today.end_of_day) ⇒ Object
115 116 117 118 |
# File 'lib/facebook_ads/ad_set.rb', line 115 def activities(from: Date.today.beginning_of_day, to: Date.today.end_of_day) query = { since: from, until: to } AdSetActivity.get("/#{id}/activities", query: query, objectify: true) end |
#ad_account ⇒ Object
AdAccount
77 78 79 |
# File 'lib/facebook_ads/ad_set.rb', line 77 def ad_account @ad_account ||= AdAccount.find("act_#{account_id}") end |
#ad_campaign ⇒ Object
AdCampaign
83 84 85 |
# File 'lib/facebook_ads/ad_set.rb', line 83 def ad_campaign @ad_campaign ||= AdCampaign.find(campaign_id) end |
#ad_insights(range: Date.today..Date.today, level: nil, breakdowns: [], fields: [], limit: 1_000) ⇒ Object
levels = enum adset, campaign, account breakdowns = list<enum product_id, …>
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/facebook_ads/ad_set.rb', line 103 def ad_insights(range: Date.today..Date.today, level: nil, breakdowns: [], fields: [], limit: 1_000) query = { time_range: { since: range.first.to_s, until: range.last.to_s }, level: level, breakdowns: breakdowns&.join(','), fields: fields&.join(','), limit: limit }.reject { |_key, value| value.nil? || (value.respond_to?(:empty?) && value.empty?) } AdInsight.paginate("/#{id}/insights", query: query) end |
#ads(effective_status: ['ACTIVE'], limit: 100) ⇒ Object
Ad
89 90 91 |
# File 'lib/facebook_ads/ad_set.rb', line 89 def ads(effective_status: ['ACTIVE'], limit: 100) Ad.paginate("/#{id}/ads", query: { effective_status: effective_status, limit: limit }) end |
#create_ad(name:, creative_id:, status: 'PAUSED') ⇒ Object
93 94 95 96 97 |
# File 'lib/facebook_ads/ad_set.rb', line 93 def create_ad(name:, creative_id:, status: 'PAUSED') query = { name: name, adset_id: id, creative: { creative_id: creative_id }.to_json, status: status } result = Ad.post("/act_#{account_id}/ads", query: query) Ad.find(result['id']) end |