Skip to content

Commit

Permalink
Source Bing Ads adding missing columns (#14862)
Browse files Browse the repository at this point in the history
* only adding `Conversions` for now to satisfy basic use case, will compelte all fields addition once I get a time to add them #14637

* Adding cost per conversion rate

* adding CampaignId as part of the primary key

* update primary key for ad performance report

* adding more columns to primary key

* completing campaign_performance_report

* completing account+keyword performance report

* complete ad_group_performance_report

* adding ad_performance_report

* revert to previous logger

* remove logging import

* chore: updated docs

* auto-bump connector version [ci skip]

Co-authored-by: Harshith Mullapudi <harshithmullapudi@gmail.com>
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
  • Loading branch information
3 people authored Aug 4, 2022
1 parent 2cf06cc commit 6c67d80
Show file tree
Hide file tree
Showing 12 changed files with 870 additions and 226 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
- name: Bing Ads
sourceDefinitionId: 47f25999-dd5e-4636-8c39-e7cea2453331
dockerRepository: airbyte/source-bing-ads
dockerImageTag: 0.1.8
dockerImageTag: 0.1.9
documentationUrl: https://docs.airbyte.io/integrations/sources/bing-ads
icon: bingads.svg
sourceType: api
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -866,7 +866,7 @@
- "overwrite"
- "append"
- "append_dedup"
- dockerImage: "airbyte/source-bing-ads:0.1.8"
- dockerImage: "airbyte/source-bing-ads:0.1.9"
spec:
documentationUrl: "https://docs.airbyte.io/integrations/sources/bing-ads"
connectionSpecification:
Expand Down
2 changes: 1 addition & 1 deletion airbyte-integrations/connectors/source-bing-ads/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ RUN pip install .
ENV AIRBYTE_ENTRYPOINT "python /airbyte/integration_code/main.py"
ENTRYPOINT ["python", "/airbyte/integration_code/main.py"]

LABEL io.airbyte.version=0.1.8
LABEL io.airbyte.version=0.1.9
LABEL io.airbyte.name=airbyte/source-bing-ads
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,86 @@
from bingads.v13.reporting import ReportingDownloadParameters
from suds import sudsobject

AVERAGE_FIELD_TYPES = {
"AverageCpc": "number",
"AveragePosition": "number",
"AverageCpm": "number",
}
AVERAGE_FIELDS = list(AVERAGE_FIELD_TYPES.keys())

CONVERSION_FIELD_TYPES = {
"Conversions": "number",
"ConversionRate": "number",
"ConversionsQualified": "number",
}
CONVERSION_FIELDS = list(CONVERSION_FIELD_TYPES.keys())

ALL_CONVERSION_FIELD_TYPES = {
"AllConversions": "integer",
"AllConversionRate": "number",
}
ALL_CONVERSION_FIELDS = list(ALL_CONVERSION_FIELD_TYPES.keys())

LOW_QUALITY_FIELD_TYPES = {
"LowQualityClicks": "integer",
"LowQualityClicksPercent": "number",
"LowQualityImpressions": "integer",
"LowQualitySophisticatedClicks": "integer",
"LowQualityConversions": "integer",
"LowQualityConversionRate": "number",
}
LOW_QUALITY_FIELDS = list(LOW_QUALITY_FIELD_TYPES.keys())

REVENUE_FIELD_TYPES = {
"Revenue": "number",
"RevenuePerConversion": "number",
"RevenuePerAssist": "number",
}
REVENUE_FIELDS = list(REVENUE_FIELD_TYPES.keys())

ALL_REVENUE_FIELD_TYPES = {
"AllRevenue": "number",
"AllRevenuePerConversion": "number",
}
ALL_REVENUE_FIELDS = list(ALL_REVENUE_FIELD_TYPES.keys())

IMPRESSION_FIELD_TYPES = {
"ImpressionSharePercent": "number",
"ImpressionLostToBudgetPercent": "number",
"ImpressionLostToRankAggPercent": "number",
}
IMPRESSION_FIELDS = list(IMPRESSION_FIELD_TYPES.keys())


HISTORICAL_FIELD_TYPES = {
"HistoricalQualityScore": "number",
"HistoricalExpectedCtr": "number",
"HistoricalAdRelevance": "number",
"HistoricalLandingPageExperience": "number",
}
HISTORICAL_FIELDS = list(HISTORICAL_FIELD_TYPES.keys())

BUDGET_FIELD_TYPES = {
"BudgetName": "string",
"BudgetStatus": "string",
"BudgetAssociationStatus": "string",
}
BUDGET_FIELDS = list(BUDGET_FIELD_TYPES.keys())

REPORT_FIELD_TYPES = {
"AccountId": "integer",
"AdId": "integer",
"AdGroupCriterionId": "integer",
"AdGroupId": "integer",
"AdRelevance": "number",
"Assists": "integer",
"AverageCpc": "number",
"AveragePosition": "number",
"AllCostPerConversion": "number",
"AllReturnOnAdSpend": "number",
"BusinessCategoryId": "integer",
"BusinessListingId": "integer",
"CampaignId": "integer",
"ClickCalls": "integer",
"Clicks": "integer",
"ConversionRate": "number",
"Conversions": "number",
"CostPerAssist": "number",
"CostPerConversion": "number",
"Ctr": "number",
Expand All @@ -45,29 +109,36 @@
"EstimatedImpressionPercent": "number",
"EstimatedImpressions": "integer",
"ExactMatchImpressionSharePercent": "number",
"HistoricAdRelevance": "number",
"Impressions": "integer",
"ImpressionSharePercent": "number",
"KeywordId": "integer",
"LandingPageExperience": "number",
"LowQualityClicks": "integer",
"LowQualityClicksPercent": "number",
"LowQualityImpressions": "integer",
"LowQualitySophisticatedClicks": "integer",
"PhoneCalls": "integer",
"PhoneImpressions": "integer",
"Ptr": "number",
"QualityImpact": "number",
"QualityScore": "number",
"ReturnOnAdSpend": "number",
"Revenue": "number",
"RevenuePerAssist": "number",
"RevenuePerConversion": "number",
"SidebarBid": "number",
"Spend": "number",
"MonthlyBudget": "number",
"DailySpend": "number",
"MonthToDateSpend": "number",
"AbsoluteTopImpressionRatePercent": "number",
"ViewThroughConversions": "integer",
"ViewThroughConversionsQualified": "number",
"MainlineBid": "number",
"Mainline1Bid": "number",
"FirstPageBid": "number",
**AVERAGE_FIELD_TYPES,
**CONVERSION_FIELD_TYPES,
**ALL_CONVERSION_FIELD_TYPES,
**LOW_QUALITY_FIELD_TYPES,
**REVENUE_FIELD_TYPES,
**ALL_REVENUE_FIELD_TYPES,
**IMPRESSION_FIELD_TYPES,
**HISTORICAL_FIELD_TYPES,
**BUDGET_FIELD_TYPES,
}


Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,40 @@
{
"type": ["null", "object"],
"properties": {
"AccountName": {
"type": ["null", "string"]
},
"AccountNumber": {
"type": ["null", "string"]
},
"AccountId": {
"type": ["null", "integer"]
},
"TimePeriod": {
"type": ["null", "string"]
},
"CurrencyCode": {
"type": ["null", "string"]
},
"AdDistribution": {
"type": ["null", "string"]
},
"DeviceType": {
"type": ["null", "string"]
},
"Network": {
"type": ["null", "string"]
},
"Impressions": {
"DeliveredMatchType": {
"type": ["null", "string"]
},
"DeviceOS": {
"type": ["null", "string"]
},
"TopVsOther": {
"type": ["null", "string"]
},
"BidMatchType": {
"type": ["null", "string"]
},
"PhoneImpressions": {
"type": ["null", "integer"]
},
"PhoneCalls": {
"type": ["null", "integer"]
},
"Clicks": {
Expand All @@ -28,20 +43,68 @@
"Ctr": {
"type": ["null", "number"]
},
"AverageCpc": {
"Spend": {
"type": ["null", "number"]
},
"Spend": {
"Impressions": {
"type": ["null", "integer"]
},
"CostPerConversion": {
"type": ["null", "number"]
},
"Ptr": {
"type": ["null", "number"]
},
"Assists": {
"type": ["null", "integer"]
},
"ReturnOnAdSpend": {
"type": ["null", "number"]
},
"RevenuePerConversion": {
"CostPerAssist": {
"type": ["null", "number"]
},
"AverageCpc": {
"type": ["null", "number"]
},
"AveragePosition": {
"type": ["null", "number"]
},
"AverageCpm": {
"type": ["null", "number"]
},
"Conversions": {
"type": ["null", "number"]
},
"ConversionRate": {
"type": ["null", "number"]
},
"LowQualityClicks": {
"type": ["null", "integer"]
},
"LowQualityClicksPercent": {
"type": ["null", "number"]
},
"LowQualityImpressions": {
"type": ["null", "integer"]
},
"LowQualitySophisticatedClicks": {
"type": ["null", "integer"]
},
"LowQualityConversions": {
"type": ["null", "integer"]
},
"LowQualityConversionRate": {
"type": ["null", "number"]
},
"Revenue": {
"type": ["null", "number"]
},
"RevenuePerConversion": {
"type": ["null", "number"]
},
"RevenuePerAssist": {
"type": ["null", "number"]
}
}
}
Loading

0 comments on commit 6c67d80

Please sign in to comment.