diff --git a/twitter_ads/account.py b/twitter_ads/account.py index 88cc2a4..f5e59e1 100644 --- a/twitter_ads/account.py +++ b/twitter_ads/account.py @@ -13,7 +13,7 @@ Card, VideoWebsiteCard, PromotedTweet) from twitter_ads.audience import CustomAudience from twitter_ads.campaign import (AppList, Campaign, FundingInstrument, LineItem, - PromotableUser, ScheduledPromotedTweet) + PromotableUser, TrackingTags, ScheduledPromotedTweet) class Account(Resource): @@ -148,6 +148,12 @@ def scheduled_promoted_tweets(self, id=None, **kwargs): """ return self._load_resource(ScheduledPromotedTweet, id, **kwargs) + def tracking_tags(self, id=None, **kwargs): + """ + Returns a collection of Tracking Tags available to the current account. + """ + return self._load_resource(TrackingTags, id, **kwargs) + def video_website_cards(self, id=None, **kwargs): """ Returns a collection of video website cards available to the current account. diff --git a/twitter_ads/campaign.py b/twitter_ads/campaign.py index fbf2717..0096162 100644 --- a/twitter_ads/campaign.py +++ b/twitter_ads/campaign.py @@ -141,7 +141,6 @@ def tv_shows(klass, account, **kwargs): resource_property(TargetingCriteria, 'operator_type') resource_property(TargetingCriteria, 'targeting_type') resource_property(TargetingCriteria, 'targeting_value') -resource_property(TargetingCriteria, 'custom_audience_expansion') # sdk-only resource_property(TargetingCriteria, 'to_delete', transform=TRANSFORM.BOOL) @@ -360,6 +359,26 @@ class ScheduledPromotedTweet(Resource, Persistence): resource_property(ScheduledPromotedTweet, 'scheduled_tweet_id') +class TrackingTags(Resource, Persistence): + + PROPERTIES = {} + + RESOURCE_COLLECTION = '/' + API_VERSION + '/accounts/{account_id}/tracking_tags' + RESOURCE = '/' + API_VERSION + '/accounts/{account_id}/tracking_tags/{id}' + + +# tracking tags properties +# read-only +resource_property(TrackingTags, 'created_at', readonly=True, transform=TRANSFORM.TIME) +resource_property(TrackingTags, 'id', readonly=True) +resource_property(TrackingTags, 'deleted', readonly=True, transform=TRANSFORM.BOOL) +resource_property(TrackingTags, 'updated_at', readonly=True, transform=TRANSFORM.TIME) +# writable +resource_property(TrackingTags, 'line_item_id') +resource_property(TrackingTags, 'tracking_tag_type') +resource_property(TrackingTags, 'tracking_tag_url') + + class Tweet(object): TWEET_CREATE = '/' + API_VERSION + '/accounts/{account_id}/tweet' diff --git a/twitter_ads/creative.py b/twitter_ads/creative.py index ac2a36a..6fcb230 100644 --- a/twitter_ads/creative.py +++ b/twitter_ads/creative.py @@ -626,6 +626,7 @@ def reload(klass): # card properties # read-only resource_property(Card, 'card_uri', readonly=True) +resource_property(Card, 'card_type', readonly=True) resource_property(Card, 'created_at', readonly=True, transform=TRANSFORM.TIME) resource_property(Card, 'deleted', readonly=True, transform=TRANSFORM.BOOL) resource_property(Card, 'updated_at', readonly=True, transform=TRANSFORM.TIME)