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.
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/Facebook.py +38 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/GoogleAds.py +70 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/LICENSE +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/README.md +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/__init__.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/big_query/BigQuery.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/big_query/__init__.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/logging/LogosLogger.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/logging/__init__.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/CampaignManager.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/Collabim.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/DV360.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/GA4.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/GoogleSheets.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MarketMiner.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MerchantCenter.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MicrosoftAdvertising.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/MicrosoftAdvertisingMerchantCenter.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/Sklik.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk/services/__init__.py +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/SOURCES.txt +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/dependency_links.txt +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/requires.txt +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/logos_sdk.egg-info/top_level.txt +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/setup.cfg +0 -0
- {logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/setup.py +0 -0
|
@@ -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
|
|
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
|
|
File without changes
|
{logos_sdk-0.0.25.dev31 → logos_sdk-0.0.25.dev33}/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
|
|
File without changes
|