Skip to content

Commit

Permalink
source-bing-ads: ensure inline schemas, updated cdk, poetry (where po…
Browse files Browse the repository at this point in the history
…ssible) (#36632)

Co-authored-by: Serhii Lazebnyi <53845333+lazebnyi@users.noreply.github.com>
Co-authored-by: Serhii Lazebnyi <serhii.lazebnyi@globallogic.com>
  • Loading branch information
3 people committed May 7, 2024
1 parent b581877 commit 2ba3aa0
Show file tree
Hide file tree
Showing 50 changed files with 2,351 additions and 72 deletions.
10 changes: 7 additions & 3 deletions airbyte-integrations/connectors/source-bing-ads/metadata.yaml
Expand Up @@ -16,7 +16,7 @@ data:
connectorSubtype: api
connectorType: source
definitionId: 47f25999-dd5e-4636-8c39-e7cea2453331
dockerImageTag: 2.6.0
dockerImageTag: 2.6.1
dockerRepository: airbyte/source-bing-ads
documentationUrl: https://docs.airbyte.com/integrations/sources/bing-ads
githubIssueLabel: source-bing-ads
Expand Down Expand Up @@ -46,8 +46,12 @@ data:
upgradeDeadline: "2023-10-25"
2.0.0:
message: >
Version 2.0.0 updates schemas for all hourly reports (end in report_hourly), and the following streams: Accounts, Campaigns, Search Query Performance Report, AppInstallAds, AppInstallAdLabels, Labels, Campaign Labels, Keyword Labels, Ad Group Labels, Keywords, and Budget Summary Report.
Users will need to refresh the source schema and reset affected streams after upgrading.
Version 2.0.0 updates schemas for all hourly reports (end in report_hourly),
and the following streams: Accounts, Campaigns, Search Query Performance
Report, AppInstallAds, AppInstallAdLabels, Labels, Campaign Labels, Keyword
Labels, Ad Group Labels, Keywords, and Budget Summary Report.
Users will need to refresh the source schema and reset affected streams
after upgrading.
upgradeDeadline: "2023-12-11"
suggestedStreams:
streams:
Expand Down
109 changes: 52 additions & 57 deletions airbyte-integrations/connectors/source-bing-ads/poetry.lock

Large diffs are not rendered by default.

Expand Up @@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
version = "2.6.0"
version = "2.6.1"
name = "source-bing-ads"
description = "Source implementation for Bing Ads."
authors = [ "Airbyte <contact@airbyte.io>",]
Expand All @@ -20,7 +20,7 @@ python = "^3.9,<3.12"
bingads = "==13.0.18.1"
pandas = "==2.2.0"
urllib3 = "==1.26.18"
airbyte-cdk = "^0"
airbyte-cdk = "0.84.0"
cached-property = "==1.5.2"

[tool.poetry.scripts]
Expand Down
Expand Up @@ -3,247 +3,328 @@
"type": "object",
"properties": {
"AccountName": {
"description": "The name of the account",
"type": ["null", "string"]
},
"AccountNumber": {
"description": "The account number associated with the account",
"type": ["null", "string"]
},
"AccountId": {
"description": "The unique identifier of the account",
"type": ["null", "integer"]
},
"TimePeriod": {
"description": "The time period for which the data is being reported",
"type": ["null", "string"],
"format": "date"
},
"CurrencyCode": {
"description": "The currency used for the financial metrics",
"type": ["null", "string"]
},
"AdDistribution": {
"description": "The distribution network where the ads were displayed (e.g., search, display)",
"type": ["null", "string"]
},
"Impressions": {
"description": "The total number of impressions on the ads",
"type": ["null", "integer"]
},
"Clicks": {
"description": "The total number of clicks on the ads",
"type": ["null", "integer"]
},
"Ctr": {
"description": "The click-through rate of the ad",
"type": ["null", "number"]
},
"AverageCpc": {
"description": "The average cost per click",
"type": ["null", "number"]
},
"Spend": {
"description": "The total amount spent on advertisements",
"type": ["null", "number"]
},
"AveragePosition": {
"description": "The average position of the ad on the search results page",
"type": ["null", "number"]
},
"Conversions": {
"description": "The total number of conversions tracked",
"type": ["null", "integer"]
},
"ConversionRate": {
"description": "The rate at which conversions occur",
"type": ["null", "number"]
},
"CostPerConversion": {
"description": "The cost per conversion",
"type": ["null", "number"]
},
"LowQualityClicks": {
"description": "The number of clicks considered of low quality",
"type": ["null", "integer"]
},
"LowQualityClicksPercent": {
"description": "The percentage of clicks classified as low quality",
"type": ["null", "number"]
},
"LowQualityImpressions": {
"description": "The number of impressions classified as low quality",
"type": ["null", "integer"]
},
"LowQualityImpressionsPercent": {
"description": "The percentage of low-quality impressions",
"type": ["null", "number"]
},
"LowQualityConversions": {
"description": "The total number of conversions from low-quality clicks",
"type": ["null", "integer"]
},
"LowQualityConversionRate": {
"description": "The conversion rate attributed to low-quality clicks",
"type": ["null", "number"]
},
"DeviceType": {
"description": "The type of device on which the ad was displayed (e.g., desktop, mobile)",
"type": ["null", "string"]
},
"ImpressionSharePercent": {
"description": "The percentage of impressions captured out of total available impressions",
"type": ["null", "number"]
},
"ImpressionLostToBudgetPercent": {
"description": "The percentage of impressions lost due to budget limitations",
"type": ["null", "number"]
},
"ImpressionLostToRankAggPercent": {
"description": "The percentage of impressions lost to ranking aggregation",
"type": ["null", "number"]
},
"PhoneImpressions": {
"description": "The number of impressions on phone devices",
"type": ["null", "integer"]
},
"PhoneCalls": {
"description": "The total number of phone calls generated by the ads",
"type": ["null", "integer"]
},
"Ptr": {
"description": "The phone-through rate of the ad",
"type": ["null", "number"]
},
"Network": {
"description": "The advertising network where the ads were displayed",
"type": ["null", "string"]
},
"Assists": {
"description": "The number of assists in contributing to conversions",
"type": ["null", "integer"]
},
"Revenue": {
"description": "The total revenue generated",
"type": ["null", "number"]
},
"ReturnOnAdSpend": {
"description": "The return on investment from ad spend",
"type": ["null", "number"]
},
"CostPerAssist": {
"description": "The cost per assist in contributing to conversions",
"type": ["null", "number"]
},
"RevenuePerConversion": {
"description": "The average revenue generated per conversion",
"type": ["null", "number"]
},
"RevenuePerAssist": {
"description": "The average revenue generated per assist in conversions",
"type": ["null", "number"]
},
"AccountStatus": {
"description": "The status of the account (e.g., active, paused, etc.)",
"type": ["null", "string"]
},
"LowQualityGeneralClicks": {
"description": "The number of general clicks considered of low quality",
"type": ["null", "integer"]
},
"LowQualitySophisticatedClicks": {
"description": "The number of sophisticated clicks considered of low quality",
"type": ["null", "integer"]
},
"ExactMatchImpressionSharePercent": {
"description": "The percentage of exact match impressions captured",
"type": ["null", "number"]
},
"ClickSharePercent": {
"description": "The share of clicks received out of the total available clicks",
"type": ["null", "number"]
},
"AbsoluteTopImpressionSharePercent": {
"description": "The percentage of impressions received in the absolute top location on the search results page",
"type": ["null", "number"]
},
"TopImpressionShareLostToRankPercent": {
"description": "The percentage of top impressions lost due to ad ranking",
"type": ["null", "number"]
},
"TopImpressionShareLostToBudgetPercent": {
"description": "The percentage of top impressions lost due to budget constraints",
"type": ["null", "number"]
},
"AbsoluteTopImpressionShareLostToRankPercent": {
"description": "The percentage of absolute top impressions lost due to ad ranking",
"type": ["null", "number"]
},
"AbsoluteTopImpressionShareLostToBudgetPercent": {
"description": "The percentage of absolute top impressions lost due to budget constraints",
"type": ["null", "number"]
},
"TopImpressionSharePercent": {
"description": "The percentage of impressions received at the top position on the search results page",
"type": ["null", "number"]
},
"AbsoluteTopImpressionRatePercent": {
"description": "The percentage of impressions that are shown in the absolute top position above the organic search results",
"type": ["null", "number"]
},
"TopImpressionRatePercent": {
"description": "The percentage of impressions that appear at the top of search results",
"type": ["null", "number"]
},
"AllConversions": {
"description": "The total number of all conversions counted",
"type": ["null", "integer"]
},
"AllRevenue": {
"description": "The total revenue generated from all conversions",
"type": ["null", "number"]
},
"AllConversionRate": {
"description": "The rate of all conversions that occurred",
"type": ["null", "number"]
},
"AllCostPerConversion": {
"description": "The cost per conversion for all conversions",
"type": ["null", "number"]
},
"AllReturnOnAdSpend": {
"description": "The return on ad spend generated by all conversions",
"type": ["null", "number"]
},
"AllRevenuePerConversion": {
"description": "The average revenue generated per conversion from all conversions",
"type": ["null", "number"]
},
"ViewThroughConversions": {
"description": "The number of conversions attributed to view-through tracking",
"type": ["null", "integer"]
},
"AudienceImpressionSharePercent": {
"description": "The percentage of impressions captured for the targeted audience",
"type": ["null", "number"]
},
"AudienceImpressionLostToRankPercent": {
"description": "The percentage of audience impressions lost due to ad ranking",
"type": ["null", "number"]
},
"AudienceImpressionLostToBudgetPercent": {
"description": "The percentage of audience impressions lost due to budget restrictions",
"type": ["null", "number"]
},
"AverageCpm": {
"description": "The average cost per thousand impressions",
"type": ["null", "number"]
},
"ConversionsQualified": {
"description": "The number of qualified conversions",
"type": ["null", "number"]
},
"LowQualityConversionsQualified": {
"description": "The number of qualified conversions from low-quality clicks",
"type": ["null", "number"]
},
"AllConversionsQualified": {
"description": "The number of qualified conversions of all types",
"type": ["null", "number"]
},
"ViewThroughConversionsQualified": {
"description": "The number of qualified conversions linked to view-through tracking",
"type": ["null", "number"]
},
"ViewThroughRevenue": {
"description": "The revenue generated from view-through conversions",
"type": ["null", "number"]
},
"VideoViews": {
"description": "The total number of views of video ads",
"type": ["null", "integer"]
},
"ViewThroughRate": {
"description": "The rate at which view-through conversions occur",
"type": ["null", "number"]
},
"AverageCPV": {
"description": "The average cost per view of video ads",
"type": ["null", "number"]
},
"VideoViewsAt25Percent": {
"description": "The number of video views at 25% completion",
"type": ["null", "integer"]
},
"VideoViewsAt50Percent": {
"description": "The number of video views at 50% completion",
"type": ["null", "integer"]
},
"VideoViewsAt75Percent": {
"description": "The number of video views at 75% completion",
"type": ["null", "integer"]
},
"CompletedVideoViews": {
"description": "The number of completed views of video ads",
"type": ["null", "integer"]
},
"VideoCompletionRate": {
"description": "The rate of completed views of video ads",
"type": ["null", "number"]
},
"TotalWatchTimeInMS": {
"description": "The total watch time in milliseconds for video ads",
"type": ["null", "integer"]
},
"AverageWatchTimePerVideoView": {
"description": "The average watch time per video view",
"type": ["null", "number"]
},
"AverageWatchTimePerImpression": {
"description": "The average watch time per impression for video ads",
"type": ["null", "number"]
},
"Sales": {
"description": "The total number of sales attributed to the ads",
"type": ["null", "integer"]
},
"CostPerSale": {
"description": "The cost per sale",
"type": ["null", "number"]
},
"RevenuePerSale": {
"description": "The average revenue generated per sale",
"type": ["null", "number"]
},
"Installs": {
"description": "The total number of installations linked to the ads",
"type": ["null", "integer"]
},
"CostPerInstall": {
"description": "The cost per installation",
"type": ["null", "number"]
},
"RevenuePerInstall": {
"description": "The average revenue generated per installation",
"type": ["null", "number"]
}
}
Expand Down

0 comments on commit 2ba3aa0

Please sign in to comment.