logos-sdk 0.0.25.dev19__tar.gz → 0.0.25.dev21__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.dev19 → logos_sdk-0.0.25.dev21}/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/MicrosoftAdvertising.py +48 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk.egg-info/PKG-INFO +1 -1
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/LICENSE +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/README.md +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/__init__.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/big_query/BigQuery.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/big_query/__init__.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/logging/LogosLogger.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/logging/__init__.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/CampaignManager.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/Collabim.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/DV360.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/Facebook.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/GoogleAds.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/GoogleSheets.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/MarketMiner.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/MerchantCenter.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/Sklik.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/__init__.py +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk.egg-info/SOURCES.txt +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk.egg-info/dependency_links.txt +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk.egg-info/requires.txt +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk.egg-info/top_level.txt +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/setup.cfg +0 -0
- {logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/setup.py +0 -0
{logos_sdk-0.0.25.dev19 → logos_sdk-0.0.25.dev21}/logos_sdk/services/MicrosoftAdvertising.py
RENAMED
|
@@ -34,6 +34,7 @@ class MicrosoftAdvertising:
|
|
|
34
34
|
self._GET_CAMPAIGN_PERFORMANCE_REPORT = (
|
|
35
35
|
self._URL + "/campaign-performance-report"
|
|
36
36
|
)
|
|
37
|
+
self._GET_AD_PERFORMANCE_REPORT = self._URL + "/ad-performance-report"
|
|
37
38
|
self._GET_GEOGRAPHIC_PERFORMANCE_REPORT = (
|
|
38
39
|
self._URL + "/geographic-performance-report"
|
|
39
40
|
)
|
|
@@ -243,6 +244,53 @@ class MicrosoftAdvertising:
|
|
|
243
244
|
else:
|
|
244
245
|
raise MicrosoftAdvertisingException(response.content)
|
|
245
246
|
|
|
247
|
+
def get_ad_performance_report(
|
|
248
|
+
self,
|
|
249
|
+
account_id: str,
|
|
250
|
+
secret_id: str,
|
|
251
|
+
date_from: str,
|
|
252
|
+
date_to: str,
|
|
253
|
+
report_columns: List[str],
|
|
254
|
+
entity_statuses: dict = None,
|
|
255
|
+
) -> List:
|
|
256
|
+
"""
|
|
257
|
+
Calls endpoint for getting ad performance stats
|
|
258
|
+
https://learn.microsoft.com/en-us/advertising/reporting-service/adperformancereportrequest?view=bingads-13&tabs=xml
|
|
259
|
+
:param account_id: The ID of the account in Microsoft Advertising
|
|
260
|
+
:param secret_id: The ID of the secret in secret manager
|
|
261
|
+
:param date_from: The date we want the report to start from. Must be before date to
|
|
262
|
+
:param date_to: The date we want the report to end at
|
|
263
|
+
:param report_columns: stats we want included in the report
|
|
264
|
+
:param entity_statuses: dict containing status of campaign_status, ad_group_status, ad_status and account_status
|
|
265
|
+
:return: List of ads and their stats
|
|
266
|
+
"""
|
|
267
|
+
if entity_statuses is None:
|
|
268
|
+
entity_statuses = {
|
|
269
|
+
"campaign_status": EntityStatus.ACTIVE,
|
|
270
|
+
"ad_group_status": EntityStatus.ACTIVE,
|
|
271
|
+
"ad_status": EntityStatus.ACTIVE,
|
|
272
|
+
"account_status": EntityStatus.ACTIVE,
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
body = {
|
|
276
|
+
"account_id": account_id,
|
|
277
|
+
"secret_id": secret_id,
|
|
278
|
+
"date_from": date_from,
|
|
279
|
+
"date_to": date_to,
|
|
280
|
+
"report_columns": report_columns,
|
|
281
|
+
} | entity_statuses
|
|
282
|
+
|
|
283
|
+
header = get_headers(self._GET_AD_PERFORMANCE_REPORT)
|
|
284
|
+
response = self.session.request(
|
|
285
|
+
"post", url=self._GET_AD_PERFORMANCE_REPORT, 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 MicrosoftAdvertisingException(response.content)
|
|
293
|
+
|
|
246
294
|
def get_budget_summary_report(
|
|
247
295
|
self,
|
|
248
296
|
account_id: str,
|
|
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
|
|
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
|