logos-sdk 0.0.25.dev31__tar.gz → 0.0.25.dev33__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 (28) hide show
  1. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/PKG-INFO +1 -1
  2. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/Facebook.py +38 -0
  3. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/GoogleAds.py +70 -0
  4. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/PKG-INFO +1 -1
  5. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/LICENSE +0 -0
  6. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/README.md +0 -0
  7. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/__init__.py +0 -0
  8. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/big_query/BigQuery.py +0 -0
  9. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/big_query/__init__.py +0 -0
  10. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/logging/LogosLogger.py +0 -0
  11. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/logging/__init__.py +0 -0
  12. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/CampaignManager.py +0 -0
  13. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/Collabim.py +0 -0
  14. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/DV360.py +0 -0
  15. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/GA4.py +0 -0
  16. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/GoogleSheets.py +0 -0
  17. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MarketMiner.py +0 -0
  18. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MerchantCenter.py +0 -0
  19. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MicrosoftAdvertising.py +0 -0
  20. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MicrosoftAdvertisingMerchantCenter.py +0 -0
  21. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/Sklik.py +0 -0
  22. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/__init__.py +0 -0
  23. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/SOURCES.txt +0 -0
  24. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/dependency_links.txt +0 -0
  25. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/requires.txt +0 -0
  26. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/top_level.txt +0 -0
  27. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/setup.cfg +0 -0
  28. {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logos-sdk
3
- Version: 0.0.25.dev31
3
+ Version: 0.0.25.dev33
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
@@ -31,6 +31,7 @@ class FacebookService:
31
31
  self._ACCOUNT_ACTIVITIES = self._URL + "/account-activities-report"
32
32
  self._BUSINESS_USERS = self._URL + "/business-users"
33
33
  self._ACCOUNT_CAMPAIGNS = self._URL + "/account-campaigns"
34
+ self._ACCOUNT_ADS = self._URL + "/account-ads"
34
35
 
35
36
  def get_accessible_accounts(
36
37
  self, secret_id: str, timeout: int = None
@@ -534,3 +535,40 @@ class FacebookService:
534
535
  return service_response["data"]
535
536
  else:
536
537
  raise FacebookServiceException(response.content)
538
+
539
+
540
+ def get_account_ads(
541
+ self,
542
+ secret_id: str,
543
+ account_id: str,
544
+ fields: List[str],
545
+ params: Dict,
546
+ ) -> Dict:
547
+ """
548
+ Gets account campaigns
549
+ :param secret_id: The ID of the secret in secret manager
550
+ :param account_id: The ID of the account to get the campaigns for
551
+ :param fields: List of fields
552
+ :param params: Dict of params to filter
553
+ :return List of account campaigns
554
+ """
555
+ body = {
556
+ "secret_id": secret_id,
557
+ "account_id": account_id,
558
+ "fields": fields,
559
+ "params": params
560
+ }
561
+
562
+ header = get_headers(self._ACCOUNT_ADS)
563
+ response = self.session.request(
564
+ "post",
565
+ url=self._ACCOUNT_ADS,
566
+ json=body,
567
+ headers=header,
568
+ )
569
+
570
+ if response.status_code == HTTPStatus.OK:
571
+ service_response = response.json()
572
+ return service_response["data"]
573
+ else:
574
+ raise FacebookServiceException(response.content)
@@ -24,6 +24,8 @@ class GoogleAdsService:
24
24
  self._GET_ACCESSIBLE_ACCOUNTS = self._URL + "/list-accessible-accounts"
25
25
  self._GET_ACCOUNT_ACCESSIBILITY = self._URL + "/get-account-accessibility"
26
26
  self._MUTATE_BIDDING_SEASONALITY_ADJUSTMENT = self._URL + "/mutate-bidding-seasonality-adjustment"
27
+ self._MUTATE_AD_GROUP_CRITERION_LABEL = self._URL + "/mutate-ad-group-criterion-label"
28
+ self._MUTATE_LABEL = self._URL + "/mutate-label"
27
29
 
28
30
  def fetch_with_retry_on_timeout(self, url, json, headers):
29
31
  for attempt in range(5):
@@ -244,6 +246,74 @@ class GoogleAdsService:
244
246
  else:
245
247
  raise GoogleAdsServiceException(response.content)
246
248
 
249
+ def mutate_ad_group_criterion_label(
250
+ self,
251
+ client_id: str,
252
+ create: List[Dict],
253
+ delete: List[str],
254
+ secret_id: str = None,
255
+ ) -> None:
256
+ """
257
+ Mutate ad group criterion label of given account
258
+ :param client_id: Google Ads id without -
259
+ :param create: list of ad group criterion labels to create
260
+ :param delete: list of ad group criterion labels to delete
261
+ :param secret_id: id of the secret
262
+ :return:None
263
+ """
264
+ body = {
265
+ "account_id": client_id,
266
+ "create": create,
267
+ "delete": delete,
268
+ "secret_id": secret_id,
269
+ }
270
+
271
+ header = get_headers(self._MUTATE_AD_GROUP_CRITERION_LABEL)
272
+ response = self.session.request(
273
+ "post", url=self._MUTATE_AD_GROUP_CRITERION_LABEL, json=body, headers=header
274
+ )
275
+
276
+ if response.status_code == HTTPStatus.OK:
277
+ return
278
+ else:
279
+ raise GoogleAdsServiceException(response.content)
280
+
281
+ def mutate_label(
282
+ self,
283
+ client_id: str,
284
+ create: List[Dict],
285
+ update: List[Dict],
286
+ delete: List[str],
287
+ secret_id: str = None,
288
+ ) -> List[str]:
289
+ """
290
+ Mutate label of given account
291
+ :param client_id: Google Ads id without -
292
+ :param create: list of label to create
293
+ :param update: list of label to update
294
+ :param delete: list of label to delete
295
+ :param secret_id: id of the secret
296
+ :return:None
297
+ """
298
+ body = {
299
+ "account_id": client_id,
300
+ "create": create,
301
+ "update": update,
302
+ "delete": delete,
303
+ "secret_id": secret_id,
304
+ }
305
+
306
+ header = get_headers(self._MUTATE_LABEL)
307
+ response = self.session.request(
308
+ "post", url=self._MUTATE_LABEL, json=body, headers=header
309
+ )
310
+
311
+ if response.status_code == HTTPStatus.OK:
312
+ service_response = response.json()
313
+ return service_response["data"]
314
+ else:
315
+ raise GoogleAdsServiceException(response.content)
316
+
247
317
  def get_account_accessibility(self, secret_id: str, account_id: str) -> bool:
248
318
  """
249
319
  Gets account accessibility
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: logos-sdk
3
- Version: 0.0.25.dev31
3
+ Version: 0.0.25.dev33
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