1

わかりました、これはかなり「あなたが実際に何を求めているのか」という質問かもしれませんので、少し我慢してください。原則として、私は .NET と SQL の開発者です。私は AWQL を使用して、AdWords スクリプトを取得してカスタマイズされたレポートを作成しようとしています。短いバージョン、別の日付範囲から取得する必要があり、「コンパイラ」がそれをどのように処理するか、または可能かどうかを理解するのに問題があります。一言で言えば、2 か月分のデータを 1 つのレポートに別々にまとめる必要があります。現在、構文エラーを考えていますが、わかりません。オタク用語での最終目標は、「WHERE(IMPRESSIONS_FROM_THIS_MONTH > IMPRESSIONS_FROM_LAST_MONTH) AND (IMPRESSIONS_FROM_LAST_MONTH > MONTH_BEFORE_THAT) の効果です。理論的には、すべて同じ出力になります (ロガーであるか、Google ドキュメントに直接アクセスするかは気にしません。これをスプレッドシートに入力してリンクをメールで送信するコードはありますが、現在、データを取得するのに苦労しています。そして、苦労するということは、数日間失敗することを意味します笑。

"SELECT KeywordText, ConversionValue, Id, QualityScore " +
  "FROM KEYWORDS_PERFORMANCE_REPORT " +
   "WHERE " +
   "Id = " + kw +
   " AND CampaignId = " + id +
   " AND AdGroupId = " + gName +
   " AND Impressions" +
   " (DURING 20150101, 20150131) > IMPRESSIONS (DURING 20141201, 20141231)" );             

(gName のような変数は完全なコードにあり、複合ロジックを試すまでは機能します) 最善の方法が一度にすべてをクエリすることなのか、それとも個別にクエリを実行して何らかの方法で結果を 1 つのレポートに結合することなのかはわかりません. AdWords のスクリプト作成は、私が慣れ親しんでいるよりもはるかに制限されているように思われます。また、そのルールのいくつかは十分に文書化または説明されていません。これに関連するリンクやコードチャンクはどこにありますか? 助けてくれてありがとう!

4

1 に答える 1

1

このコードは役に立ちます。目的に合わせてすべての変数を置き換えます。

var daterange1 ="Specify daterange here";
var dateRange2 ="Specify daterange here"; 
    function main(){      
      var sheet = getSheet();
      var AccountIterator = MccApp.accounts().forDateRange(dateRange).withIds(ACCOUNTS).get();
      while(AccountIterator.hasNext()){
        var Account = AccountIterator.next();


        MccApp.select(Account);
            getAccountDetails(sheet);
            getAccountDetails2(sheet)

          }

    }



       function getAccountDetails(sheet){
          var query = "SELECT  Device, CampaignName, ConversionValue, Cost, Conversions " +" FROM CAMPAIGN_PERFORMANCE_REPORT " +"WHERE Impressions > 0 " +" DURING "+dateRange;
          Logger.log(query);
          var report = AdWordsApp.report(query);
          report.exportToSheet(sheet);
        }

    function getAccountDetails2(sheet){
          var query = "SELECT  Device, CampaignName, ConversionValue, Cost, Conversions " +" FROM CAMPAIGN_PERFORMANCE_REPORT " +"WHERE Impressions > 0 " +" DURING "+dateRange;
          Logger.log(query);
          var report = AdWordsApp.report(query);
          report.exportToSheet(sheet);
        }

        function getSheet(){
          var spreadsheet = SpreadsheetApp.openByUrl(url);
          var sheet=spreadsheet.setActiveSheet(spreadsheet.getSheets()[0]);

      return sheet;
    }

自分でそれを行うのは良い練習になるので、私はそれを最適化していません。しかし、これで問題は解決します。

于 2015-02-17T08:53:32.663 に答える