Loading ...
Sorry, an error occurred while loading the content.

addReportRequestWithAccountAggregation Returns variable XML attributes

Expand Messages
  • don.frazier
    Hello all ... I am submitting a addReportRequestWithAccountAggregation() for my account. In the returned XML, there seems to be quite a bit of variance on
    Message 1 of 6 , Dec 4, 2006
    • 0 Attachment
      Hello all ... I am submitting a
      addReportRequestWithAccountAggregation() for my account. In the
      returned XML, there seems to be quite a bit of variance on the
      reports, depending on the the data. In Adcenter and Adwords,
      every "row" in the XML report has the same "columns" regardless of
      the data.

      Panama seems to return different "rows" depending on the actual
      data. For example, the "analytics" element may contain the
      attributes numImpr, numClick, ctr, numConv, revenue, cost and
      averagePosition. But if ctr is anything other than "0.0", then the
      additional columns cpc, numConv, clickConvRate and roas are also
      present.

      My technique for parsing this report is to flatten it into a tab
      delimited file that I then bulk load into my data base for further
      processing. Obviously, the variable columns are killing my process.
      I'd like to keep my XML parser generic cuz it works basically the
      same for any XML data, as long as the data follows a set pattern.
      Any idea if there's a way to get a consistent set of columns in the
      output? Samples below.


      <row cmpgnID="92" adGrpID="100" keywordID="22" urlID="48820"
      accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx2"
      keywordName="xx" url="http://xxx">
      <analytics numImpr="1" numClick="0" ctr="0.0" numConv="0"
      revenue="0.0" cost="0.0" averagePosition="1.0" />
      </row>


      <row cmpgnID="92" adGrpID="100" keywordID="222" urlID="8"
      accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx"
      keywordName="xx" url="http://xx">
      <analytics numImpr="26" numClick="5" ctr="0.19230769230769232"
      cpc="0.11" numConv="0" clickConvRate="0.0" revenue="0.0" roas="0.0"
      cost="0.55" averagePosition="1.1153846153846154" />
      </row>
    • Yahoo! Search Marketing Monkey
      Hey Don, I d suggest creating a list of all possible columns up front, as they are documented in the Reports section of the online documentation. Then just
      Message 2 of 6 , Dec 4, 2006
      • 0 Attachment
        Hey Don,

        I'd suggest creating a list of all possible columns up front, as they
        are documented in the Reports section of the online documentation. Then
        just fill in blank/null values for the columns not present in a given
        row. You should be able to generalizer this concept to work in all your
        xml to tsv conversions.

        Hope that helps,
        -Y!SM Monkey

        don.frazier wrote:
        > Hello all ... I am submitting a
        > addReportRequestWithAccountAggregation() for my account. In the
        > returned XML, there seems to be quite a bit of variance on the
        > reports, depending on the the data. In Adcenter and Adwords,
        > every "row" in the XML report has the same "columns" regardless of
        > the data.
        >
        > Panama seems to return different "rows" depending on the actual
        > data. For example, the "analytics" element may contain the
        > attributes numImpr, numClick, ctr, numConv, revenue, cost and
        > averagePosition. But if ctr is anything other than "0.0", then the
        > additional columns cpc, numConv, clickConvRate and roas are also
        > present.
        >
        > My technique for parsing this report is to flatten it into a tab
        > delimited file that I then bulk load into my data base for further
        > processing. Obviously, the variable columns are killing my process.
        > I'd like to keep my XML parser generic cuz it works basically the
        > same for any XML data, as long as the data follows a set pattern.
        > Any idea if there's a way to get a consistent set of columns in the
        > output? Samples below.
        >
        >
        > <row cmpgnID="92" adGrpID="100" keywordID="22" urlID="48820"
        > accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx2"
        > keywordName="xx" url="http://xxx">
        > <analytics numImpr="1" numClick="0" ctr="0.0" numConv="0"
        > revenue="0.0" cost="0.0" averagePosition="1.0" />
        > </row>
        >
        >
        > <row cmpgnID="92" adGrpID="100" keywordID="222" urlID="8"
        > accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx"
        > keywordName="xx" url="http://xx">
        > <analytics numImpr="26" numClick="5" ctr="0.19230769230769232"
        > cpc="0.11" numConv="0" clickConvRate="0.0" revenue="0.0" roas="0.0"
        > cost="0.55" averagePosition="1.1153846153846154" />
        > </row>
        >
        >
        >
        >
        >
        > Yahoo! Groups Links
        >
        >
        >
      • don.frazier
        Thank you monkey. Upon reviewing the documentation again, I see the following: KeywordSummary A generated report that contains a pre-determined set of
        Message 3 of 6 , Dec 5, 2006
        • 0 Attachment
          Thank you monkey. Upon reviewing the documentation again, I see the
          following: "KeywordSummary
          A generated report that contains a pre-determined set of metrics for
          each keyword."

          This implies to me that the attributes, being "pre-determined" are
          not actually "pre-determined" at all. The attributes that appear
          are "determined" based on others. For example, roas (and others)
          only appear when numClicks is not 0.

          After carefully scrutinizing the documentation, I don't see anywhere
          that it mentions attributes being "optional" or "conditional" or
          anything else that indicates "sometimes here, sometimes not" nor any
          mention of "when it's here and when it's not." That would be useful
          documentation to have, up front, when I am developing custom code to
          use the output. As it is, the sandbox never delivered variable
          output so I incorrectly assumed the format was fixed. And as there
          was no mention of variability in the output, I again only found the
          problem once I had some live code to test.

          Your suggestion is of limited value. I am trying to loosely couple
          my parsing code to the reports (of which Yahoo/Panama is only 1).
          You suggestion is I tightly couple my code to your format and create
          a maintenance situation where I have to respond to every change in
          the format with a corresponding change in code. In my solution, I am
          loading the reports into a data base table and then normalizing it to
          a format where I can do my own reporting. As it stands now, the only
          thing I have to change when a report changes is the format of my bulk
          load table. I like having a single change point rather than having
          to re-compile, re-configure, etc.

          My request is to deliver the reports as document, with the "pre-
          determined" attributes. If there is no return, for example, just
          include roas="0.0". My solution was the reverse of your suggestion:
          I included a list of columns that I could ignore if present. Not
          good because I still have to update my config file if/when it
          changes. But I can usually calculate the variable columns from other
          sources.

          Thank you for your time.


          --- In yws-searchmarketing@yahoogroups.com, "Yahoo! Search Marketing
          Monkey" <plummerm@...> wrote:
          >
          > Hey Don,
          >
          > I'd suggest creating a list of all possible columns up front, as
          they
          > are documented in the Reports section of the online documentation.
          Then
          > just fill in blank/null values for the columns not present in a
          given
          > row. You should be able to generalizer this concept to work in all
          your
          > xml to tsv conversions.
          >
          > Hope that helps,
          > -Y!SM Monkey
          >
          > don.frazier wrote:
          > > Hello all ... I am submitting a
          > > addReportRequestWithAccountAggregation() for my account. In the
          > > returned XML, there seems to be quite a bit of variance on the
          > > reports, depending on the the data. In Adcenter and Adwords,
          > > every "row" in the XML report has the same "columns" regardless
          of
          > > the data.
          > >
          > > Panama seems to return different "rows" depending on the actual
          > > data. For example, the "analytics" element may contain the
          > > attributes numImpr, numClick, ctr, numConv, revenue, cost and
          > > averagePosition. But if ctr is anything other than "0.0", then
          the
          > > additional columns cpc, numConv, clickConvRate and roas are also
          > > present.
          > >
          > > My technique for parsing this report is to flatten it into a tab
          > > delimited file that I then bulk load into my data base for
          further
          > > processing. Obviously, the variable columns are killing my
          process.
          > > I'd like to keep my XML parser generic cuz it works basically the
          > > same for any XML data, as long as the data follows a set
          pattern.
          > > Any idea if there's a way to get a consistent set of columns in
          the
          > > output? Samples below.
          > >
          > >
          > > <row cmpgnID="92" adGrpID="100" keywordID="22" urlID="48820"
          > > accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx2"
          > > keywordName="xx" url="http://xxx">
          > > <analytics numImpr="1" numClick="0" ctr="0.0" numConv="0"
          > > revenue="0.0" cost="0.0" averagePosition="1.0" />
          > > </row>
          > >
          > >
          > > <row cmpgnID="92" adGrpID="100" keywordID="222" urlID="8"
          > > accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx"
          > > keywordName="xx" url="http://xx">
          > > <analytics numImpr="26" numClick="5" ctr="0.19230769230769232"
          > > cpc="0.11" numConv="0" clickConvRate="0.0" revenue="0.0"
          roas="0.0"
          > > cost="0.55" averagePosition="1.1153846153846154" />
          > > </row>
          > >
          > >
          > >
          > >
          > >
          > > Yahoo! Groups Links
          > >
          > >
          > >
          >
        • Yahoo! Search Marketing Monkey
          Hey Don, We ll take your thoughts into consideration for improving either the docs or API. Thanks, -Y!SM Monkey
          Message 4 of 6 , Dec 5, 2006
          • 0 Attachment
            Hey Don,

            We'll take your thoughts into consideration for improving either the
            docs or API.

            Thanks,
            -Y!SM Monkey

            don.frazier wrote:
            > Thank you monkey. Upon reviewing the documentation again, I see the
            > following: "KeywordSummary
            > A generated report that contains a pre-determined set of metrics for
            > each keyword."
            >
            > This implies to me that the attributes, being "pre-determined" are
            > not actually "pre-determined" at all. The attributes that appear
            > are "determined" based on others. For example, roas (and others)
            > only appear when numClicks is not 0.
            >
            > After carefully scrutinizing the documentation, I don't see anywhere
            > that it mentions attributes being "optional" or "conditional" or
            > anything else that indicates "sometimes here, sometimes not" nor any
            > mention of "when it's here and when it's not." That would be useful
            > documentation to have, up front, when I am developing custom code to
            > use the output. As it is, the sandbox never delivered variable
            > output so I incorrectly assumed the format was fixed. And as there
            > was no mention of variability in the output, I again only found the
            > problem once I had some live code to test.
            >
            > Your suggestion is of limited value. I am trying to loosely couple
            > my parsing code to the reports (of which Yahoo/Panama is only 1).
            > You suggestion is I tightly couple my code to your format and create
            > a maintenance situation where I have to respond to every change in
            > the format with a corresponding change in code. In my solution, I am
            > loading the reports into a data base table and then normalizing it to
            > a format where I can do my own reporting. As it stands now, the only
            > thing I have to change when a report changes is the format of my bulk
            > load table. I like having a single change point rather than having
            > to re-compile, re-configure, etc.
            >
            > My request is to deliver the reports as document, with the "pre-
            > determined" attributes. If there is no return, for example, just
            > include roas="0.0". My solution was the reverse of your suggestion:
            > I included a list of columns that I could ignore if present. Not
            > good because I still have to update my config file if/when it
            > changes. But I can usually calculate the variable columns from other
            > sources.
            >
            > Thank you for your time.
            >
            >
            > --- In yws-searchmarketing@yahoogroups.com, "Yahoo! Search Marketing
            > Monkey" <plummerm@...> wrote:
            >> Hey Don,
            >>
            >> I'd suggest creating a list of all possible columns up front, as
            > they
            >> are documented in the Reports section of the online documentation.
            > Then
            >> just fill in blank/null values for the columns not present in a
            > given
            >> row. You should be able to generalizer this concept to work in all
            > your
            >> xml to tsv conversions.
            >>
            >> Hope that helps,
            >> -Y!SM Monkey
            >>
            >> don.frazier wrote:
            >>> Hello all ... I am submitting a
            >>> addReportRequestWithAccountAggregation() for my account. In the
            >>> returned XML, there seems to be quite a bit of variance on the
            >>> reports, depending on the the data. In Adcenter and Adwords,
            >>> every "row" in the XML report has the same "columns" regardless
            > of
            >>> the data.
            >>>
            >>> Panama seems to return different "rows" depending on the actual
            >>> data. For example, the "analytics" element may contain the
            >>> attributes numImpr, numClick, ctr, numConv, revenue, cost and
            >>> averagePosition. But if ctr is anything other than "0.0", then
            > the
            >>> additional columns cpc, numConv, clickConvRate and roas are also
            >>> present.
            >>>
            >>> My technique for parsing this report is to flatten it into a tab
            >>> delimited file that I then bulk load into my data base for
            > further
            >>> processing. Obviously, the variable columns are killing my
            > process.
            >>> I'd like to keep my XML parser generic cuz it works basically the
            >>> same for any XML data, as long as the data follows a set
            > pattern.
            >>> Any idea if there's a way to get a consistent set of columns in
            > the
            >>> output? Samples below.
            >>>
            >>>
            >>> <row cmpgnID="92" adGrpID="100" keywordID="22" urlID="48820"
            >>> accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx2"
            >>> keywordName="xx" url="http://xxx">
            >>> <analytics numImpr="1" numClick="0" ctr="0.0" numConv="0"
            >>> revenue="0.0" cost="0.0" averagePosition="1.0" />
            >>> </row>
            >>>
            >>>
            >>> <row cmpgnID="92" adGrpID="100" keywordID="222" urlID="8"
            >>> accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx"
            >>> keywordName="xx" url="http://xx">
            >>> <analytics numImpr="26" numClick="5" ctr="0.19230769230769232"
            >>> cpc="0.11" numConv="0" clickConvRate="0.0" revenue="0.0"
            > roas="0.0"
            >>> cost="0.55" averagePosition="1.1153846153846154" />
            >>> </row>
            >>>
            >>>
            >>>
            >>>
            >>>
            >>> Yahoo! Groups Links
            >>>
            >>>
            >>>
            >
            >
            >
            >
            >
            > Yahoo! Groups Links
            >
            >
            >
          • Yahoo! Search Marketing Monkey
            Don, Someone pointed out to me that you can use the TSV format for reports to achieve your desired solution. The columns will be consistent, and it sounds
            Message 5 of 6 , Dec 6, 2006
            • 0 Attachment
              Don,

              Someone pointed out to me that you can use the TSV format for reports to
              achieve your desired solution. The columns will be consistent, and it
              sounds like you are just converting to TSV anyways.

              Will that work?

              -Y!SM Monkey

              Yahoo! Search Marketing Monkey wrote:
              > Hey Don,
              >
              > We'll take your thoughts into consideration for improving either the
              > docs or API.
              >
              > Thanks,
              > -Y!SM Monkey
              >
              > don.frazier wrote:
              >> Thank you monkey. Upon reviewing the documentation again, I see the
              >> following: "KeywordSummary
              >> A generated report that contains a pre-determined set of metrics for
              >> each keyword."
              >>
              >> This implies to me that the attributes, being "pre-determined" are not
              >> actually "pre-determined" at all. The attributes that appear are
              >> "determined" based on others. For example, roas (and others) only
              >> appear when numClicks is not 0.
              >>
              >> After carefully scrutinizing the documentation, I don't see anywhere
              >> that it mentions attributes being "optional" or "conditional" or
              >> anything else that indicates "sometimes here, sometimes not" nor any
              >> mention of "when it's here and when it's not." That would be useful
              >> documentation to have, up front, when I am developing custom code to
              >> use the output. As it is, the sandbox never delivered variable output
              >> so I incorrectly assumed the format was fixed. And as there was no
              >> mention of variability in the output, I again only found the problem
              >> once I had some live code to test.
              >>
              >> Your suggestion is of limited value. I am trying to loosely couple my
              >> parsing code to the reports (of which Yahoo/Panama is only 1). You
              >> suggestion is I tightly couple my code to your format and create a
              >> maintenance situation where I have to respond to every change in the
              >> format with a corresponding change in code. In my solution, I am
              >> loading the reports into a data base table and then normalizing it to
              >> a format where I can do my own reporting. As it stands now, the only
              >> thing I have to change when a report changes is the format of my bulk
              >> load table. I like having a single change point rather than having to
              >> re-compile, re-configure, etc.
              >>
              >> My request is to deliver the reports as document, with the "pre-
              >> determined" attributes. If there is no return, for example, just
              >> include roas="0.0". My solution was the reverse of your suggestion: I
              >> included a list of columns that I could ignore if present. Not good
              >> because I still have to update my config file if/when it changes. But
              >> I can usually calculate the variable columns from other sources.
              >>
              >> Thank you for your time.
              >>
              >>
              >> --- In yws-searchmarketing@yahoogroups.com, "Yahoo! Search Marketing
              >> Monkey" <plummerm@...> wrote:
              >>> Hey Don,
              >>>
              >>> I'd suggest creating a list of all possible columns up front, as
              >> they
              >>> are documented in the Reports section of the online documentation.
              >> Then
              >>> just fill in blank/null values for the columns not present in a
              >> given
              >>> row. You should be able to generalizer this concept to work in all
              >> your
              >>> xml to tsv conversions.
              >>>
              >>> Hope that helps,
              >>> -Y!SM Monkey
              >>>
              >>> don.frazier wrote:
              >>>> Hello all ... I am submitting a
              >>>> addReportRequestWithAccountAggregation() for my account. In the
              >>>> returned XML, there seems to be quite a bit of variance on the
              >>>> reports, depending on the the data. In Adcenter and Adwords, every
              >>>> "row" in the XML report has the same "columns" regardless
              >> of
              >>>> the data.
              >>>> Panama seems to return different "rows" depending on the actual
              >>>> data. For example, the "analytics" element may contain the
              >>>> attributes numImpr, numClick, ctr, numConv, revenue, cost and
              >>>> averagePosition. But if ctr is anything other than "0.0", then
              >> the
              >>>> additional columns cpc, numConv, clickConvRate and roas are also
              >>>> present.
              >>>>
              >>>> My technique for parsing this report is to flatten it into a tab
              >>>> delimited file that I then bulk load into my data base for
              >> further
              >>>> processing. Obviously, the variable columns are killing my
              >> process.
              >>>> I'd like to keep my XML parser generic cuz it works basically the
              >>>> same for any XML data, as long as the data follows a set
              >> pattern.
              >>>> Any idea if there's a way to get a consistent set of columns in
              >> the
              >>>> output? Samples below.
              >>>>
              >>>>
              >>>> <row cmpgnID="92" adGrpID="100" keywordID="22" urlID="48820"
              >>>> accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx2"
              >>>> keywordName="xx" url="http://xxx">
              >>>> <analytics numImpr="1" numClick="0" ctr="0.0" numConv="0"
              >>>> revenue="0.0" cost="0.0" averagePosition="1.0" /> </row>
              >>>>
              >>>>
              >>>> <row cmpgnID="92" adGrpID="100" keywordID="222" urlID="8"
              >>>> accountName="xxx" accountID="30" cmpgnName="s" adGrpName="xx"
              >>>> keywordName="xx" url="http://xx">
              >>>> <analytics numImpr="26" numClick="5" ctr="0.19230769230769232"
              >>>> cpc="0.11" numConv="0" clickConvRate="0.0" revenue="0.0"
              >> roas="0.0"
              >>>> cost="0.55" averagePosition="1.1153846153846154" /> </row>
              >>>>
              >>>>
              >>>>
              >>>>
              >>>>
              >>>> Yahoo! Groups Links
              >>>>
              >>>>
              >>>>
              >>
              >>
              >>
              >>
              >>
              >> Yahoo! Groups Links
              >>
              >>
              >>
              >
            • don.frazier
              Thank you Monkey. If only it were so easy. The TSV file has some additional header information that lists the report parameters. This precedes the actual
              Message 6 of 6 , Dec 7, 2006
              • 0 Attachment
                Thank you Monkey. If only it were so easy.

                The TSV file has some additional header information that lists the
                report parameters. This precedes the actual "report" information" So I
                either have to strip that off or have a special case in my bulk insert
                that says

                if yahoo
                startat = 9
                else
                startat = 2


                I'm trying to avoid special case processing and coupling my code in so
                many places.

                I already have the exclude logic working so I'll probably just go with
                that. I'm still open to any other suggestions though.

                FWIW: I'm partial to the Adwords Custom report that lets me aggregate
                by day across all my accounts and pick exactly the columns I want.

                Sample TSV data:

                Master Account name
                Report Name KeywordSummary 2006-12-03 2006-12-03
                Parameters
                Date Range Dec 3, 2006
                Sort Column Campaign Id
                Sort Order Ascending
                Campaign Id Ad Group Id [removed]
                Totals [removed]
                92 110 {removed]

                --- In yws-searchmarketing@yahoogroups.com, "Yahoo! Search Marketing
                Monkey" <plummerm@...> wrote:
                >
                > Don,
                >
                > Someone pointed out to me that you can use the TSV format for reports
                to
                > achieve your desired solution. The columns will be consistent, and
                it
                > sounds like you are just converting to TSV anyways.
                >
                > Will that work?
                >
                > -Y!SM Monkey
                >
              Your message has been successfully submitted and would be delivered to recipients shortly.