Documentation ¶
Index ¶
- Constants
- Variables
- type ActionTypeValue
- type Ad
- type AdAccount
- type AdAccountService
- func (aas *AdAccountService) FBBusinessAccount(ctx context.Context) ([]FBBusinessAccount, error)
- func (aas *AdAccountService) List(ctx context.Context, businessID string) ([]AdAccount, error)
- func (aas *AdAccountService) ListInstaAccounts(ctx context.Context, businessID string) ([]InstaAdAccount, error)
- type AdCreative
- type AdCreativeLinkData
- type AdCreativeLinkDataAppLinkSpec
- type AdCreativeLinkDataCallToAction
- type AdCreativeLinkDataCallToActionValue
- type AdCreativeLinkDataChildAttachment
- type AdCreativePhotoData
- type AdCreativeService
- func (as *AdCreativeService) Create(ctx context.Context, a AdCreative) (string, string, error)
- func (as *AdCreativeService) Get(ctx context.Context, id string) (*AdCreative, error)
- func (as *AdCreativeService) GetPreviewURL(ctx context.Context, id, format string) (string, error)
- func (as *AdCreativeService) ReadList(ctx context.Context, act string, res chan<- AdCreative) error
- type AdGeoLocation
- type AdListCall
- type AdLocale
- type AdService
- func (as *AdService) Create(ctx context.Context, a Ad) (string, error)
- func (as *AdService) Get(ctx context.Context, id string) (*Ad, error)
- func (as *AdService) List(act string) *AdListCall
- func (as *AdService) ListOfAdset(adsetID string) *AdListCall
- func (as *AdService) Update(ctx context.Context, a Ad) error
- type Adaccounts
- type Adset
- type AdsetListCall
- type AdsetService
- func (as *AdsetService) CountAdSets(ctx context.Context, accountID string) (uint64, error)
- func (as *AdsetService) Create(ctx context.Context, a Adset) (string, fb.Time, error)
- func (as *AdsetService) Get(ctx context.Context, id string, fields ...string) (*Adset, error)
- func (as *AdsetService) GetDeliveryEstimate(ctx context.Context, id string, t *Targeting) (uint64, error)
- func (as *AdsetService) List(account string, fields []string) *AdsetListCall
- func (as *AdsetService) ListOfCampaign(campaignID string, fields []string) *AdsetListCall
- func (as *AdsetService) Update(ctx context.Context, a Adset) (fb.Time, error)
- type AlbumImage
- type AndroidAppLink
- type AttachmentData
- type Attachments
- type AudienceService
- func (as *AudienceService) Create(ctx context.Context, act string, a CustomAudience) (string, error)
- func (as *AudienceService) Delete(ctx context.Context, id string) error
- func (as *AudienceService) DeleteLookalikes(ctx context.Context, id string) error
- func (as *AudienceService) EditIDs(ctx context.Context, audienceID string, c <-chan string, doRemove bool) error
- func (as *AudienceService) Get(ctx context.Context, id string) (*CustomAudience, error)
- func (as *AudienceService) ListAdAccounts(ctx context.Context, audienceID string) ([]string, error)
- func (as *AudienceService) ListCustom(ctx context.Context, act string) ([]CustomAudience, error)
- func (as *AudienceService) ListCustomFiltered(ctx context.Context, act string, filtering []fb.Filter) ([]CustomAudience, error)
- func (as *AudienceService) Share(ctx context.Context, customAudienceID string, adaccountIDs []string) error
- func (as *AudienceService) ShareCustom(ctx context.Context, customAudienceID string, ...) error
- func (as *AudienceService) Update(ctx context.Context, a CustomAudience) error
- type Business
- type Campaign
- type CampaignListCall
- type CampaignService
- func (cs *CampaignService) Create(ctx context.Context, a Campaign) (string, error)
- func (cs *CampaignService) Get(ctx context.Context, id string, fields ...string) (*Campaign, error)
- func (cs *CampaignService) List(act string) *CampaignListCall
- func (cs *CampaignService) Update(ctx context.Context, a Campaign) error
- type City
- type Comment
- type CommentListCall
- type Component
- type ContainerData
- type ConversionActionQuery
- type CustomAudience
- type CustomConversion
- type CustomConversionService
- type DailyOutcomesCurve
- type Data
- type DataSource
- type DeliveryEstimate
- type Device
- type EventService
- type FBAlbums
- type FBBusinessAccount
- type FlexibleSpec
- type FrequencyControlSpec
- type GeoLocation
- type GeoLocations
- type GetPostContent
- type IDContainer
- type Image
- type ImageService
- func (is *ImageService) AllAlbums(ctx context.Context, pageId string) (*FBAlbums, error)
- func (is *ImageService) ReadList(ctx context.Context, act string, res chan<- Image) error
- func (is *ImageService) Upload(ctx context.Context, act, name string, r io.Reader) (*Image, error)
- func (is *ImageService) UploadToAlbum(ctx context.Context, data AlbumImage) (interface{}, error)
- type Insight
- type InsightsRequest
- type InsightsService
- type InstaAdAccount
- type InstaPostReponse
- type InstaPostSingleContent
- type InstagramActor
- type InteractiveComponent
- type InteractiveComponentsSpec
- type InterestService
- type InterestTargeting
- type IosAppLink
- type LeadFormResp
- type LeadGen
- type LocationSpec
- type LookalikeOrigion
- type LookalikeSpec
- type MessageTag
- type ObjectStorySpec
- type OperatingSystem
- type OptionCallToAction
- type OptionCallToActionValue
- type Page
- type PageService
- func (ps *PageService) CreateLeadAdForm(ctx context.Context, content LeadGen, id string) (*LeadFormResp, error)
- func (ps *PageService) Get(ctx context.Context, id string) (*Page, error)
- func (ps *PageService) GetClientPages(ctx context.Context, businessID string) ([]Page, error)
- func (ps *PageService) GetInstagramActor(ctx context.Context, id string) (*InstagramActor, error)
- func (ps *PageService) GetInstagramActors(ctx context.Context, businessID string) ([]InstagramActor, error)
- func (ps *PageService) GetOwnedPages(ctx context.Context, businessID string) ([]Page, error)
- func (ps *PageService) GetPageBackedInstagramAccounts(ctx context.Context, pageID string) (*InstagramActor, error)
- func (ps *PageService) SetPageAccessToken(ctx context.Context, pageID string) (context.Context, error)
- type Pixel
- type PollSpec
- type PositionSpec
- type Post
- type PostMsgReponse
- type PostPhotoAttachments
- type PostPhotoContent
- type PostPhotoReponse
- type PostService
- func (ps *PostService) CountComments(ctx context.Context, postID string) (uint64, error)
- func (ps *PostService) CreateMsgPost(ctx context.Context, businessId string, content GetPostContent, ...) (*PostMsgReponse, error)
- func (ps *PostService) CreateVideoPost(ctx context.Context, businessId string, content PostVideoContent, ...) (*PostPhotoReponse, error)
- func (ps *PostService) Create_SinglePostContainer(ctx context.Context, instaId string, content *InstaPostSingleContent) (*InstaPostReponse, error)
- func (ps *PostService) Get(ctx context.Context, id string) (*Post, error)
- func (ps *PostService) GetInstaOrganicPosts(ctx context.Context, instaId string, urlParams []string) (*[]RespPost, error)
- func (ps *PostService) GetInstaPaidPosts(ctx context.Context, instaId string, urlParams []string) (*[]RespPost_Paid, error)
- func (ps *PostService) GetInstaPost(ctx context.Context, id string) (*Post, error)
- func (ps *PostService) GetPosts(ctx context.Context, businessId string, urlParams []string) (*[]RespPost, error)
- func (ps *PostService) GetReactions(ctx context.Context, postID string) (Reactions, error)
- func (ps *PostService) ListComments(postID, filter string) *CommentListCall
- func (ps *PostService) PostContentWithPhotos(ctx context.Context, businessId string, content PostPhotoAttachments, ...) (*PostPhotoReponse, error)
- func (ps *PostService) UploadPhotoFB(ctx context.Context, businessId string, imageUrl string, ...) (*PostPhotoReponse, error)
- type PostVideoContent
- type PromotedObject
- type Reactions
- type Region
- type RespPost
- type RespPost_Paid
- type SearchService
- func (s *SearchService) GetAdGeoLocations(ctx context.Context) ([]AdGeoLocation, error)
- func (s *SearchService) GetAdLocales(ctx context.Context) ([]AdLocale, error)
- func (s *SearchService) GetDevices(ctx context.Context) ([]Device, error)
- func (s *SearchService) GetOperatingSystems(ctx context.Context) ([]OperatingSystem, error)
- func (s *SearchService) GetRegions(ctx context.Context, country string) ([]AdGeoLocation, error)
- func (s *SearchService) ValidateInterests(ctx context.Context, externalIDs []string) (validIDs []string, invalidIDs []string, err error)
- type Service
- type StoryAttachment
- type StoryAttachmentMedia
- type StoryAttachmentTarget
- type StoryAttachments
- type Targeting
- type TargetingOptionStatus
- type UploadError
- type User
- type Video
- type VideoData
- type VideoService
- type Zip
Constants ¶
const BatchMaxIDsSequence = 10000
BatchMaxIDsSequence we upload.
const Version = "v14.0"
Version of the graph API being used.
Variables ¶
var Adcreativefields = []string{
"id",
"account_id",
"body",
"call_to_action_type",
"effective_instagram_story_id",
"effective_object_story_id",
"image_hash",
"image_url",
"instagram_actor_id",
"instagram_permalink_url",
"instagram_story_id",
"link_og_id",
"link_url",
"name",
"object_id",
"object_story_id",
"object_story_spec",
"object_type",
"object_url",
"status",
"thumbnail_url",
"title",
"video_id",
}
Adcreativefields are the fields of an adcreative.
var AdsetFields = []string{
"bid_amount", "attribution_spec", "bid_info",
"billing_event", "campaign_id", "created_time",
"daily_budget", "destination_type", "effective_status",
"daily_spend_cap", "daily_min_spend_target", "end_time",
"creative_sequence", "frequency_control_specs", "id",
"configured_status", "instagram_actor_id", "lifetime_budget",
"lifetime_imps", "lifetime_min_spend_target", "lifetime_spend_cap",
"name", "budget_remaining", "optimization_goal", "adset_schedule",
"adlabels", "recurring_budget_semantics",
"rf_prediction_id", "source_adset_id", "start_time", "targeting",
"time_based_ad_rotation_id_blocks", "time_based_ad_rotation_intervals",
"pacing_type", "promoted_object", "recommendations",
"source_adset", "status", "updated_time", "use_new_app_click",
"campaign{name,objective,effective_status}",
}
AdsetFields is a selection of fields to be returned.
Functions ¶
This section is empty.
Types ¶
type ActionTypeValue ¶
type ActionTypeValue []struct { ActionType string `json:"action_type"` ActionVideoSound string `json:"action_video_sound"` ActionReaction string `json:"action_reaction"` Value float64 `json:"value,string"` // For action_attribution_windows View1d float64 `json:"1d_view,string"` View7d float64 `json:"7d_view,string"` View28d float64 `json:"28d_view,string"` Click1d float64 `json:"1d_click,string"` Click7d float64 `json:"7d_click,string"` Click28d float64 `json:"28d_click,string"` }
ActionTypeValue is a kv store.
func (ActionTypeValue) FilterByActionTypePrefix ¶
func (atv ActionTypeValue) FilterByActionTypePrefix(prefix string) ActionTypeValue
FilterByActionTypePrefix returns a slice of ActionTypeValue for which all ActionType values starts with the input prefix.
func (ActionTypeValue) GetReactions ¶
func (atv ActionTypeValue) GetReactions() map[string]uint64
GetReactions returns a map with reactions.
func (ActionTypeValue) GetValue ¶
func (atv ActionTypeValue) GetValue(actionType string) float64
GetValue returns the sum of the values with the given action type.
type Ad ¶
type Ad struct { AccountID string `json:"account_id,omitempty"` ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Status string `json:"status,omitempty"` AdsetID string `json:"adset_id,omitempty"` Creative *AdCreative `json:"creative,omitempty"` Adset *Adset `json:"adset,omitempty"` TrackingSpecs []ConversionActionQuery `json:"tracking_specs,omitempty"` Adcreatives *struct { Data []AdCreative `json:"data,omitempty"` } `json:"adcreatives,omitempty"` }
Ad represents a Facebook Ad.
type AdAccount ¶
type AdAccount struct { Name string `json:"name"` AccountID string `json:"account_id"` Currency string `json:"currency"` }
AdAccount represents an Facebook ad account.
type AdAccountService ¶
type AdAccountService struct {
// contains filtered or unexported fields
}
AdAccountService works with ad accounts.
func (*AdAccountService) FBBusinessAccount ¶
func (aas *AdAccountService) FBBusinessAccount(ctx context.Context) ([]FBBusinessAccount, error)
func (*AdAccountService) ListInstaAccounts ¶
func (aas *AdAccountService) ListInstaAccounts(ctx context.Context, businessID string) ([]InstaAdAccount, error)
List lists all Instagram ad accounts that belong to this business.
type AdCreative ¶
type AdCreative struct { ID string `json:"id,omitempty"` CreativeID string `json:"creative_id,omitempty"` AccountID string `json:"account_id,omitempty"` // PageID ActorID string `json:"actor_id,omitempty"` // Deep link fallback behavior for dynamic product ads if the app is not installed. ApplinkTreatment string `json:"applink_treatment,omitempty"` // The body of the ad. Not supported for video post creatives. Body string `json:"body,omitempty"` // Branded Content sponsor ID, creating ads using existing BC posts BrandedContentSponsorPageID string `json:"branded_content_sponsor_page_id,omitempty"` CallToActionType string `json:"call_to_action_type,omitempty"` // The ID of an Instagram post to use in an ad. EffectiveInstagramStoryID string `json:"effective_instagram_story_id,omitempty"` // The ID of a page post to use in an ad, regardless of whether it's an organic or unpublished page post. EffectiveObjectStoryID string `json:"effective_object_story_id,omitempty"` // Image hash for an image you can use in creatives. If provided do not provide image_url. See image library for more details ImageHash string `json:"image_hash,omitempty"` // A URL for the image for this creative. We save the image at this URL to the ad account's image library. If provided do not include image_hash. ImageURL string `json:"image_url,omitempty"` // Instagram actor ID InstagramActorID string `json:"instagram_actor_id,omitempty"` // Instagram permalink InstagramPermalinkURL string `json:"instagram_permalink_url,omitempty"` // The ID of an Instagram post for creating ads. InstagramStoryID string `json:"instagram_story_id,omitempty"` // Used for creating video polls InteractiveComponentsSpec *InteractiveComponentsSpec `json:"interactive_components_spec,omitempty"` // The Open Graph (OG) ID for the link in this creative if the landing page has OG tags LinkOgID string `json:"link_og_id,omitempty"` // Used to identify a specific landing tab on the Page (e.g. a Page tab app) // by the Page tab's URL. See connection objects for retrieving Page tabs' URLs. // The likes tab is not supported. app_data parameters may be added to the url to pass data to a tab app LinkURL string `json:"link_url,omitempty"` // The JSON string of messenger sponsored message for this creative. See (docs/messenger-platform/reference/send-api) for more detail MessengerSponsoredMessage string `json:"messenger_sponsored_message,omitempty"` // The name of the creative in the creative library. Name string `json:"name,omitempty"` // The ID of the promoted_object or object that is relevant to the ad and ad type ObjectID string `json:"object_id,omitempty"` // The ID of a page post to use in an ad. This ID can be retrieved by using // the graph API to query the posts of the page. If an image is used in the post, // it will be downloaded and available in your account's image library. // If you create an unpublished page post inline via object_story_spec at // the same time as creating the ad, this ID will be null. However the // effective_object_story_id will be the ID of the page post regardless of whether it's an organic or unpublished page post. ObjectStoryID string `json:"object_story_id,omitempty"` // The type of object that is being advertised. // PAGE, DOMAIN, EVENT, STORE_ITEM, SHARE, PHOTO, STATUS, VIDEO, APPLICATION, INVALID ObjectType string `json:"object_type,omitempty"` // Destination URL for a link ads not connected to a page ObjectURL string `json:"object_url,omitempty"` // The ID of the product set for this creative. See dynamic product ads for more detail ProductSetID string `json:"product_set_id,omitempty"` // The status of this creative. Status string `json:"status,omitempty"` // The Tracking URL for dynamic product ads. See dynamic product ads for more detail TemplateURL string `json:"template_url,omitempty"` // The URL to a thumbnail for this creative. ThumbnailURL string `json:"thumbnail_url,omitempty"` // Title for a link ad (not connected to a Page) Title string `json:"title,omitempty"` // A set of query string parameters which will replace or be appended to urls // clicked from page post ads, message of the post, and canvas app install creatives only URLTags string `json:"url_tags,omitempty"` // The ID of the video in this creative VideoID string `json:"video_id,omitempty"` // If this is true, we will show the page actor for mobile app ads UsePageActorOverride bool `json:"use_page_actor_override,omitempty"` // A JSON object defining crop dimensions for the image specified. See image crop reference for more details ImageCrops json.RawMessage `json:"image_crops,omitempty"` // The page id and the content to create a new unpublished page post specified using one of link_data, photo_data, video_data, text_data or template_data ObjectStorySpec *ObjectStorySpec `json:"object_story_spec,omitempty"` // Use this field to customize the media for different Facebook placements. // Currently you can use this field for customizing images only. The media // specified here replaces the original media defined in the ad creative when // the ad displays on those placements. For example, if you define a media // here for the instagram key, Facebook uses that media instead of the media // defined in the ad creative when showing the ad on Instagram. PlatformCustomizations json.RawMessage `json:"platform_customizations,omitempty"` // The recommender settings that can be used to control recommendations for Dynamic Ads. RecommenderSettings json.RawMessage `json:"recommender_settings,omitempty"` // Use this field to create url templates for dynamic product ads. See dynamic product ads for more detail TemplateURLSpec json.RawMessage `json:"template_url_spec,omitempty"` // Ad Labels that are associated with this creative Adlabels []json.RawMessage `json:"adlabels,omitempty"` }
AdCreative https://developers.facebook.com/docs/marketing-api/reference/ad-creative
func (AdCreative) GetLandingPageURL ¶
func (ac AdCreative) GetLandingPageURL() string
GetLandingPageURL returns the landing page URL of the creative.
type AdCreativeLinkData ¶
type AdCreativeLinkData struct { // The index (zero based) of the image from the additional images array to use as the ad image for a dynamic product ad AdditionalImageIndex int32 `json:"additional_image_index,omitempty"` // Native deeplinks attached to the post AppLinkSpec *AdCreativeLinkDataAppLinkSpec `json:"app_link_spec,omitempty"` // The style of the attachment AttachmentStyle string `json:"attachment_style,omitempty"` BrandedContentSharedToSponsorStatus string `json:"branded_content_shared_to_sponsor_status,omitempty"` // The branded content sponsor page id BrandedContentSponsorPageID string `json:"branded_content_sponsor_page_id,omitempty"` // The branded content sponsor relationship option BrandedContentSponsorRelationship string `json:"branded_content_sponsor_relationship,omitempty"` // An optional call to action button. If not specified, on Instagram, a default CTA would be used, {"type":"LEARN_MORE","value": {"link":<LINK VALUE OF LINK_DATA>,}}. Note that LIKE_PAGE is not supported CallToAction *AdCreativeLinkDataCallToAction `json:"call_to_action,omitempty"` // Link caption. Overwrites the caption under the title in the link. The caption must be an actual URLs and should accurately reflect the URL and associated advertiser or business someone visits when they click on it. See post for more info. This setting is not used on Instagram Caption string `json:"caption,omitempty"` // A 2-5 element array of link objects required for carousel ads. If multi_share_optimized is set to true, this array could have up to 10 objects. Facebook will automatically optimize the order in which the carousel cards are shown and display the top 5. We strongly recommend that you use at least 3 attachments for achieving optimal performance; allowing minimum of 2 attachments is for enabling lightweight integrations and using 2 objects might result in sub-optimal campaign results. If this ad creative is used for an Instagram Carousel ad, you will need to have at least 3 attachments for MOBILE_APP_INSTALLS ads and 2 for the other objectives. If more than 5 are given, only the first 5 will be shown on Instagram, even if multi_share_optimized is true. ChildAttachments []AdCreativeLinkDataChildAttachment `json:"child_attachments,omitempty"` // Customization rules for a dynamic ad // CustomizationRulesSpec []AdCustomizationRuleSpec `json:"customization_rules_spec,omitempty"` // Link description. Overwrites the description in the link on Facebook. See post for more info. This setting is not used on Instagram Description string `json:"description,omitempty"` // The id of a Facebook event. This is only to be used if this creative is for a Website Clicks campaign, the Call To Action is Buy Tickets, and the link points to the ticketing website of this Facebook event EventID string `json:"event_id,omitempty"` // Whether to force the post to render in a single link format ForceSingleLink bool `json:"force_single_link,omitempty"` // How to the image should be cropped. Different placements use different crop specs. For example, Facebook News Feed uses the crop spec with 191x100 key, and Instagram uses 100x100 crop spec // ImageCrops *AdsImageCrops `json:"image_crops,omitempty"` // Hash of an image in your image library with Facebook. Specify this field or picture but not both ImageHash string `json:"image_hash,omitempty"` // How to render image overlays on a dynamic item in Dynamic Ads // ImageOverlaySpec *AdCreativeLinkDataImageOverlaySpec `json:"image_overlay_spec,omitempty"` // Link url. This url is required to be the same as the CTA link url. See post for more info. This field is required for a carousel ad Link string `json:"link,omitempty"` // The main body of the post. See post for more info. This field is required for a carousel ad Message string `json:"message,omitempty"` MultiShareEndCard bool `json:"multi_share_end_card,omitempty"` MultiShareOptimized bool `json:"multi_share_optimized,omitempty"` // Name of the link. Overwrites the title of the link preview. See post for more info Name string `json:"name,omitempty"` // The id of a Facebook native offer OfferID string `json:"offer_id,omitempty"` // A welcome text from page to user on Messenger once a user performs send message action on an ad PageWelcomeMessage string `json:"page_welcome_message,omitempty"` // URL of a picture to use in the post. Specify this field or image_hash but not both. See post for more info. The image specified at the URL will be saved into the ad accounts image library Picture string `json:"picture,omitempty"` // Customized contents provided by the advertiser for the ad post-click experience // PostClickConfiguration AdCreativePostClickConfiguration `json:"post_click_configuration,omitempty"` // List of product IDs provided by the advertiser for Collections RetailerItemIDs []string `json:"retailer_item_ids,omitempty"` // Use with force_single_link = true in order to show a single dynamic item but in carousel format using multiple images from the catalog. See dynamic product ad ShowMultipleImages bool `json:"show_multiple_images,omitempty"` }
AdCreativeLinkData see https://developers.facebook.com/docs/marketing-api/reference/ad-creative-link-data/
type AdCreativeLinkDataAppLinkSpec ¶
type AdCreativeLinkDataAppLinkSpec struct { // Native deeplinks to use on Android Android []AndroidAppLink `json:"android,omitempty"` // Native deeplinks to use on iOS Ios []IosAppLink `json:"ios,omitempty"` // Native deeplinks to use on iPad Ipad []IosAppLink `json:"ipad,omitempty"` // Native deeplinks to use on iPhone Iphone []IosAppLink `json:"iphone,omitempty"` }
AdCreativeLinkDataAppLinkSpec see https://developers.facebook.com/docs/marketing-api/reference/ad-creative-link-data-app-link-spec/
type AdCreativeLinkDataCallToAction ¶
type AdCreativeLinkDataCallToAction struct { // The type of the action. Not all types can be used for all ads. Check Ads Product Guide to see which type can be used based on the objective of your campaign. Type string `json:"type,omitempty"` // JSON containing the call to action data. Value *AdCreativeLinkDataCallToActionValue `json:"value,omitempty"` }
AdCreativeLinkDataCallToAction see https://developers.facebook.com/docs/marketing-api/reference/ad-creative-link-data-call-to-action/
type AdCreativeLinkDataCallToActionValue ¶
type AdCreativeLinkDataCallToActionValue struct { // The app destination type. AppDestination string `json:"app_destination,omitempty"` // Deep link to the app. AppLink string `json:"app_link,omitempty"` // Application related to the action. Application string `json:"application,omitempty"` // ID of the Facebook event which the attachement show event info EventID string `json:"event_id,omitempty"` // The Lead Ad form id. LeadGenFormID string `json:"lead_gen_form_id,omitempty"` // The destination link when the CTA button is clicked. This is required to be same as the link url of the creative. Link string `json:"link,omitempty"` // Caption shown in the attachment. The caption must be an actual URL and should accurately reflect the URL and associated advertiser or business someone visits when they click on it. LinkCaption string `json:"link_caption,omitempty"` // Link format of video. LinkFormat string `json:"link_format,omitempty"` // ID of the Facebook page which the CTA button links to Page string `json:"page,omitempty"` // Open graph object url for canvas virtual good ads. ProductLink string `json:"product_link,omitempty"` }
AdCreativeLinkDataCallToActionValue see https://developers.facebook.com/docs/marketing-api/reference/ad-creative-link-data-call-to-action-value/
type AdCreativeLinkDataChildAttachment ¶
type AdCreativeLinkDataChildAttachment struct { // Call to action of this attachment. On Facebook, we support one optional CTA per attachment. If it not specified, there will be no CTA for this attachment. On Instagram, there is one CTA per attachment. If the CTA is not specified, a CTA will be created by the system, using "Learn more" as the type, and the link from this child attachment as the link. If the CTA is specified, its link must be the same as the link of this child attachment. CallToAction *AdCreativeLinkDataCallToAction `json:"call_to_action,omitempty"` // The display url shown at the end of a video, if the attachment is a video Caption string `json:"caption,omitempty"` // Overwrites the description of each attachment on Facebook, not used on Instagram. Description string `json:"description,omitempty"` // Image crops, using the crop spec with 100x100 key for Carousel ads. If no 100x100 crop spec is provided, the image would be cropped automatically, unless the image is square already. The final cropped image size needs to be at least 200x200 pixels for Facebook, or 600x600 for Instagram. // ImageCrops *AdsImageCrops `json:"image_crops,omitempty"` // The image hash of an uploaded image for this attachment. For an ad on Facebook, if neither picture nor image_hash is set, the image of link_data above will be used. For an ad on Instagram, either picture or image_hash is required. ImageHash string `json:"image_hash,omitempty"` // The link of this attachment. Link string `json:"link,omitempty"` // Overwrites the title of the attachment on Facebook, not used on Instagram. Name string `json:"name,omitempty"` // The url of an image for this attachment. For an ad on Facebook, if neither picture nor image_hash is set, the image specified in link_data above will be used. For an ad on Instagram, either picture or image_hash is required. Picture string `json:"picture,omitempty"` // Whether to force the card to render statically, even in a dynamic ad. StaticCard bool `json:"static_card,omitempty"` // ID of an uploaded video, if this attachment is a video. Not supported for Instagram ads. VideoID string `json:"video_id,omitempty"` }
AdCreativeLinkDataChildAttachment see https://developers.facebook.com/docs/marketing-api/reference/ad-creative-link-data-child-attachment/
type AdCreativePhotoData ¶
type AdCreativePhotoData struct { BrandedContentSponsorPageID string `json:"branded_content_sponsor_page_id"` BrandedContentSponsorRelationship string `json:"branded_content_sponsor_relationship"` Caption string `json:"caption"` ImageHash string `json:"image_hash"` PageWelcomeMessage string `json:"page_welcome_message"` URL string `json:"url"` }
AdCreativePhotoData is the specific part of a creative that only photo posts do have.
type AdCreativeService ¶
type AdCreativeService struct { *fb.StatsContainer // contains filtered or unexported fields }
AdCreativeService works on adcreatives.
func (*AdCreativeService) Create ¶
func (as *AdCreativeService) Create(ctx context.Context, a AdCreative) (string, string, error)
Create uploads a new adcreative and returns the ID.
func (*AdCreativeService) Get ¶
func (as *AdCreativeService) Get(ctx context.Context, id string) (*AdCreative, error)
Get return a single creative.
func (*AdCreativeService) GetPreviewURL ¶
GetPreviewURL returns the preview URL of a creative.
func (*AdCreativeService) ReadList ¶
func (as *AdCreativeService) ReadList(ctx context.Context, act string, res chan<- AdCreative) error
ReadList writes all adcreatives from an account to res.
type AdGeoLocation ¶
type AdGeoLocation struct { Key string `json:"key"` Name string `json:"name"` Type string `json:"type"` CountryCode string `json:"country_code"` SupportsRegion bool `json:"supports_region"` SupportsCity bool `json:"supports_city"` }
AdGeoLocation contains different geolocation types to be used for adset targeting.
type AdListCall ¶
type AdListCall struct { *fb.RouteBuilder // contains filtered or unexported fields }
AdListCall is used for Listing adsets.
type AdService ¶
type AdService struct {
// contains filtered or unexported fields
}
AdService works with Ads.
func (*AdService) Create ¶
Create uploads a new adset, returns the fields and returns the created adset.
func (*AdService) List ¶
func (as *AdService) List(act string) *AdListCall
List returns all ads of an account.
func (*AdService) ListOfAdset ¶
func (as *AdService) ListOfAdset(adsetID string) *AdListCall
ListOfAdset returns all ads of an adset.
type Adaccounts ¶
Adaccounts https://developers.facebook.com/docs/marketing-api/reference/custom-audience/adaccounts/
type Adset ¶
type Adset struct { AccountID string `json:"account_id,omitempty"` AttributionSpec json.RawMessage `json:"attribution_spec,omitempty"` BidAmount uint64 `json:"bid_amount,omitempty"` BidStrategy string `json:"bid_strategy,omitempty"` BillingEvent string `json:"billing_event,omitempty"` BudgetRemaining float64 `json:"budget_remaining,omitempty,string"` Campaign *Campaign `json:"campaign,omitempty"` CampaignID string `json:"campaign_id,omitempty"` ConfiguredStatus string `json:"configured_status,omitempty"` CreatedTime fb.Time `json:"created_time,omitempty"` DailyBudget float64 `json:"daily_budget,omitempty,string"` DailyMinSpendTarget uint64 `json:"daily_min_spend_target,omitempty,string"` DailySpendCap uint64 `json:"daily_spend_cap,omitempty,string"` DestinationType string `json:"destination_type,omitempty"` DeliveryEstimate *DeliveryEstimate `json:"delivery_estimate,omitempty"` EffectiveStatus string `json:"effective_status,omitempty"` EndTime fb.Time `json:"end_time,omitempty"` FrequencyControlSpecs []FrequencyControlSpec `json:"frequency_control_specs,omitempty"` ID string `json:"id,omitempty"` LifetimeBudget float64 `json:"lifetime_budget,omitempty,string"` LifetimeMinSpendTarget uint64 `json:"lifetime_min_spend_target,omitempty,string"` LifeTimeSpendCap uint64 `json:"lifetime_spend_cap,omitempty,string"` LifetimeImps uint64 `json:"lifetime_imps,omitempty"` Name string `json:"name,omitempty"` OptimizationGoal string `json:"optimization_goal,omitempty"` PacingType []string `json:"pacing_type,omitempty"` PromotedObject *PromotedObject `json:"promoted_object,omitempty"` RecurringBudgetSemantics bool `json:"recurring_budget_semantics,omitempty"` StartTime fb.Time `json:"start_time,omitempty"` Status string `json:"status,omitempty"` Targeting *Targeting `json:"targeting,omitempty"` UpdatedTime fb.Time `json:"updated_time,omitempty"` TargetingOptimizationTypes map[string]int32 `json:"targeting_optimization_types,omitempty"` }
Adset from https://developers.facebook.com/docs/marketing-api/reference/ad-campaign
type AdsetListCall ¶
type AdsetListCall struct { *fb.RouteBuilder // contains filtered or unexported fields }
AdsetListCall is used for Listing adsets.
type AdsetService ¶
type AdsetService struct {
// contains filtered or unexported fields
}
AdsetService is used for working with adsets.
func (*AdsetService) CountAdSets ¶
CountAdSets returns the total amount of active adsets.
func (*AdsetService) Create ¶
Create uploads a new adset, returns the fields and returns the created adset.
func (*AdsetService) GetDeliveryEstimate ¶
func (as *AdsetService) GetDeliveryEstimate(ctx context.Context, id string, t *Targeting) (uint64, error)
GetDeliveryEstimate returns the delivery_estimate mau for a given adset.
func (*AdsetService) List ¶
func (as *AdsetService) List(account string, fields []string) *AdsetListCall
List returns a list of adsets for an account.
func (*AdsetService) ListOfCampaign ¶
func (as *AdsetService) ListOfCampaign(campaignID string, fields []string) *AdsetListCall
ListOfCampaign returns an adsetlistcall for listing the adsets of a campaign id.
type AlbumImage ¶ added in v0.0.4
type AndroidAppLink ¶
type AndroidAppLink struct { // The native apps name in the Android store. AppName string `json:"app_name,omitempty"` // The fully classified class name of the app for intent generation. Class string `json:"class,omitempty"` // The fully classified package name of the app for intent generation. Package string `json:"package,omitempty"` // The native Android URL that will be navigated to. URL string `json:"url,omitempty"` }
AndroidAppLink see https://developers.facebook.com/docs/graph-api/reference/android-app-link/
type AttachmentData ¶
type AttachmentData struct { Description string `json:"description"` Media struct { Image struct { Height int `json:"height"` Src string `json:"src"` Width int `json:"width"` } `json:"image"` } `json:"media"` Target struct { ID string `json:"id"` URL string `json:"url"` } `json:"target"` Type string `json:"type"` URL string `json:"url,omitempty"` }
type Attachments ¶
type Attachments struct {
Data []AttachmentData `json:"data"`
}
type AudienceService ¶
type AudienceService struct {
// contains filtered or unexported fields
}
AudienceService contains all methods for working on audiences.
func (*AudienceService) Create ¶
func (as *AudienceService) Create(ctx context.Context, act string, a CustomAudience) (string, error)
Create uploads a new custom audience and returns the id of the custom audience.
func (*AudienceService) Delete ¶
func (as *AudienceService) Delete(ctx context.Context, id string) error
Delete removes a single audience.
func (*AudienceService) DeleteLookalikes ¶
func (as *AudienceService) DeleteLookalikes(ctx context.Context, id string) error
DeleteLookalikes removes all lookalikes of an audience.
func (*AudienceService) EditIDs ¶
func (as *AudienceService) EditIDs(ctx context.Context, audienceID string, c <-chan string, doRemove bool) error
EditIDs starts adding or removing ids from a custom audience.
func (*AudienceService) Get ¶
func (as *AudienceService) Get(ctx context.Context, id string) (*CustomAudience, error)
Get returns a single audience.
func (*AudienceService) ListAdAccounts ¶
ListAdAccounts lists the accounts an audience is shared to.
func (*AudienceService) ListCustom ¶
func (as *AudienceService) ListCustom(ctx context.Context, act string) ([]CustomAudience, error)
ListCustom returns all custom audiences for that account.
func (*AudienceService) ListCustomFiltered ¶
func (as *AudienceService) ListCustomFiltered(ctx context.Context, act string, filtering []fb.Filter) ([]CustomAudience, error)
ListCustomFiltered returns a filtered list of custom audiences for that account. ...&filtering=[{field:'subtype',operator:'EQUAL',value:'WEBSITE'}].
func (*AudienceService) Share ¶
func (as *AudienceService) Share(ctx context.Context, customAudienceID string, adaccountIDs []string) error
Share shares a custom audience with the provided adaccounts.
func (*AudienceService) ShareCustom ¶
func (as *AudienceService) ShareCustom(ctx context.Context, customAudienceID string, adaccountIDs, relationshipTypes []string) error
ShareCustom shares a custom audience with the provided adaccounts.
func (*AudienceService) Update ¶
func (as *AudienceService) Update(ctx context.Context, a CustomAudience) error
Update updates an audience.
type Campaign ¶
type Campaign struct { AccountID string `json:"account_id,omitempty"` BuyingType string `json:"buying_type,omitempty"` CampaignGroupID string `json:"campaign_group_id,omitempty"` BidStrategy string `json:"bid_strategy,omitempty"` BidAmount uint64 `json:"bid_amount,omitempty"` CanUseSpendCap bool `json:"can_use_spend_cap,omitempty"` ConfiguredStatus string `json:"configured_status,omitempty"` CreatedTime string `json:"created_time,omitempty"` DailyBudget uint64 `json:"daily_budget,omitempty,string"` EffectiveStatus string `json:"effective_status,omitempty"` ID string `json:"id,omitempty"` LifeTimeBudget uint64 `json:"lifetime_budget,omitempty,string"` Name string `json:"name,omitempty"` Objective string `json:"objective,omitempty"` SpendCap uint64 `json:"spend_cap,omitempty,string"` StartTime fb.Time `json:"start_time,omitempty"` Status string `json:"status,omitempty"` StopTime fb.Time `json:"stop_time,omitempty"` UpdatedTime fb.Time `json:"updated_time,omitempty"` SpecialAdCategories []string `json:"special_ad_categories,omitempty"` }
Campaign from https://developers.facebook.com/docs/marketing-api/reference/ad-campaign-group
type CampaignListCall ¶
type CampaignListCall struct { *fb.RouteBuilder // contains filtered or unexported fields }
CampaignListCall is used for listing campaigns.
type CampaignService ¶
type CampaignService struct {
// contains filtered or unexported fields
}
CampaignService works with campaigns.
func (*CampaignService) Create ¶
Create uploads a new adset, returns the fields and returns the created adset.
func (*CampaignService) List ¶
func (cs *CampaignService) List(act string) *CampaignListCall
List creates a new CampaignListCall.
type City ¶
type City struct { Country string `json:"country"` DistanceUnit string `json:"distance_unit"` Key string `json:"key"` Name string `json:"name"` Radius int `json:"radius"` Region string `json:"region"` RegionID string `json:"region_id"` }
City can be targeted.
type Comment ¶
type Comment struct { ID string `json:"id,omitempty"` Attachment json.RawMessage `json:"attachment,omitempty"` CanComment bool `json:"can_comment,omitempty"` CanRemove bool `json:"can_remove,omitempty"` CanHide bool `json:"can_hide,omitempty"` CanLike bool `json:"can_like,omitempty"` CanReplyPrivately bool `json:"can_reply_privately,omitempty"` CommentCount int32 `json:"comment_count,omitempty"` CreatedTime fb.Time `json:"created_time,omitempty"` From *User `json:"from,omitempty"` LikeCount int32 `json:"like_count,omitempty"` Message string `json:"message,omitempty"` MessageTags []MessageTag `json:"message_tags,omitempty"` Object json.RawMessage `json:"object,omitempty"` Parent *Comment `json:"parent,omitempty"` PrivateReplyConversation json.RawMessage `json:"private_reply_conversation,omitempty"` UserLikes bool `json:"user_likes,omitempty"` }
Comment represents a comment on a facebook post.
type CommentListCall ¶
type CommentListCall struct { *fb.RouteBuilder *fb.StatsContainer // contains filtered or unexported fields }
CommentListCall is used for listing comments of a post.
type Component ¶
type Component struct { Type string `json:"type"` PositionSpec *PositionSpec `json:"position_spec"` PollSpec *PollSpec `json:"poll_spec"` }
Component of the Interactive component struct.
type ContainerData ¶
type ContainerData struct {
ID []string `json:"id"`
}
type ConversionActionQuery ¶
type ConversionActionQuery struct { ActionType []string `json:"action.type,omitempty"` FbPixel []string `json:"fb_pixel,omitempty"` Page []string `json:"page,omitempty"` Post []string `json:"post,omitempty"` }
ConversionActionQuery contains tracking specs.
type CustomAudience ¶
type CustomAudience struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` AccountID string `json:"account_id,omitempty"` Description string `json:"description,omitempty"` Subtype string `json:"subtype,omitempty"` ApproximateCountUpperBound int `json:"approximate_count_upper_bound,omitempty"` ApproximateCountLowerBound int `json:"approximate_count_lower_bound,omitempty"` Rule string `json:"rule,omitempty"` CustomerFileSource string `json:"customer_file_source,omitempty"` Lookalikes []string `json:"lookalike_audience_ids,omitempty"` Adaccounts *Adaccounts `json:"adaccounts,omitempty"` LookalikeSpec *LookalikeSpec `json:"lookalike_spec,omitempty"` OriginAudienceID string `json:"origin_audience_id,omitempty"` }
CustomAudience https://developers.facebook.com/docs/marketing-api/reference/custom-audience unused fields: ApproximateCount int `json:"approximate_count,omitempty"`.
type CustomConversion ¶
type CustomConversion struct { ID string `json:"id"` AccountID string `json:"account_id"` AggregationRule string `json:"aggregation_rule"` Business Business `json:"business"` Name string `json:"name"` Rule string `json:"rule"` CustomEventType string `json:"custom_event_type"` CreationTime fb.Time `json:"creation_time"` DataSources []DataSource `json:"data_sources"` Description string `json:"description"` DefaultConversionValue int `json:"default_conversion_value"` LastFiredTime fb.Time `json:"last_fired_time"` IsArchived bool `json:"is_archived"` FirstFiredTime fb.Time `json:"first_fired_time"` Pixel Pixel `json:"pixel"` OfflineConversionDataSet interface{} `json:"offline_conversion_data_set"` EventSourceType string `json:"event_source_type"` RetentionDays int `json:"retention_days"` }
CustomConversion https://developers.facebook.com/docs/marketing-api/reference/custom-conversion/
type CustomConversionService ¶
type CustomConversionService struct {
// contains filtered or unexported fields
}
CustomConversionService contains all methods for working on custom conversions.
func (*CustomConversionService) Create ¶
func (ccs *CustomConversionService) Create(ctx context.Context, businessID string, cc CustomConversion) (string, error)
Create uploads a new custom conversion and returns the id of the custom conversion.
func (*CustomConversionService) List ¶
func (ccs *CustomConversionService) List(ctx context.Context, act string) ([]CustomConversion, error)
List returns all custom conversions for the specified account.
type DailyOutcomesCurve ¶
type DailyOutcomesCurve struct { Spend float64 `json:"spend"` Reach float64 `json:"reach"` Impressions float64 `json:"impressions"` Actions float64 `json:"actions"` }
DailyOutcomesCurve talk to phillip.
type Data ¶
type Data struct { DailyOutcomesCurve []DailyOutcomesCurve `json:"daily_outcomes_curve"` EstimateDau int64 `json:"estimate_dau"` EstimateMau int64 `json:"estimate_mau"` EstimateMauLowerBound int64 `json:"estimate_mau_lower_bound"` EstimateMauUpperBound int64 `json:"estimate_mau_upper_bound"` EstimateReady bool `json:"estimate_ready"` }
Data is a single delivery estimate.
type DataSource ¶
DataSource is part of a CustomConversion.
type DeliveryEstimate ¶
type DeliveryEstimate struct {
Data []Data `json:"data"`
}
DeliveryEstimate is a collection of Data structs.
type Device ¶
type Device struct { Name string `json:"name"` Description string `json:"description"` Platform string `json:"platform"` AudienceSize int `json:"audience_size"` Type string `json:"type"` }
Device contains device information to be used for adset targeting.
type EventService ¶
type EventService struct {
// contains filtered or unexported fields
}
EventService contains all methods for working on events.
func (*EventService) SimpleList ¶
SimpleList returns event names for a given pixel id.
type FBBusinessAccount ¶
FB Business Account represents an ad account.
type FlexibleSpec ¶
type FlexibleSpec struct { Interests []IDContainer `json:"interests,omitempty"` Behaviors []IDContainer `json:"behaviors,omitempty"` LifeEvents []IDContainer `json:"life_events,omitempty"` WorkEmployers []IDContainer `json:"work_employers,omitempty"` FamilyStatuses []IDContainer `json:"family_statuses,omitempty"` WorkPositions []IDContainer `json:"work_positions,omitempty"` Politics []IDContainer `json:"politics,omitempty"` EducationMajors []IDContainer `json:"education_majors,omitempty"` EducationStatuses []int `json:"education_statuses,omitempty"` }
type FrequencyControlSpec ¶
type FrequencyControlSpec struct { Event string `json:"event"` IntervalDays uint64 `json:"interval_days"` MaxFrequency uint64 `json:"max_frequency"` }
FrequencyControlSpec controls the frequency of an adset.
type GeoLocation ¶
type GeoLocation struct { Countries []string `json:"countries,omitempty"` CountryGroups []string `json:"country_groups,omitempty"` }
GeoLocation ...
type GeoLocations ¶
type GeoLocations struct { Countries []string `json:"countries,omitempty"` LocationTypes []string `json:"location_types,omitempty"` Cities []City `json:"cities,omitempty"` Regions []Region `json:"regions,omitempty"` Zips []Zip `json:"zips,omitempty"` }
GeoLocations is a set of countries, cities, and regions that can be targeted.
type GetPostContent ¶
type IDContainer ¶
IDContainer contains an ID and a name.
type Image ¶
type Image struct { ID string `json:"id,omitempty"` Height int `json:"height,omitempty"` Hash string `json:"hash,omitempty"` IsAssociatedCreativesInAdgroups bool `json:"is_associated_creatives_in_adgroups,omitempty"` Name string `json:"name,omitempty"` OriginalHeight int `json:"original_height,omitempty"` OriginalWidth int `json:"original_width,omitempty"` PermalinkURL string `json:"permalink_url,omitempty"` Status string `json:"status,omitempty"` UpdatedTime string `json:"updated_time,omitempty"` CreatedTime string `json:"created_time,omitempty"` URL string `json:"url,omitempty"` AccountID string `json:"account_id,omitempty"` URL128 string `json:"url_128,omitempty"` Width int `json:"width,omitempty"` Creatives []string `json:"creatives,omitempty"` }
Image represents an image being uploaded to the creative library.
type ImageService ¶
type ImageService struct {
// contains filtered or unexported fields
}
ImageService works with ad images.
func (*ImageService) UploadToAlbum ¶ added in v0.0.4
func (is *ImageService) UploadToAlbum(ctx context.Context, data AlbumImage) (interface{}, error)
Upload uploads an image to Facebook.
type Insight ¶
type Insight struct { AccountID string `json:"account_id"` Actions ActionTypeValue `json:"actions"` AdsetID string `json:"adset_id"` AdID string `json:"ad_id"` Objective string `json:"objective"` AdsetName string `json:"adset_name"` Age string `json:"age"` CampaignID string `json:"campaign_id"` CampaignName string `json:"campaign_name"` PublisherPlatform string `json:"publisher_platform"` PlatformPosition string `json:"platform_position"` Clicks uint64 `json:"clicks,string"` DateStart string `json:"date_start"` DateStop string `json:"date_stop"` Frequency float64 `json:"frequency,string"` Gender string `json:"gender"` Impressions uint64 `json:"impressions,string"` Reach float64 `json:"reach,string"` Spend float64 `json:"spend,string"` VideoContinues2SecWatchedActions ActionTypeValue `json:"video_continuous_2_sec_watched_actions"` Video15SecWatchedActions ActionTypeValue `json:"video_15_sec_watched_actions"` VideoThruplayWatchedActions ActionTypeValue `json:"video_thruplay_watched_actions"` Video30SecWatchedActions ActionTypeValue `json:"video_30_sec_watched_actions"` VideoAvgTimeWatchedActions ActionTypeValue `json:"video_avg_time_watched_actions"` VideoP100WatchedActions ActionTypeValue `json:"video_p100_watched_actions"` VideoP25WatchedActions ActionTypeValue `json:"video_p25_watched_actions"` VideoP50WatchedActions ActionTypeValue `json:"video_p50_watched_actions"` VideoP75WatchedActions ActionTypeValue `json:"video_p75_watched_actions"` VideoP95WatchedActions ActionTypeValue `json:"video_p95_watched_actions"` VideoPlayActions ActionTypeValue `json:"video_play_actions"` InteractiveComponentTap []InteractiveComponent `json:"interactive_component_tap"` DeviceType string `json:"impression_device"` Region string `json:"region"` Country string `json:"country"` }
Insight contains insight data for an facebook graph API object, broken down by the desired day.
type InsightsRequest ¶
type InsightsRequest struct { *InsightsService *fb.RouteBuilder }
InsightsRequest is used to build a new request for creating an insights run.
func (*InsightsRequest) Download ¶
func (ir *InsightsRequest) Download(ctx context.Context) ([]Insight, error)
Download returns all insights from the request in one slice.
func (*InsightsRequest) GenerateReport ¶
GenerateReport creates the insights report, waits until it's finished building, reads to c and then deletes it.
type InsightsService ¶
type InsightsService struct { *fb.StatsContainer // contains filtered or unexported fields }
InsightsService contains all methods for working on audiences.
func (*InsightsService) NewReport ¶
func (is *InsightsService) NewReport(account string) *InsightsRequest
NewReport creates a new InsightsRequest.
func (*InsightsService) NewReportOfCampaign ¶
func (is *InsightsService) NewReportOfCampaign(campaignID string) *InsightsRequest
NewReportOfCampaign creates a new InsightsRequest.
type InstaAdAccount ¶
InstaAccount represents an Instagram ad account.
type InstaPostReponse ¶
type InstaPostReponse struct {
Post_ID string `json:"id"`
}
type InstaPostSingleContent ¶
type InstaPostSingleContent struct { MediaType string `json:"media_type,omitempty"` Caption string `json:"caption,omitempty"` VideoUrl string `json:"video_url,omitempty"` ImageUrl string `json:"image_url,omitempty"` Timestamp string `json:"timestamp,omitempty"` Published bool `json:"published,omitempty"` ScheduleDate string `json:"scheduled_publish_time,omitempty"` }
type InstagramActor ¶
InstagramActor represents an instagram actor.
type InteractiveComponent ¶
type InteractiveComponent struct { InteractiveComponentStickerID string `json:"interactive_component_sticker_id"` InteractiveComponentStickerResponse string `json:"interactive_component_sticker_response"` Value string `json:"value"` }
InteractiveComponent represents poll results.
type InteractiveComponentsSpec ¶
type InteractiveComponentsSpec struct {
Components []*Component `json:"components"`
}
InteractiveComponentsSpec is mainly used for Video Poll Ads.
type InterestService ¶
type InterestService struct {
// contains filtered or unexported fields
}
InterestService works with ads interests.
func (*InterestService) Search ¶
func (is *InterestService) Search(ctx context.Context, query string, limit int) ([]InterestTargeting, error)
Search returns a list of InterestTargetings.
func (*InterestService) TargetingSearch ¶
func (is *InterestService) TargetingSearch(ctx context.Context, act string, query string) ([]InterestTargeting, error)
TargetingSearch searches for a targeting.
type InterestTargeting ¶
type InterestTargeting struct { ID string `json:"id"` Name string `json:"name"` AudienceSize uint64 `json:"audience_size_upper_bound"` Type string `json:"type"` Path []string `json:"path"` }
InterestTargeting represents an ad interest to be used in an adset targeting.
type IosAppLink ¶
type IosAppLink struct { // The native apps name in the iTunes store. AppName string `json:"app_name,omitempty"` // The native apps ID in the iTunes store. AppStoreID string `json:"app_store_id,omitempty"` // The native iOS URL that will be navigated to. URL string `json:"url,omitempty"` }
IosAppLink see https://developers.facebook.com/docs/graph-api/reference/ios-app-link/
type LeadFormResp ¶ added in v0.0.4
type LeadFormResp struct {
FormId string `json:"id"`
}
type LeadGen ¶ added in v0.0.4
type LeadGen struct { Name string `json:"name"` PageID string `json:"page_id"` FollowUpActionURL string `json:"follow_up_action_url"` PrivacyPolicy struct { URL string `json:"url"` LinkText string `json:"link_text"` } `json:"privacy_policy"` ContextCard struct { Title string `json:"title"` Content []string `json:"content"` Style string `json:"style"` CoverPhoto string `json:"cover_photo_id"` } `json:"context_card"` ThankYouPage struct { Title string `json:"title"` Body string `json:"body"` ButtonType string `json:"button_type"` ButtonText string `json:"button_text"` WebsiteURL string `json:"website_url"` } `json:"thank_you_page"` Questions []struct { Key string `json:"key"` Type string `json:"type"` Label string `json:"label,omitempty"` } `json:"questions"` }
Lead Generation Form
type LocationSpec ¶
type LocationSpec struct { GeoLocations *GeoLocation `json:"geo_locations,omitempty"` ExcludedGeoLocations *GeoLocation `json:"excluded_geo_locations,omitempty"` }
LocationSpec ...
type LookalikeOrigion ¶
type LookalikeOrigion struct { ID string `json:"id"` Name string `json:"name"` Type string `json:"type"` }
LookalikeOrigion tells which audience a lookalike one is related to.
type LookalikeSpec ¶
type LookalikeSpec struct { // Country string `json:"country,omitempty"` Origin []LookalikeOrigion `json:"origin,omitempty"` Ratio float64 `json:"ratio,omitempty"` Type string `json:"type,omitempty"` }
LookalikeSpec contains the metadata of lookalike audiences.
type MessageTag ¶
type MessageTag struct { ID string `json:"id,omitempty"` Name string `json:"name,omitempty"` Type string `json:"type,omitempty"` Offset int `json:"offset,omitempty"` Length int `json:"length,omitempty"` }
MessageTag represents a tagged user or site in a comment.
type ObjectStorySpec ¶
type ObjectStorySpec struct { PageID string `json:"page_id,omitempty"` InstagramActorID string `json:"instagram_actor_id,omitempty"` VideoData *VideoData `json:"video_data,omitempty"` LinkData *AdCreativeLinkData `json:"link_data,omitempty"` PhotoData *AdCreativePhotoData `json:"photo_data,omitempty"` }
ObjectStorySpec contains the media of a creative.
type OperatingSystem ¶
type OperatingSystem struct { Type string `json:"type"` Name string `json:"name"` Platform string `json:"platform"` Description string `json:"description"` }
OperatingSystem contains information about an user OS to be used for adset targeting.
type OptionCallToAction ¶
type OptionCallToAction struct { Value *OptionCallToActionValue `json:"value"` Type string `json:"type"` }
OptionCallToAction represents the action and call to action of an answer of a poll.
type OptionCallToActionValue ¶
type OptionCallToActionValue struct { Link string `json:"link"` LinkFormat string `json:"link_format,omitempty"` }
OptionCallToActionValue describes the link of a call to action answer.
type Page ¶
type Page struct { ID string `json:"id"` GlobalBrandPageName string `json:"global_brand_page_name"` }
Page represents a facebook page.
type PageService ¶
type PageService struct {
// contains filtered or unexported fields
}
PageService contains all methods for working on pages.
func (*PageService) CreateLeadAdForm ¶ added in v0.0.4
func (ps *PageService) CreateLeadAdForm(ctx context.Context, content LeadGen, id string) (*LeadFormResp, error)
Create LeadGen Form
func (*PageService) GetClientPages ¶
GetClientPages returns all client pages.
func (*PageService) GetInstagramActor ¶
func (ps *PageService) GetInstagramActor(ctx context.Context, id string) (*InstagramActor, error)
GetInstagramActor returns a single instagram actor.
func (*PageService) GetInstagramActors ¶
func (ps *PageService) GetInstagramActors(ctx context.Context, businessID string) ([]InstagramActor, error)
GetInstagramActors returns all instagram accounts.
func (*PageService) GetOwnedPages ¶
GetOwnedPages returns all owned pages.
func (*PageService) GetPageBackedInstagramAccounts ¶
func (ps *PageService) GetPageBackedInstagramAccounts(ctx context.Context, pageID string) (*InstagramActor, error)
GetPageBackedInstagramAccounts returns the instagram actor associated with a facebook page.
func (*PageService) SetPageAccessToken ¶
func (ps *PageService) SetPageAccessToken(ctx context.Context, pageID string) (context.Context, error)
SetPageAccessToken tries to retrieve the access token for a facebook page and includes it in the passed context so the fb.Client can use it for making requests.
type PollSpec ¶
type PollSpec struct { QuestionText string `json:"question_text"` OptionAText string `json:"option_a_text"` OptionBText string `json:"option_b_text"` ThemeColor string `json:"theme_color,omitempty"` OptionACallToAction *OptionCallToAction `json:"option_a_call_to_action,omitempty"` OptionBCallToAction *OptionCallToAction `json:"option_b_call_to_action,omitempty"` LinkDisplay string `json:"link_display,omitempty"` }
PollSpec represents the questions and answers of a poll.
type PositionSpec ¶
type PositionSpec struct { X float64 `json:"x"` Y float64 `json:"y"` Width float64 `json:"width"` Height float64 `json:"height"` Rotation float64 `json:"rotation"` }
PositionSpec describes the position of an interactive component.
type Post ¶
type Post struct { CreatedTime string `json:"created_time"` ContentCategory string `json:"content_category"` Description string `json:"description"` EmbedHTML string `json:"embed_html"` Embeddable bool `json:"embeddable"` ID string `json:"id"` Icon string `json:"icon"` IsInstagramEligible bool `json:"is_instagram_eligible"` Picture string `json:"picture"` PermalinkURL string `json:"permalink_url"` MonetizationStatus string `json:"monetization_status"` Length float64 `json:"length"` Link string `json:"link"` Name string `json:"name"` Type string `json:"type"` Published bool `json:"published"` UpdatedTime string `json:"updated_time"` Message string `json:"message"` InstagramEligibility string `json:"instagram_eligibility"` FullPicture string `json:"full_picture"` ObjectID string `json:"object_id"` PromotableID string `json:"promotable_id"` PromotionStatus string `json:"promotion_status"` StatusType string `json:"status_type"` Subscribed bool `json:"subscribed"` TimelineVisibility string `json:"timeline_visibility"` VideoBuyingEligibility []string `json:"video_buying_eligibility"` IsHidden bool `json:"is_hidden"` IsExpired bool `json:"is_expired"` IsPopular bool `json:"is_popular"` IsPublished bool `json:"is_published"` IsSpherical bool `json:"is_spherical"` CallToAction *AdCreativeLinkDataCallToAction `json:"call_to_action"` Format []struct { EmbedHTML string `json:"embed_html"` Filter string `json:"filter"` Height int `json:"height"` Picture string `json:"picture"` Width int `json:"width"` } `json:"format"` From IDContainer `json:"from"` Privacy struct { Allow string `json:"allow"` Deny string `json:"deny"` Description string `json:"description"` Friends string `json:"friends"` Networks string `json:"networks"` Value string `json:"value"` } `json:"privacy"` Status struct { VideoStatus string `json:"video_status"` } `json:"status"` Application struct { Category string `json:"category"` Link string `json:"link"` Name string `json:"name"` ID string `json:"id"` } `json:"application"` Coordinates struct{} `json:"coordinates"` Actions []struct { Name string `json:"name"` Link string `json:"link"` } `json:"actions"` Properties []struct { Name string `json:"name"` Text string `json:"text"` } `json:"properties"` }
Post represents the fb graph api response for a fb video post https://developers.facebook.com/docs/graph-api/reference/v5.0/page-post
type PostMsgReponse ¶
type PostMsgReponse struct {
Post_ID string `json:"id"`
}
type PostPhotoAttachments ¶
type PostPhotoContent ¶
type PostPhotoReponse ¶
type PostPhotoReponse struct {
Photo_ID string `json:"id"`
}
type PostService ¶
type PostService struct { *fb.StatsContainer // contains filtered or unexported fields }
PostService works on posts.
func (*PostService) CountComments ¶
CountComments returns the total amount of parent comments.
func (*PostService) CreateMsgPost ¶
func (ps *PostService) CreateMsgPost(ctx context.Context, businessId string, content GetPostContent, pageAccessToken string) (*PostMsgReponse, error)
Publish a Content and Return Response with Post ID
func (*PostService) CreateVideoPost ¶
func (ps *PostService) CreateVideoPost(ctx context.Context, businessId string, content PostVideoContent, pageAccessToken string) (*PostPhotoReponse, error)
Publish a Content (Video) and Return Response with Post Id
func (*PostService) Create_SinglePostContainer ¶
func (ps *PostService) Create_SinglePostContainer(ctx context.Context, instaId string, content *InstaPostSingleContent) (*InstaPostReponse, error)
Instagram Publish Single Media Post
func (*PostService) GetInstaOrganicPosts ¶
func (*PostService) GetInstaPaidPosts ¶
func (ps *PostService) GetInstaPaidPosts(ctx context.Context, instaId string, urlParams []string) (*[]RespPost_Paid, error)
func (*PostService) GetInstaPost ¶
func (*PostService) GetPosts ¶
func (ps *PostService) GetPosts(ctx context.Context, businessId string, urlParams []string) (*[]RespPost, error)
GetPosts returns all posts under an account
func (*PostService) GetReactions ¶
GetReactions returns the amount of reactions for a post.
func (*PostService) ListComments ¶
func (ps *PostService) ListComments(postID, filter string) *CommentListCall
ListComments creates a new CommentListCall Filters may be "stream" or "toplevel".
func (*PostService) PostContentWithPhotos ¶
func (ps *PostService) PostContentWithPhotos(ctx context.Context, businessId string, content PostPhotoAttachments, pageAccessToken string) (*PostPhotoReponse, error)
Publish a Content (Photo) and Return Response with Photo ID
func (*PostService) UploadPhotoFB ¶
func (ps *PostService) UploadPhotoFB(ctx context.Context, businessId string, imageUrl string, pageAccessToken string) (*PostPhotoReponse, error)
Publish a Content (Photo) and Return Response with Photo ID
type PostVideoContent ¶
type PromotedObject ¶
type PromotedObject struct { PageID string `json:"page_id,omitempty"` PixelID string `json:"pixel_id,omitempty"` PixelRule string `json:"pixel_rule,omitempty"` CustomEventType string `json:"custom_event_type,omitempty"` CustomConversionID string `json:"custom_conversion_id,omitempty"` }
PromotedObject contains the id of a promoted page.
type Region ¶
type Region struct { Key string `json:"key"` Name string `json:"name"` Country string `json:"country"` }
Region can be targeted.
type RespPost ¶
type RespPost struct { Posts struct { Data []struct { ID string `json:"id"` Message string `json:"message"` CreatedTime string `json:"created_time"` Attachments Attachments `json:"attachments"` } `json:"data"` } `json:"posts"` }
------------------------------------------------ Facebook Models Starts ------------------------------------------------ //
type RespPost_Paid ¶
type RespPost_Paid struct { AdPosts struct { Data []struct { ID string `json:"id"` Message string `json:"message"` CreatedTime string `json:"created_time"` Attachments Attachments `json:"attachments"` } `json:"data"` } `json:"ads_posts"` }
type SearchService ¶
type SearchService struct {
// contains filtered or unexported fields
}
SearchService performs searches on the graph API.
func (*SearchService) GetAdGeoLocations ¶
func (s *SearchService) GetAdGeoLocations(ctx context.Context) ([]AdGeoLocation, error)
GetAdGeoLocations returns all AdGeoLocations.
func (*SearchService) GetAdLocales ¶
func (s *SearchService) GetAdLocales(ctx context.Context) ([]AdLocale, error)
GetAdLocales returns all ad locales.
func (*SearchService) GetDevices ¶
func (s *SearchService) GetDevices(ctx context.Context) ([]Device, error)
GetDevices returns all devices.
func (*SearchService) GetOperatingSystems ¶
func (s *SearchService) GetOperatingSystems(ctx context.Context) ([]OperatingSystem, error)
GetOperatingSystems returns all operating systems.
func (*SearchService) GetRegions ¶
func (s *SearchService) GetRegions(ctx context.Context, country string) ([]AdGeoLocation, error)
func (*SearchService) ValidateInterests ¶
func (s *SearchService) ValidateInterests(ctx context.Context, externalIDs []string) (validIDs []string, invalidIDs []string, err error)
ValidateInterests validates a list of interests and returns a list of valid and a list of invalid IDs.
type Service ¶
type Service struct { *fb.Client AdAccounts *AdAccountService AdCreatives *AdCreativeService Adsets *AdsetService Ads *AdService Audiences *AudienceService Campaigns *CampaignService CustomConversions *CustomConversionService Events *EventService Insights *InsightsService Interests *InterestService Images *ImageService Pages *PageService Posts *PostService Search *SearchService Videos *VideoService }
Service interacts with the Facebook Marketing API.
type StoryAttachment ¶
type StoryAttachment struct { Description string `json:"description,omitempty"` Media *StoryAttachmentMedia `json:"media,omitempty"` MediaType string `json:"media_type,omitempty"` Title string `json:"title,omitempty"` StoryAttachmentType string `json:"type,omitempty"` UnshimmedURL string `json:"unshimmed_url,omitempty"` URL string `json:"url,omitempty"` Name string `json:"name,omitempty"` Target *StoryAttachmentTarget `json:"target,omitempty"` }
StoryAttachment holds information about a post, used since v3.3 https://developers.facebook.com/docs/graph-api/reference/story-attachment/
type StoryAttachmentMedia ¶
type StoryAttachmentMedia struct { Image interface{} `json:"image,omitempty"` Source string `json:"source,omitempty"` }
StoryAttachmentMedia https://developers.facebook.com/docs/graph-api/reference/v5.0/story-attachment-media
type StoryAttachmentTarget ¶
type StoryAttachmentTarget struct { ID string `json:"id,omitempty"` UnshimmedURL string `json:"unshimmed_url,omitempty"` URL string `json:"url,omitempty"` }
StoryAttachmentTarget https://developers.facebook.com/docs/graph-api/reference/story-attachment-target/
type StoryAttachments ¶
type StoryAttachments struct {
Data []StoryAttachment `json:"data,omitempty"`
}
StoryAttachments wraps the data slice around the StoryAttachment(s).
type Targeting ¶
type Targeting struct { // inventories PublisherPlatforms []string `json:"publisher_platforms,omitempty"` // sub inventories FacebookPositions []string `json:"facebook_positions,omitempty"` InstagramPositions []string `json:"instagram_positions,omitempty"` AudienceNetworkPositions []string `json:"audience_network_positions,omitempty"` MessengerPositions []string `json:"messenger_positions,omitempty"` AgeMin uint64 `json:"age_min,omitempty"` AgeMax uint64 `json:"age_max,omitempty"` Genders []int `json:"genders,omitempty"` AppInstallState string `json:"app_install_state,omitempty"` CustomAudiences []IDContainer `json:"custom_audiences,omitempty"` ExcludedCustomAudiences []IDContainer `json:"excluded_custom_audiences,omitempty"` GeoLocations *GeoLocations `json:"geo_locations,omitempty"` ExcludedGeoLocations *GeoLocations `json:"excluded_geo_locations,omitempty"` FlexibleSpec []FlexibleSpec `json:"flexible_spec,omitempty"` Exclusions *FlexibleSpec `json:"exclusions,omitempty"` DevicePlatforms []string `json:"device_platforms,omitempty"` ExcludedPublisherCategories []string `json:"excluded_publisher_categories,omitempty"` Locales []int `json:"locales,omitempty"` TargetingOptimization string `json:"targeting_optimization,omitempty"` UserDevice []string `json:"user_device,omitempty"` UserOs []string `json:"user_os,omitempty"` WirelessCarrier []string `json:"wireless_carrier,omitempty"` }
Targeting contains all the targeting information of an adset.
type TargetingOptionStatus ¶
type TargetingOptionStatus struct { ID string `json:"id"` CurrentStatus string `json:"current_status"` FuturePlan []struct { Key string `json:"key"` Value string `json:"value"` } `json:"future_plan"` }
TargetingOptionStatus is the json response of the ValidateInterest request.
type UploadError ¶
UploadError gets returned when the number of total lines does not match the number of received lines or when the number of failed lines is greater than zero.
func (*UploadError) Error ¶
func (ue *UploadError) Error() string
type Video ¶
type Video struct { ContentCategory string `json:"content_category"` CreatedTime string `json:"created_time"` Description string `json:"description"` EmbedHTML string `json:"embed_html"` Embeddable bool `json:"embeddable"` ID string `json:"id"` Icon string `json:"icon"` Length float64 `json:"length"` MonetizationStatus string `json:"monetization_status"` Picture string `json:"picture"` IsCrosspostVideo bool `json:"is_crosspost_video"` IsCrosspostingEligible bool `json:"is_crossposting_eligible"` IsInstagramEligible bool `json:"is_instagram_eligible"` PermalinkURL string `json:"permalink_url"` Published bool `json:"published"` Source string `json:"source"` UpdatedTime string `json:"updated_time"` Title string `json:"title,omitempty"` AutoGeneratedCaptions struct { Data []struct { ID string `json:"id"` } `json:"data"` Paging struct { Cursors struct { Before string `json:"before"` After string `json:"after"` } `json:"cursors"` } `json:"paging"` } `json:"auto_generated_captions,omitempty"` Format []struct { EmbedHTML string `json:"embed_html"` Filter string `json:"filter"` Height int `json:"height"` Picture string `json:"picture"` Width int `json:"width"` } `json:"format"` From struct { Name string `json:"name"` ID string `json:"id"` } `json:"from"` Privacy struct { Allow string `json:"allow"` Deny string `json:"deny"` Description string `json:"description"` Friends string `json:"friends"` Networks string `json:"networks"` Value string `json:"value"` } `json:"privacy"` Status struct { VideoStatus string `json:"video_status"` } `json:"status"` }
Video represents an ad video.
type VideoData ¶
type VideoData struct { ImageHash string `json:"image_hash,omitempty"` ImageURL string `json:"image_url,omitempty"` LinkDescription string `json:"link_description,omitempty"` Message string `json:"message,omitempty"` Title string `json:"title,omitempty"` VideoID string `json:"video_id,omitempty"` CallToAction *AdCreativeLinkDataCallToAction `json:"call_to_action,omitempty"` }
VideoData is the specific part of a creative that only video posts do have.