Ошибка где () заявление в Google AdWords - PullRequest
0 голосов
/ 16 ноября 2018

Не могли бы вы помочь мне исправить это утверждение:

Dim query As ReportQuery = New ReportQueryBuilder() _
         .Select("Id",
                "Date",
                "AllConversionRate",
                "AllConversions",
                "AllConversionValue",
                "AverageCpc",
                "AverageCpm",
                "BenchmarkAverageMaxCpc",
                "BenchmarkCtr",
                "Clicks",
                "ConversionRate",
                "Conversions",
                "ConversionValue",
                "Cost",
                "CostPerAllConversion",
                "CostPerConversion",
                "CrossDeviceConversions",
                "Ctr",
                "Impressions",
                "SearchAbsoluteTopImpressionShare",
                "SearchClickShare",
                "SearchImpressionShare",
                "ValuePerAllConversion",
                "ValuePerConversion",
                "ViewThroughConversions") _
         .From(ReportDefinitionReportType.PRODUCT_PARTITION_REPORT) _
         .During(ReportDefinitionDateRangeType.LAST_7_DAYS) _
         .Where("Impressions" Or "Clicks" Or "Conversions" Or "AllConversions").GreaterThan(CType(0, Long)) _
        .Build()

Я получил эту ошибку "Преобразование из строки" Показы "в тип" Long "недопустимо" "после добавления 'Or' между атрибутами. Я пытался получить значения из столбцов AdWords, но они должны быть один из них больше нуля Спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

ИЛИ оператор не поддерживается в AWQL.поэтому лучше проанализировать строку, содержащую значения атрибутов, и тогда мы можем сделать сравнение.

 dim Impressions As Long = Nothing  
 Dim Clicks As Long = Nothing  
 Dim Conversions As Double= Nothing
 Dim AllConversions As Double= Nothing
Using response As ReportResponse = reportUtilities.GetResponse
                    Using gzipStream As GZipStream = New GZipStream(response.Stream,
                                                                CompressionMode.Decompress)
                        Using reader As XmlTextReader = New XmlTextReader(gzipStream)
                            While reader.Read
                                Select Case reader.NodeType
                                    Case XmlNodeType.Element ' The node is an Element.
                                        If reader.Name = "row" Then
                                            While reader.MoveToNextAttribute
                                                  Select Case reader.Name
                                                       Case "impressions"
                                                          Impressions = reader.Value
                                                       Case "conversions"
                                                        Conversions = reader.Value
                                                       Case "clicks"
                                                        Clicks = reader.Value
                                                      Case "allConv"
                                                       AllConversions = reader.Value
                                                  End Select
                                            End While
                      If Impressions + Clicks + Conversions + AllConversions > 0 Then
                         ''Do your stuff
                      End If
                                        End If
                                End Select
                            End While
                        End Using
                    End Using
                End Using
...