【问题标题】:Adwords api report without downloadAdwords api报告无需下载
【发布时间】:2014-09-19 06:45:07
【问题描述】:

我正在使用 Adwords API,我已经可以下载报告,例如:所有关键字的展示次数、点击次数、点击率、转化次数等...

问题是,当用户设置日期范围时,我需要在我们的网络工具上显示此报告。

现在我正在这样做:用户选择开始日期 01/09/2014 结束日期 15/09/2014,我调用 Adwords Api,下载 CSV,解析它,然后在屏幕上显示结果,但这方式不是最佳的,我想知道如何调用 API 并“目前”获取结果,在不下载文件的情况下获取 XML 或 JSON。

有可能吗?

我发现的唯一方法是调用 CampaignService 类.. 获取所有广告系列,然后为每个广告系列调用 AdgroupService 获取所有广告组,然后是关键字....这真的不切实际。

我该怎么做?

非常感谢。

【问题讨论】:

    标签: api criteria-api google-ads-api


    【解决方案1】:

    在最新版本的库中,他们创建了一个函数 (getAsString()),因此我们可以实现这一点:

    $reportDownloader = new ReportDownloader($session);
    $reportDownloadResult = $reportDownloader->downloadReport($reportDefinition);
    
    //Normal way of downloading to file
    //$reportDownloadResult->saveToFile($filePath);
    //printf("Report with name '%s' was downloaded to '%s'.\n",
    //    $reportDefinition->getReportName(), $filePath);
    
    //New way by calling getAsString();
    $reportAsString = $reportDownloadResult->getAsString();
    echo $reportAsString;
    

    关于将 null 作为 $filePath 传递的旧建议不再有效。

    【讨论】:

      【解决方案2】:

      是的,您可以在不下载文件的情况下获取 XML。只需在调用ReportUtils::DownloadReport() 时将$path 设置为Null,它就会返回响应而不将其保存到文件中。

      【讨论】:

      • 这在过去可能有效,但现在不行了。
      【解决方案3】:

      AdWords API 库(自 v201506 起)允许您将 download_format 设置为 CSVFOREXCEL、CSV、TSV、XML、GZIPPED_CSV 或 GZIPPED_XML 之一。不幸的是,它不支持 JSON,即使您要求下载报告数据(不是作为文件)。

      【讨论】:

        【解决方案4】:
        $reportAsString = $reportDownloadResult->getAsString();
        $xml = simplexml_load_string($reportAsString);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多