Skip to content

Commit 322fc8b

Browse files
mchristopherjuanshishido
authored andcommitted
Add promoted tweets to accounts and targeting options to targeting criteria (#161)
1 parent 22cb40a commit 322fc8b

File tree

2 files changed

+99
-1
lines changed

2 files changed

+99
-1
lines changed

twitter_ads/account.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from twitter_ads.resource import resource_property, Resource
1212
from twitter_ads.creative import (AccountMedia, MediaCreative, ScheduledTweet,
13-
Video, VideoWebsiteCard)
13+
Video, VideoWebsiteCard, PromotedTweet)
1414
from twitter_ads.audience import TailoredAudience
1515
from twitter_ads.campaign import (AppList, Campaign, FundingInstrument, LineItem,
1616
PromotableUser, ScheduledPromotedTweet)
@@ -143,6 +143,12 @@ def scheduled_tweets(self, id=None, **kwargs):
143143
"""
144144
return self._load_resource(ScheduledTweet, id, **kwargs)
145145

146+
def promoted_tweets(self, id=None, **kwargs):
147+
"""
148+
Returns a collection of promoted tweets available to the current account.
149+
"""
150+
return self._load_resource(PromotedTweet, id, **kwargs)
151+
146152
def scheduled_promoted_tweets(self, id=None, **kwargs):
147153
"""
148154
Returns a collection of Scheduled Promoted Tweets available to the current account.

twitter_ads/campaign.py

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ class TargetingCriteria(Resource, Persistence, Batch):
1717
targeting_criteria'
1818
RESOURCE_COLLECTION = '/' + API_VERSION + '/accounts/{account_id}/targeting_criteria'
1919
RESOURCE = '/' + API_VERSION + '/accounts/{account_id}/targeting_criteria/{id}'
20+
RESOURCE_OPTIONS = '/' + API_VERSION + '/targeting_criteria/'
2021

2122
@classmethod
2223
def all(klass, account, line_item_id, **kwargs):
@@ -29,6 +30,97 @@ def all(klass, account, line_item_id, **kwargs):
2930

3031
return Cursor(klass, request, init_with=[account])
3132

33+
@classmethod
34+
def app_store_categories(klass, account, **kwargs):
35+
"""Returns a list of supported app store categories"""
36+
resource = klass.RESOURCE_OPTIONS + 'app_store_categories'
37+
request = Request(account.client, 'get', resource, params=kwargs)
38+
return Cursor(None, request)
39+
40+
@classmethod
41+
def behavior_taxonomies(klass, account, **kwargs):
42+
"""Returns a list of supported behavior taxonomies"""
43+
resource = klass.RESOURCE_OPTIONS + 'behavior_taxonomies'
44+
request = Request(account.client, 'get', resource, params=kwargs)
45+
return Cursor(None, request)
46+
47+
@classmethod
48+
def behaviors(klass, account, **kwargs):
49+
"""Returns a list of supported behaviors"""
50+
resource = klass.RESOURCE_OPTIONS + 'behaviors'
51+
request = Request(account.client, 'get', resource, params=kwargs)
52+
return Cursor(None, request)
53+
54+
@classmethod
55+
def devices(klass, account, **kwargs):
56+
"""Returns a list of supported devices"""
57+
resource = klass.RESOURCE_OPTIONS + 'devices'
58+
request = Request(account.client, 'get', resource, params=kwargs)
59+
return Cursor(None, request)
60+
61+
@classmethod
62+
def events(klass, account, **kwargs):
63+
"""Returns a list of supported events"""
64+
resource = klass.RESOURCE_OPTIONS + 'events'
65+
request = Request(account.client, 'get', resource, params=kwargs)
66+
return Cursor(None, request)
67+
68+
@classmethod
69+
def interests(klass, account, **kwargs):
70+
"""Returns a list of supported interests"""
71+
resource = klass.RESOURCE_OPTIONS + 'interests'
72+
request = Request(account.client, 'get', resource, params=kwargs)
73+
return Cursor(None, request)
74+
75+
@classmethod
76+
def languages(klass, account, **kwargs):
77+
"""Returns a list of supported languages"""
78+
resource = klass.RESOURCE_OPTIONS + 'languages'
79+
request = Request(account.client, 'get', resource, params=kwargs)
80+
return Cursor(None, request)
81+
82+
@classmethod
83+
def locations(klass, account, **kwargs):
84+
"""Returns a list of supported locations"""
85+
resource = klass.RESOURCE_OPTIONS + 'locations'
86+
request = Request(account.client, 'get', resource, params=kwargs)
87+
return Cursor(None, request)
88+
89+
@classmethod
90+
def network_operators(klass, account, **kwargs):
91+
"""Returns a list of supported network operators"""
92+
resource = klass.RESOURCE_OPTIONS + 'network_operators'
93+
request = Request(account.client, 'get', resource, params=kwargs)
94+
return Cursor(None, request)
95+
96+
@classmethod
97+
def platforms(klass, account, **kwargs):
98+
"""Returns a list of supported platforms"""
99+
resource = klass.RESOURCE_OPTIONS + 'platforms'
100+
request = Request(account.client, 'get', resource, params=kwargs)
101+
return Cursor(None, request)
102+
103+
@classmethod
104+
def platform_versions(klass, account, **kwargs):
105+
"""Returns a list of supported platform versions"""
106+
resource = klass.RESOURCE_OPTIONS + 'platform_versions'
107+
request = Request(account.client, 'get', resource, params=kwargs)
108+
return Cursor(None, request)
109+
110+
@classmethod
111+
def tv_markets(klass, account, **kwargs):
112+
"""Returns a list of supported TV markets"""
113+
resource = klass.RESOURCE_OPTIONS + 'tv_markets'
114+
request = Request(account.client, 'get', resource, params=kwargs)
115+
return Cursor(None, request)
116+
117+
@classmethod
118+
def tv_shows(klass, account, **kwargs):
119+
"""Returns a list of supported TV shows"""
120+
resource = klass.RESOURCE_OPTIONS + 'tv_shows'
121+
request = Request(account.client, 'get', resource, params=kwargs)
122+
return Cursor(None, request)
123+
32124

33125
# targeting criteria properties
34126
# read-only

0 commit comments

Comments
 (0)