Exact behavior of ConversionTypeName in reports

317 views
Skip to first unread message

Dorian Kind

unread,
Jun 9, 2016, 10:04:26 AM6/9/16
to AdWords API Forum
Hello,

I am currently a bit confused about the ConversionTypeName field. The reference page for CAMPAIGN_PERFORMANCE_REPORT states that it is an attribute and that it "prevents zero-conversion rows from being returned".

However, downloading a campaign report using a predicate to exclude campaigns without conversions will give you different results (both in number of lines and totals) than if you download the same report with the ConversionTypeName field added.

This might be related to the observation that if I just add ConversionTypeName and don't use a predicate, I still get rows with zero conversions—but only for the "Other" conversion type.

Could anyone provide me with some insight into how this works? Am I right in assuming that the ConversionTypeName is actually a segment field and not an attribute? And why are the "Other" conversions rows always returned, even if the number of conversions is zero?

Thanks for any feedback and best regards,
Dorian



Umesh Dengale

unread,
Jun 9, 2016, 1:12:05 PM6/9/16
to AdWords API Forum
Hi Dorian,

The ConversionTypeName field prevents zero-conversions rows from being returned as you mentioned above. The ConversionTypeName is field of type attribute and not a segment type. It may happen that you might be using some other segment field in the report selector. If you getting records for ConversionCategoryName (Other) for zero conversions then provide me privately the report query and clientCustomerId. Just click Reply privately to author in the forum when responding.

Thanks,
Umesh, AdWords API Team.

Dorian Kind

unread,
Jun 10, 2016, 4:08:11 AM6/10/16
to AdWords API Forum
Hi Umesh,

thanks for your reply. I'm really not sure whether ConversionTypeName is an attribute. As an example, for a given account and the following report definition:

  <selector>
    <fields>CampaignId</fields>
    <predicates>
      <field>Conversions</field>
      <operator>GREATER_THAN</operator>
      <values>0</values>
    </predicates>
    <dateRange>
      <min>20150126</min>
      <max>20150201</max>
    </dateRange>
  </selector>
  <reportName>Test Report</reportName>
  <reportType>CAMPAIGN_PERFORMANCE_REPORT</reportType>
  <dateRangeType>CUSTOM_DATE</dateRangeType>
  <downloadFormat>CSV</downloadFormat>
</reportDefinition>

the returned report contains 99 lines. If I add ConversionTypeName:

  <selector>
    <fields>CampaignId</fields>
    <fields>ConversionTypeName</fields>
    <predicates>
      <field>Conversions</field>
      <operator>GREATER_THAN</operator>
      <values>0</values>
    </predicates>
    <dateRange>
      <min>20150126</min>
      <max>20150201</max>
    </dateRange>
  </selector>
  <reportName>Test Report</reportName>
  <reportType>CAMPAIGN_PERFORMANCE_REPORT</reportType>
  <dateRangeType>CUSTOM_DATE</dateRangeType>
  <downloadFormat>CSV</downloadFormat>
</reportDefinition>

I get back 110 lines. The additional lines are from campaigns that had conversions of multiple types during the reporting period. This seems consistent with the hypothesis that ConversionTypeName is a segmenting field.

About the zero-conversion lines, I realized that these only show up if you add certain other fields. If you take the last example, remove the predicate and add 'CostPerConversion':

  <selector>
    <fields>CampaignId</fields>
    <fields>ConversionTypeName</fields>
    <fields>CostPerConversion</fields>
    <dateRange>
      <min>20150126</min>
      <max>20150201</max>
    </dateRange>
  </selector>
  <reportName>Test Report</reportName>
  <reportType>CAMPAIGN_PERFORMANCE_REPORT</reportType>
  <dateRangeType>CUSTOM_DATE</dateRangeType>
  <downloadFormat>CSV</downloadFormat>
</reportDefinition>

Now 226 lines are returned. The additional lines are all for conversion type "Other" and have zero conversions.
It's a bit strange that this field is compatible with the "ConversionTypeName" field anyway, because the "Cost" field (which seems to be required to be able to calculate cost per conversion) is not compatible with "ConversionTypeName".

To summarize:
1. Would you agree that "ConversionTypeName" is a segmenting field? (If so, the documentation should be updated.)
2. Why is "CostPerConversion" compatible with "ConversionTypeName" when "Cost" is not? And why does adding the "CostPerConversion" field result in the returned report having more lines (namely the "Other" ones)?

