from __future__ import annotations import enum class ObjectStatus(enum.StrEnum): ACTIVE = "ACTIVE" ARCHIVED = "ARCHIVED" DELETED = "DELETED" PAUSED = "PAUSED" def __str__(self) -> str: return self.value class AdCampaignPlatform(enum.StrEnum): FACEBOOK = "facebook" INSTAGRAM = "instagram" def __str__(self) -> str: return self.value class AdCampaignObjective(enum.StrEnum): # LINK_CLICKS = "LINK_CLICKS" POST_ENGAGEMENT = "POST_ENGAGEMENT" OUTCOME_ENGAGEMENT = "OUTCOME_ENGAGEMENT" OUTCOME_TRAFFIC = "OUTCOME_TRAFFIC" def __str__(self) -> str: return self.value class CampaignBidStrategy(enum.StrEnum): LOWEST_COST_WITHOUT_CAP = "LOWEST_COST_WITHOUT_CAP" def __str__(self) -> str: return self.value class AdSetFacebookPosition(enum.StrEnum): FEED = "feed" STORY = "story" FACEBOOK_REELS = "facebook_reels" FACEBOOK_REELS_OVERLAY = "facebook_reels_overlay" RIGHT_HAND_COLUMN = "right_hand_column" VIDEO_FEEDS = "video_feeds" INSTANT_ARTICLE = "instant_article" INSTREAM_VIDEO = "instream_video" MARKETPLACE = "marketplace" SEARCH = "search" BIZ_DISCO_FEED = "biz_disco_feed" class AdSetInstagramPosition(enum.StrEnum): STREAM = "stream" # Facebook's feed equivalent STORY = "story" SHOP = "shop" EXPLORE = "explore" REELS = "reels" EXPLORE_HOME = "explore_home" class AdSetOptimizationGoal(enum.StrEnum): THRUPLAY = "THRUPLAY" # CampaignObjective.AWARENESS LINK_CLICKS = "LINK_CLICKS" # CampaignObjective.TRAFFIC POST_ENGAGEMENT = "POST_ENGAGEMENT" class AdSetBillingEvent(enum.StrEnum): IMPRESSIONS = "IMPRESSIONS" class AdCreativeCallToActionType(enum.StrEnum): LEARN_MORE = "LEARN_MORE" ORDER_NOW = "ORDER_NOW" SHOP_NOW = "SHOP_NOW" LISTEN_NOW = "LISTEN_NOW" WATCH_MORE = "WATCH_MORE" class AdImageStatus(enum.StrEnum): ACTIVE = "ACTIVE" DELETED = "DELETED" INTERNAL = "INTERNAL" class AdVideoStatus(enum.StrEnum): READY = "ready" PROCESSING = "processing" ERROR = "error" class InstagramMediaProductType(enum.StrEnum): AD = "AD" FEED = "FEED" STORY = "STORY" REELS = "REELS" class InstagramMediaType(enum.StrEnum): CAROUSEL_ALBUM = "CAROUSEL_ALBUM" IMAGE = "IMAGE" VIDEO = "VIDEO" class ErrorCode(enum.IntEnum): # Same page was already assigned to business manager DUPLICATE_ASSET_ASSIGNMENT = 3989 INVALID_ACCESS_TOKEN = 190 # Audience class AudienceBooleanLogicalOperator(enum.StrEnum): OR = "or" AND = "and" class AudienceEqualityOperator(enum.StrEnum): EQUALS = "eq" class AudienceEventSourceType(enum.StrEnum): PAGE = "page" IG_BUSINESS = "ig_business" class EngagementAudienceEventFilterField(enum.StrEnum): EVENT = "event" class EngagementAudienceEventValue(enum.StrEnum): FB_PAGE_ENGAGED = "page_engaged" FB_PAGE_POST_INTERACTION = "page_post_interaction" FB_PAGE_VISITED = "page_visited" FB_PAGE_LIKED = "page_liked" IG_BUSINESS_PROFILE_ALL = "ig_business_profile_all" IG_BUSINESS_PROFILE_ENGAGED = "ig_business_profile_engaged" IG_BUSINESS_PROFILE_VISIT = "ig_business_profile_visit" IG_PROFILE_FOLLOW = "INSTAGRAM_PROFILE_FOLLOW"