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.
Files changed (26) hide show
  1. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/PKG-INFO +1 -1
  2. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/GoogleAds.py +34 -1
  3. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/MerchantCenter.py +65 -0
  4. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/PKG-INFO +1 -1
  5. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/LICENSE +0 -0
  6. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/README.md +0 -0
  7. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/__init__.py +0 -0
  8. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/big_query/BigQuery.py +0 -0
  9. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/big_query/__init__.py +0 -0
  10. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/logging/LogosLogger.py +0 -0
  11. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/logging/__init__.py +0 -0
  12. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/CampaignManager.py +0 -0
  13. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/Collabim.py +0 -0
  14. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/DV360.py +0 -0
  15. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/Facebook.py +0 -0
  16. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/GoogleSheets.py +0 -0
  17. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/MarketMiner.py +0 -0
  18. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/MicrosoftAdvertising.py +0 -0
  19. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/Sklik.py +0 -0
  20. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk/services/__init__.py +0 -0
  21. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/SOURCES.txt +0 -0
  22. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/dependency_links.txt +0 -0
  23. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/requires.txt +0 -0
  24. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/logos_sdk.egg-info/top_level.txt +0 -0
  25. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/setup.cfg +0 -0
  26. {logos_sdk-0.0.25.dev22 → logos_sdk-0.0.25.dev24}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logos-sdk
3
- Version: 0.0.25.dev22
3
+ Version: 0.0.25.dev24
4
4
  Summary: SDK for Logos platform
5
5
  Home-page: https://bitbucket.org/databy/logos-sdk-pip/src/master/
6
6
  Author: Databy.io
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logos-sdk
3
- Version: 0.0.25.dev22
3
+ Version: 0.0.25.dev24
4
4
  Summary: SDK for Logos platform
5
5
  Home-page: https://bitbucket.org/databy/logos-sdk-pip/src/master/
6
6
  Author: Databy.io