Thanks and cheers,
Dorian

Nadine Sundquist (AdWords API Team)

unread,
Jun 10, 2016, 4:56:59 PM6/10/16
to AdWords API Forum
Hi Dorian,

I've taken a look at this, and I thought for some reason it was a segmenting field as well at some point. Perhaps, the documentation is out of date or something has changed. Sometimes, we do have implicit segmentation that happens, but I'm not sure if that is what is happening here. Let me check with a couple of teammates here, and I'll get back to you.

Best,
Nadine, AdWords API Team 

Dorian Kind

unread,
Jun 20, 2016, 11:10:47 AM6/20/16
to AdWords API Forum
Hi Nadine,

any news on this subject? I just noticed that "ConversionCategoryName" actually is defined as having behavior "Segment", so it seems that "ConversionCategoryName" should be a segment, too.

I would also be very interested in any feedback to the second part of my question, i.e. why "CostPerConversion" is compatible with "ConversionTypeName" while "Cost" is not. I have a feeling that all click-related metrics (impression-related, actually) should be incompatible with "ConversionTypeName" (and "ConversionCategoryName" for that matter) as a single click can lead to multiple conversions of different categories/types. But I could be wrong.

Thanks and best regards,
Dorian

Nadine Sundquist (AdWords API Team)

unread,
Jun 20, 2016, 5:35:19 PM6/20/16
to AdWords API Forum
Hi Dorian,

Thanks for checking in. Let me ping one of my teammates again because I haven't gotten the answer back, yet. I've always found ConversionCategoryName unique, and I just want to make sure I have it right before giving you a definitive answer.

Cheers,
Nadine, AdWords API Team 

Nadine Sundquist (AdWords API Team)

unread,
Jun 20, 2016, 5:48:55 PM6/20/16
to AdWords API Forum
Hello Dorian,

So, it looks like you caught an issue in our documentation. We'll be updating ConversionCategoryName to be listed as a segment. Thanks for catching that and telling us about it!

As for the answer to your second question, the CostPerConversion does not directly depend on Cost. That's why the two fields are compatible. As a follow-up to this, I have a question for you. You mentioned that adding CostPerConversion results in more lines. Is the same CostPerConversion returned for the same ConversionTypeName, or are they different? I just want to verify that everything is working as expected.

Thanks,
Nadine, AdWords API Team

Dorian Kind

unread,
Jun 21, 2016, 5:10:46 AM6/21/16
to AdWords API Forum
Hi Nadine,

thanks for your feedback. I have a hard time understanding how "CostPerConversion" isn't dependant on "Cost". If I have the number of conversions and the cost per conversion, can't I just multiply the two to get the total cost?

Here's an example for the extra lines I've mentioned. I've chosen a different client this time to keep the output small. Consider the following report definition:

<selector>
<fields>CampaignId</fields>
<fields>ConversionTypeName</fields>
<fields>Conversions</fields>
<fields>CostPerConversion</fields>
</selector>
<reportName>Test Report</reportName>
<reportType>CAMPAIGN_PERFORMANCE_REPORT</reportType>
<dateRangeType>THIS_MONTH</dateRangeType>
<downloadFormat>CSV</downloadFormat>
</reportDefinition>

This leads to this report being generated:

Campaign ID,Conversion name,Conversions,Cost / conv.
227533244,<CONV_TYPE_A>,0.0,0
233123084,<CONV_TYPE_B>,4.0,78832500
227533244,<CONV_TYPE_C>2.0,675585000
234932444,<CONV_TYPE_B>,1.0,101330000
Total, --,7.0,445571429

If I add a predicate like so:

<selector>
<fields>CampaignId</fields>
<fields>ConversionTypeName</fields>
<fields>Conversions</fields>
<fields>CostPerConversion</fields>
<predicates>
<field>Conversions</field>
<operator>GREATER_THAN</operator>
<values>0</values>
</predicates>
</selector>
<reportName>Test Report</reportName>
<reportType>CAMPAIGN_PERFORMANCE_REPORT</reportType>
<dateRangeType>THIS_MONTH</dateRangeType>
<downloadFormat>CSV</downloadFormat>
</reportDefinition>

the output looks different:

