logos-sdk 0.0.25.dev22__tar.gz → 0.0.25.dev24__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.dev22 → logos_sdk-0.0.25.dev24}/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/GoogleAds.py +34 -1
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/MerchantCenter.py +65 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/LICENSE +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/README.md +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/__init__.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/big_query/BigQuery.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/big_query/__init__.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/logging/LogosLogger.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/logging/__init__.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/CampaignManager.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/Collabim.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/DV360.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/Facebook.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/GoogleSheets.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/MarketMiner.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/MicrosoftAdvertising.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/Sklik.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/__init__.py +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/SOURCES.txt +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/dependency_links.txt +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/requires.txt +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/top_level.txt +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/setup.cfg +0 -0
- {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/setup.py +0 -0
|
@@ -23,8 +23,9 @@ class GoogleAdsService:
|
|
|
23
23
|
self._EXCLUDE_FOR_AD_GROUP = self._URL + "/exclude-for-ad-group"
|
|
24
24
|
self._GET_ACCESSIBLE_ACCOUNTS = self._URL + "/list-accessible-accounts"
|
|
25
25
|
self._GET_ACCOUNT_ACCESSIBILITY = self._URL + "/get-account-accessibility"
|
|
26
|
+
self._MUTATE_BIDDING_SEASONALITY_ADJUSTMENT = self._URL + "/mutate-bidding-seasonality-adjustment"
|
|
26
27
|
|
|
27
|
-
def fetch_with_retry_on_timeout(self,url, json, headers):
|
|
28
|
+
def fetch_with_retry_on_timeout(self, url, json, headers):
|
|
28
29
|
for attempt in range(5):
|
|
29
30
|
try:
|
|
30
31
|
return self.session.request("post", url, json=json, headers=headers, timeout=25)
|
|
@@ -208,6 +209,38 @@ class GoogleAdsService:
|
|
|
208
209
|
|
|
209
210
|
return all_results
|
|
210
211
|
|
|
212
|
+
def mutate_bidding_seasonality_adjustment(
|
|
213
|
+
self,
|
|
214
|
+
client_id: str,
|
|
215
|
+
create: List[Dict],
|
|
216
|
+
delete: List[str],
|
|
217
|
+
secret_id: str = None,
|
|
218
|
+
) -> None:
|
|
219
|
+
"""
|
|
220
|
+
Mutate bidding seasonality of given account
|
|
221
|
+
:param client_id: Google Ads id without -
|
|
222
|
+
:param create: list of bidding seasonality adjustments to create
|
|
223
|
+
:param delete: list of bidding seasonality adjustments to delete
|
|
224
|
+
:param secret_id: id of the secret
|
|
225
|
+
:return:None
|
|
226
|
+
"""
|
|
227
|
+
body = {
|
|
228
|
+
"account_id": client_id,
|
|
229
|
+
"create": create,
|
|
230
|
+
"delete": delete,
|
|
231
|
+
"secret_id": secret_id,
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
header = get_headers(self._MUTATE_BIDDING_SEASONALITY_ADJUSTMENT)
|
|
235
|
+
response = self.session.request(
|
|
236
|
+
"post", url=self._MUTATE_BIDDING_SEASONALITY_ADJUSTMENT, json=body, headers=header
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
if response.status_code == HTTPStatus.OK:
|
|
240
|
+
return
|
|
241
|
+
else:
|
|
242
|
+
raise GoogleAdsServiceException(response.content)
|
|
243
|
+
|
|
211
244
|
def get_account_accessibility(self, secret_id: str, account_id: str) -> bool:
|
|
212
245
|
"""
|
|
213
246
|
Gets account accessibility
|
|
@@ -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.dev22 → logos_sdk-0.0.25.dev24}/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
|