logos-sdk 0.0.25.dev21__tar.gz → 0.0.25.dev23__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/DV360.py +23 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MerchantCenter.py +65 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/LICENSE +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/README.md +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/__init__.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/big_query/BigQuery.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/big_query/__init__.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/logging/LogosLogger.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/logging/__init__.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/CampaignManager.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/Collabim.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/Facebook.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/GoogleAds.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/GoogleSheets.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MarketMiner.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MicrosoftAdvertising.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/Sklik.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/__init__.py +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/SOURCES.txt +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/dependency_links.txt +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/requires.txt +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk.egg-info/top_level.txt +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/setup.cfg +0 -0
- {logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/setup.py +0 -0
|
@@ -27,6 +27,7 @@ class DV360Service:
|
|
|
27
27
|
)
|
|
28
28
|
self._CREATE_CHANNEL = self._URL + "/create-channel"
|
|
29
29
|
self._LIST_CHANNELS = self._URL + "/list-channels"
|
|
30
|
+
self._LIST_INSERTION_ORDERS = self._URL + "/list-insertion-orders"
|
|
30
31
|
self._LIST_CHANNEL_SITES = self._URL + "/list-channel-sites"
|
|
31
32
|
self._BULK_EDIT_CHANNEL_SITES = self._URL + "/bulk-edit-channel-sites"
|
|
32
33
|
|
|
@@ -182,6 +183,28 @@ class DV360Service:
|
|
|
182
183
|
else:
|
|
183
184
|
raise DV360ServiceException(response.content)
|
|
184
185
|
|
|
186
|
+
def list_insertion_orders(self, advertiser_id, secret_id, filter_string=None):
|
|
187
|
+
"""
|
|
188
|
+
Lists insertion orders for advertiser
|
|
189
|
+
:param advertiser_id: The ID of the advertiser that owns the insertion orders
|
|
190
|
+
:param secret_id: The ID (name) of the Logos Secret in Secret Manager to be used to access the account specified by account email
|
|
191
|
+
:param filter_string: Allows filtering by insertion order fields
|
|
192
|
+
:return List[InsertionOrders]
|
|
193
|
+
"""
|
|
194
|
+
header = get_headers(self._LIST_INSERTION_ORDERS)
|
|
195
|
+
body = {"advertiser_id": advertiser_id, "secret_id": secret_id}
|
|
196
|
+
|
|
197
|
+
if filter_string is not None:
|
|
198
|
+
body["filter"] = filter_string
|
|
199
|
+
|
|
200
|
+
response = self.session.request("post", url=self._LIST_INSERTION_ORDERS, json=body, headers=header)
|
|
201
|
+
|
|
202
|
+
if response.status_code == HTTPStatus.OK:
|
|
203
|
+
service_response = response.json()
|
|
204
|
+
return service_response["data"]
|
|
205
|
+
else:
|
|
206
|
+
raise DV360ServiceException(response.content)
|
|
207
|
+
|
|
185
208
|
def list_channel_sites(
|
|
186
209
|
self, advertiser_id, secret_id, channel_id, filter_string=None
|
|
187
210
|
):
|
|
@@ -21,6 +21,8 @@ class MerchantCenterService:
|
|
|
21
21
|
self._LIST_PRODUCT_STATUSES = self._URL + "/product-service/product-statuses"
|
|
22
22
|
self._REPORTS_SEARCH = self._URL + "/reports-search"
|
|
23
23
|
self._GET_SUPPLEMENTAL_FEEDS = self._URL + "/feed-service/supplemental-feeds"
|
|
24
|
+
self._PRIMARY_FEED = self._URL + "/feed-service/feeds"
|
|
25
|
+
|
|
24
26
|
|
|
25
27
|
def list_accounts(self, merchant_account_id: str, secret_id: str):
|
|
26
28
|
"""
|
|
@@ -226,6 +228,69 @@ class MerchantCenterService:
|
|
|
226
228
|
else:
|
|
227
229
|
raise MerchantServiceException(response.content)
|
|
228
230
|
|
|
231
|
+
def get_primary_feed(self, secret_id: str, merchant_account_id: str):
|
|
232
|
+
body = {"secret_id": secret_id, "merchant_account_id": merchant_account_id}
|
|
233
|
+
header = get_headers(self._PRIMARY_FEED)
|
|
234
|
+
response = self.session.request(
|
|
235
|
+
"post", url=self._PRIMARY_FEED, json=body, headers=header
|
|
236
|
+
)
|
|
237
|
+
|
|
238
|
+
if response.status_code == HTTPStatus.OK:
|
|
239
|
+
service_response = response.json()
|
|
240
|
+
return service_response["data"]
|
|
241
|
+
else:
|
|
242
|
+
raise MerchantServiceException(response.content)
|
|
243
|
+
|
|
244
|
+
def attach_supplemental_feed_to_primary_feed(
|
|
245
|
+
self,
|
|
246
|
+
secret_id: str,
|
|
247
|
+
merchant_account_id: str,
|
|
248
|
+
primary_feed_id: str,
|
|
249
|
+
supplemental_feed_id: str
|
|
250
|
+
):
|
|
251
|
+
body = {
|
|
252
|
+
"secret_id": secret_id,
|
|
253
|
+
"merchant_account_id": merchant_account_id,
|
|
254
|
+
"primary_feed_id": primary_feed_id,
|
|
255
|
+
"supplemental_feed_id": supplemental_feed_id,
|
|
256
|
+
"action": "attach"
|
|
257
|
+
}
|
|
258
|
+
header = get_headers(self._PRIMARY_FEED)
|
|
259
|
+
response = self.session.request(
|
|
260
|
+
"patch", url=self._PRIMARY_FEED, json=body, headers=header
|
|
261
|
+
)
|
|
262
|
+
|
|
263
|
+
if response.status_code == HTTPStatus.OK:
|
|
264
|
+
service_response = response.json()
|
|
265
|
+
return service_response["data"]
|
|
266
|
+
else:
|
|
267
|
+
raise MerchantServiceException(response.content)
|
|
268
|
+
|
|
269
|
+
def detach_supplemental_feed_from_primary_feed(
|
|
270
|
+
self,
|
|
271
|
+
secret_id: str,
|
|
272
|
+
merchant_account_id: str,
|
|
273
|
+
primary_feed_id: str,
|
|
274
|
+
supplemental_feed_id: str
|
|
275
|
+
):
|
|
276
|
+
body = {
|
|
277
|
+
"secret_id": secret_id,
|
|
278
|
+
"merchant_account_id": merchant_account_id,
|
|
279
|
+
"primary_feed_id": primary_feed_id,
|
|
280
|
+
"supplemental_feed_id": supplemental_feed_id,
|
|
281
|
+
"action": "detach"
|
|
282
|
+
}
|
|
283
|
+
header = get_headers(self._PRIMARY_FEED)
|
|
284
|
+
response = self.session.request(
|
|
285
|
+
"patch", url=self._PRIMARY_FEED, json=body, headers=header
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
if response.status_code == HTTPStatus.OK:
|
|
289
|
+
service_response = response.json()
|
|
290
|
+
return service_response["data"]
|
|
291
|
+
else:
|
|
292
|
+
raise MerchantServiceException(response.content)
|
|
293
|
+
|
|
229
294
|
def get_supplemental_feeds(self, secret_id: str, merchant_account_id: str) -> bool:
|
|
230
295
|
"""
|
|
231
296
|
Gets list of supplemental feeds
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{logos_sdk-0.0.25.dev21 → logos_sdk-0.0.25.dev23}/logos_sdk/services/MicrosoftAdvertising.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|