Campaign ID,Conversion name,Conversions,Cost / conv.
233123084,<CONV_TYPE_B>,4.0,78832500
227533244,<CONV_TYPE_C>,2.0,675585000
234932444,<CONV_TYPE_B>,1.0,101330000
Total, --,7.0,252547143

This seems to contradict the documentation's statement "Prevents zero-conversion rows from being returned." for the field "ConversionTypeName".

Best regards,
Dorian

Nadine Sundquist (AdWords API Team)

unread,
Jun 21, 2016, 12:15:43 PM6/21/16
to AdWords API Forum
Hi Dorian,

The reason it doesn't depend on Cost is because CostPerConversion is the total cost divided by the ConversionValue. The total cost is the total aggregated cost, which includes total click cost and any other costs, including phone cost. The Cost field does not include all the additional expenses. That's why just dividing the Cost by ConversionValue will not get you the CostPerConversion

As for getting back 0 conversions in a row when specifying ConversionTypeName, could you please click Reply privately to author in the forum and send me the customer ID where you're seeing this?

Thanks,
Nadine, AdWords API Team

Dorian Kind

unread,
Jun 21, 2016, 12:34:11 PM6/21/16
to AdWords API Forum
Hi Nadine,

thanks for your quick reply. I'm afraid to say I've lost you completely. CostPerConversion is based on conversion value? Isn't that a very unfortunate name then? Especially seeing as the Adwords web UI apparently uses a different definition:


Here, Cost / conv. (which is the display name of the "CostPerConversion" field in reports) is exactly equal to Cost (which is the display name of the "Cost" field) divided by Conversions (display name of the "Conversions" field). Total conv. value (display name of the "ConversionValue" field) is not being used for this calculation at all...


About the zero conversions rows, I'll send you some customer IDs and report definitions in a private reply.


Best regards,

Dorian


Nadine Sundquist (AdWords API Team)

unread,
Jun 21, 2016, 5:27:49 PM6/21/16
to AdWords API Forum
Hi Dorian,

There was a recent rename of many of the conversion reporting columns in v201601, and that's why some of the definitions seem a bit confusing. Let me see if I can recall a bit of history to help clarify. Back in v201509, there was a TotalCost field and there was also a Cost field. CostPerConversion was keying off of that field. The TotalCost field was removed because Adwords no longer charges for manual calls to Google forwarding numbers, and it was decided that this field no longer needed to be exposed. I'll go check for you to find out if there's a replacement for that field or a way to calculate the CostPerConversion some other way.

I'll look into the other information you sent me on another thread. Thanks for sending that over!

Regards,
Nadine, AdWords API Team

Dorian Kind

unread,
Jun 22, 2016, 4:25:46 AM6/22/16
to AdWords API Forum
Hi Nadine,

as always, thanks a lot for your quick response! I understand your point about the difference between "Cost" and "TotalCost", but I'm still surprised about "CostPerConversion" being based on conversion value. I checked by downloading campaign performance reports in a few accounts of ours, and the Totals lines looked like this:

Campaign ID,Cost,Conversions,Total conv. value,Cost / conv.
...
Total,204915570000,"13,230.44","13,230.44",15485689

Campaign ID,Cost,Conversions,Total conv. value,Cost / conv.
...
Total,158893100000,767.0,"15,048,053.0",207133781

Campaign ID,Cost,Conversions,Total conv. value,Cost / conv.
...
Total,26175700000,"44,311.0","226,988.7",590727

Campaign ID,Cost,Conversions,Total conv. value,Cost / conv.
...
Total,28546590000,"3,417.0","256,714.2",8354284

The "CostPerConversion" field is always equal to "Cost" divided by "Conversions". In the first example, it's actually also equal to "Cost" / "ConversionValue", but that's because every conversion is worth 1 in this account.

Could it be that this is an inaccuracy in the documentation?

Best regards,
Dorian

Nadine Sundquist (AdWords API Team)

unread,
Jun 22, 2016, 6:29:04 PM6/22/16
to AdWords API Forum
Hello Dorian,

Thanks for pointing that out. I'm always relying on the documentation, and I haven't done the math on my own account to verify this, so I appreciate the additional data. At the very least, we'll make sure the documentation gets updated to be a bit more clear.

Thanks,
Nadine, AdWords API Team
Reply all
Reply to author
Forward
0 new messages