airbyte-source-google-ads 4.1.4.dev202511261340__py3-none-any.whl → 4.1.4.dev202512101647__py3-none-any.whl
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.
- {airbyte_source_google_ads-4.1.4.dev202511261340.dist-info → airbyte_source_google_ads-4.1.4.dev202512101647.dist-info}/METADATA +1 -1
- {airbyte_source_google_ads-4.1.4.dev202511261340.dist-info → airbyte_source_google_ads-4.1.4.dev202512101647.dist-info}/RECORD +6 -6
- source_google_ads/components.py +11 -0
- source_google_ads/manifest.yaml +124 -8
- {airbyte_source_google_ads-4.1.4.dev202511261340.dist-info → airbyte_source_google_ads-4.1.4.dev202512101647.dist-info}/WHEEL +0 -0
- {airbyte_source_google_ads-4.1.4.dev202511261340.dist-info → airbyte_source_google_ads-4.1.4.dev202512101647.dist-info}/entry_points.txt +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
source_google_ads/__init__.py,sha256=Nlo5H6LlaSgg7tx_LyqMIy3MXiAagfk3izZ9o44VvSE,1201
|
|
2
|
-
source_google_ads/components.py,sha256=
|
|
2
|
+
source_google_ads/components.py,sha256=7VoXzxbU8mPq3jn5SZZDAk-nFs7xw51AteEDSvHPo4w,41443
|
|
3
3
|
source_google_ads/config_migrations.py,sha256=oBi_qNqBpLS8GNCaIOBo0stNdYuyqVl6lkrhdXRwMX8,4405
|
|
4
4
|
source_google_ads/google_ads.py,sha256=cxS18tz0fFJjmIhlhFQ3Zvu2K8bhDtmsl1kFeO7nNhk,11595
|
|
5
|
-
source_google_ads/manifest.yaml,sha256=
|
|
5
|
+
source_google_ads/manifest.yaml,sha256=CVZmWC0KPGfbQdvtSxIpiGWTwnrtiDdHpV9vCm6IRFA,224944
|
|
6
6
|
source_google_ads/models.py,sha256=ZmdS3z_2roaEQgV2Mx1CDm33MztpQ66SfHDzP8XwZog,1658
|
|
7
7
|
source_google_ads/run.py,sha256=ydIyq_vSNV5Z4mJYnsO5GyNDsLDd0qibBsq6wnvuFAo,2002
|
|
8
8
|
source_google_ads/schemas/customer_client.json,sha256=oThcyUDO1yWpxtWPWdoAFqTXEIweF8N4q6mRI73Q6yU,984
|
|
@@ -11,7 +11,7 @@ source_google_ads/source.py,sha256=hz5ep6stMWHNvD73PIF_7bjnee49sY9YHHjaYNAPnOQ,1
|
|
|
11
11
|
source_google_ads/spec.json,sha256=8hbc7smbaffIkYCkX2BYJLB9kgaH8vYKCg-H0y1FvUs,7810
|
|
12
12
|
source_google_ads/streams.py,sha256=FB-DNJlXhjQADptT-wrv3iGWoliyRuvDuHGeqiN9HsY,13349
|
|
13
13
|
source_google_ads/utils.py,sha256=-KpgGv2W8WueXvGRC3xbVreDl5-5-vU9OwzC5SZDKVc,21409
|
|
14
|
-
airbyte_source_google_ads-4.1.4.
|
|
15
|
-
airbyte_source_google_ads-4.1.4.
|
|
16
|
-
airbyte_source_google_ads-4.1.4.
|
|
17
|
-
airbyte_source_google_ads-4.1.4.
|
|
14
|
+
airbyte_source_google_ads-4.1.4.dev202512101647.dist-info/METADATA,sha256=iTlcWOsVOV4jATnlkBlvpvtVG30ZoDOR7svn1L3FJfY,5397
|
|
15
|
+
airbyte_source_google_ads-4.1.4.dev202512101647.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
16
|
+
airbyte_source_google_ads-4.1.4.dev202512101647.dist-info/entry_points.txt,sha256=pP4Llir93XGkHFDZfXXxK7qOWo9_U1ssCJToyxEUB4w,63
|
|
17
|
+
airbyte_source_google_ads-4.1.4.dev202512101647.dist-info/RECORD,,
|
source_google_ads/components.py
CHANGED
|
@@ -761,6 +761,17 @@ class CustomGAQueryHttpRequester(HttpRequester):
|
|
|
761
761
|
return self.query[from_index + 4 :].strip()
|
|
762
762
|
|
|
763
763
|
|
|
764
|
+
class CustomGAQueryClickViewHttpRequester(CustomGAQueryHttpRequester):
|
|
765
|
+
@staticmethod
|
|
766
|
+
def _insert_segments_date_expr(query: GAQL, start_date: str, end_date: str) -> GAQL:
|
|
767
|
+
if "segments.date" not in query.fields:
|
|
768
|
+
query = query.append_field("segments.date")
|
|
769
|
+
condition = f"segments.date ='{start_date}'"
|
|
770
|
+
if query.where:
|
|
771
|
+
return query.set_where(query.where + " AND " + condition)
|
|
772
|
+
return query.set_where(condition)
|
|
773
|
+
|
|
774
|
+
|
|
764
775
|
@dataclass()
|
|
765
776
|
class CustomGAQuerySchemaLoader(SchemaLoader):
|
|
766
777
|
"""
|
source_google_ads/manifest.yaml
CHANGED
|
@@ -1030,14 +1030,6 @@ definitions:
|
|
|
1030
1030
|
)
|
|
1031
1031
|
}}
|
|
1032
1032
|
create_or_update: true
|
|
1033
|
-
- type: ComponentMappingDefinition
|
|
1034
|
-
field_path:
|
|
1035
|
-
- retriever
|
|
1036
|
-
- requester
|
|
1037
|
-
- $parameters
|
|
1038
|
-
- query
|
|
1039
|
-
value: "{{ components_values.get('query', None) }}"
|
|
1040
|
-
create_or_update: true
|
|
1041
1033
|
- type: ComponentMappingDefinition
|
|
1042
1034
|
field_path:
|
|
1043
1035
|
- retriever
|
|
@@ -1085,6 +1077,130 @@ definitions:
|
|
|
1085
1077
|
)
|
|
1086
1078
|
}}
|
|
1087
1079
|
create_or_update: true
|
|
1080
|
+
- type: ComponentMappingDefinition
|
|
1081
|
+
field_path:
|
|
1082
|
+
- incremental_sync
|
|
1083
|
+
- step
|
|
1084
|
+
value: "P1D"
|
|
1085
|
+
condition: >-
|
|
1086
|
+
{{
|
|
1087
|
+
(
|
|
1088
|
+
(
|
|
1089
|
+
components_values.get('query', '').count('segments.date') == 1
|
|
1090
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1091
|
+
)
|
|
1092
|
+
or
|
|
1093
|
+
(
|
|
1094
|
+
components_values.get('query', '').count('segments.date') == 2
|
|
1095
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1096
|
+
and (components_values.get('query') | regex_search('(?i)(\\bORDER\\s+BY\\b[\\s\\S]*?segments\\.date)'))
|
|
1097
|
+
)
|
|
1098
|
+
) and components_values.get('query', '') | regex_search('(?i)(\\bFROM\\s+click_view\\b)')
|
|
1099
|
+
}}
|
|
1100
|
+
create_or_update: true
|
|
1101
|
+
- type: ComponentMappingDefinition
|
|
1102
|
+
field_path:
|
|
1103
|
+
- incremental_sync
|
|
1104
|
+
- start_datetime
|
|
1105
|
+
value: >-
|
|
1106
|
+
{
|
|
1107
|
+
"type": "MinMaxDatetime",
|
|
1108
|
+
"datetime": "{{ max(config.get('start_date', day_delta(-90, format='%Y-%m-%d')), day_delta(-90, format='%Y-%m-%d')) }}",
|
|
1109
|
+
"datetime_format": "%Y-%m-%d"
|
|
1110
|
+
}
|
|
1111
|
+
condition: >-
|
|
1112
|
+
{{
|
|
1113
|
+
(
|
|
1114
|
+
(
|
|
1115
|
+
components_values.get('query', '').count('segments.date') == 1
|
|
1116
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1117
|
+
)
|
|
1118
|
+
or
|
|
1119
|
+
(
|
|
1120
|
+
components_values.get('query', '').count('segments.date') == 2
|
|
1121
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1122
|
+
and (components_values.get('query') | regex_search('(?i)(\\bORDER\\s+BY\\b[\\s\\S]*?segments\\.date)'))
|
|
1123
|
+
)
|
|
1124
|
+
) and components_values.get('query', '') | regex_search('(?i)(\\bFROM\\s+click_view\\b)')
|
|
1125
|
+
}}
|
|
1126
|
+
create_or_update: true
|
|
1127
|
+
- type: ComponentMappingDefinition
|
|
1128
|
+
field_path:
|
|
1129
|
+
- incremental_sync
|
|
1130
|
+
- end_datetime
|
|
1131
|
+
value: >-
|
|
1132
|
+
{
|
|
1133
|
+
"type": "MinMaxDatetime",
|
|
1134
|
+
"datetime": "{{ format_datetime((str_to_datetime(config.get('end_date')) if config.get('end_date') else now_utc()) + duration('P1D'), '%Y-%m-%d') }}",
|
|
1135
|
+
"datetime_format": "%Y-%m-%d"
|
|
1136
|
+
}
|
|
1137
|
+
condition: >-
|
|
1138
|
+
{{
|
|
1139
|
+
(
|
|
1140
|
+
(
|
|
1141
|
+
components_values.get('query', '').count('segments.date') == 1
|
|
1142
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1143
|
+
)
|
|
1144
|
+
or
|
|
1145
|
+
(
|
|
1146
|
+
components_values.get('query', '').count('segments.date') == 2
|
|
1147
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1148
|
+
and (components_values.get('query') | regex_search('(?i)(\\bORDER\\s+BY\\b[\\s\\S]*?segments\\.date)'))
|
|
1149
|
+
)
|
|
1150
|
+
) and components_values.get('query', '') | regex_search('(?i)(\\bFROM\\s+click_view\\b)')
|
|
1151
|
+
}}
|
|
1152
|
+
create_or_update: true
|
|
1153
|
+
- type: ComponentMappingDefinition
|
|
1154
|
+
field_path:
|
|
1155
|
+
- incremental_sync
|
|
1156
|
+
- cursor_granularity
|
|
1157
|
+
value: P1D
|
|
1158
|
+
condition: >-
|
|
1159
|
+
{{
|
|
1160
|
+
(
|
|
1161
|
+
(
|
|
1162
|
+
components_values.get('query', '').count('segments.date') == 1
|
|
1163
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1164
|
+
)
|
|
1165
|
+
or
|
|
1166
|
+
(
|
|
1167
|
+
components_values.get('query', '').count('segments.date') == 2
|
|
1168
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1169
|
+
and (components_values.get('query') | regex_search('(?i)(\\bORDER\\s+BY\\b[\\s\\S]*?segments\\.date)'))
|
|
1170
|
+
)
|
|
1171
|
+
) and components_values.get('query', '') | regex_search('(?i)(\\bFROM\\s+click_view\\b)')
|
|
1172
|
+
}}
|
|
1173
|
+
create_or_update: true
|
|
1174
|
+
- type: ComponentMappingDefinition
|
|
1175
|
+
field_path:
|
|
1176
|
+
- retriever
|
|
1177
|
+
- requester
|
|
1178
|
+
- class_name
|
|
1179
|
+
value: "source_google_ads.components.CustomGAQueryClickViewHttpRequester"
|
|
1180
|
+
condition: >-
|
|
1181
|
+
{{
|
|
1182
|
+
(
|
|
1183
|
+
(
|
|
1184
|
+
components_values.get('query', '').count('segments.date') == 1
|
|
1185
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1186
|
+
)
|
|
1187
|
+
or
|
|
1188
|
+
(
|
|
1189
|
+
components_values.get('query', '').count('segments.date') == 2
|
|
1190
|
+
and (components_values.get('query') | regex_search('(?i)(\\bSELECT\\b[\\s\\S]*?segments\\.date[\\s\\S]*?\\bFROM\\b)'))
|
|
1191
|
+
and (components_values.get('query') | regex_search('(?i)(\\bORDER\\s+BY\\b[\\s\\S]*?segments\\.date)'))
|
|
1192
|
+
)
|
|
1193
|
+
) and components_values.get('query', '') | regex_search('(?i)(\\bFROM\\s+click_view\\b)')
|
|
1194
|
+
}}
|
|
1195
|
+
create_or_update: true
|
|
1196
|
+
- type: ComponentMappingDefinition
|
|
1197
|
+
field_path:
|
|
1198
|
+
- retriever
|
|
1199
|
+
- requester
|
|
1200
|
+
- $parameters
|
|
1201
|
+
- query
|
|
1202
|
+
value: "{{ components_values.get('query', None) }}"
|
|
1203
|
+
create_or_update: true
|
|
1088
1204
|
- type: ComponentMappingDefinition
|
|
1089
1205
|
field_path:
|
|
1090
1206
|
- retriever
|
|
File without changes
|