2

Ich weiß es möglich ist, über die web interface Datenkosten an Google Analytics hochladen. Ich möchte diesen Prozess jedoch etwas automatisierter gestalten. Daher habe ich überlegt, Google-Tabellenkalkulation und Google App-Skript zu verwenden, um diese Prozesse zu verkürzen.Wie Kosten zu Google Analytics hochladen Google mit Spreadsheet

Mein ideia ist es, die Daten, die ich zu Google Analytics auf einer Kalkulationstabelle hochladen möchten bekommen und dann Google Apps Script Advanced Services verwenden, um die Datenkosten zu meinem Google Analytics Property hochladen. Leider ist die Dokumentation zu Google App Script Advanced Services sehr eingeschränkt. Also hüpfte ich, jemand konnte mir helfen. Hier ist was hat bisher getan:

function uploadDataCost() { 

    var accountId = "XXXXXXXX"; 
    var webPropertyId = "UA-XXXXXXX"; 
    var customDataSourceId = "XXXXXXXXXXXXX"; 

    var csvData = convertRangeToCSVString();  

    var mediaData = Utilities.newBlob([]); //This variable is my main problem. 

    Analytics.Management.Uploads.uploadData(accountId, webPropertyId, customDataSourceId, mediaData); 



} 

Ich habe einen Code gefunden, der die range to a CSV as a string umwandelt. Aber ich weiß nicht, wie diese Zeichenfolge zu nehmen und es zu einem Blob konvertieren, damit ich es als Parameter mediadata in der Methode Analytics.Management.Uploads.uploadData(accountId, webPropertyId, customDataSourceId, mediaData); verwenden kann.

Ich glaube, der Aufruf dieser Methode würde den Trick tun, aber ich bin mir nicht sicher, wie die Daten im Parameter mediaData übergeben werden, und wie gesagt, ich konnte keine Dokumentation finden, wie diese Methode funktioniert. Ich weiß, dass der Blob-Typ mediadata sein sollte, aber ich konnte keine Beispiele finden zu erklären, wie ein Blob erstellen, die eine CSV-Datei.

Antwort

4
function uploadData() { 
    var accountId = "xxxxxxxx"; 
    var webPropertyId = "UA-xxxxxxxx-x"; 
    var customDataSourceId = "xxxxxxxx"; 
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var maxRows = ss.getLastRow(); 
    var maxColumns = ss.getLastColumn(); 
    var data = []; 
    for (var i = 1; i < maxRows;i++) { 
    data.push(ss.getRange([i], 1,1, maxColumns).getValues()); 
    } 
    var newData = data.join("\n"); 
    var blobData = Utilities.newBlob(newData, "application/octet-stream", "GA import data"); 
    try { 
    var upload = Analytics.Management.Uploads.uploadData(accountId, webPropertyId, customDataSourceId, blobData); 
    SpreadsheetApp.getUi().alert("Uploading: OK"); 
    } 
    catch(err) { 
    SpreadsheetApp.getUi().alert("Cannot upload: Failed"); 
    } 
} 

Source

+0

Das funktioniert perfekt. Vielen Dank. Weißt du zufällig, wo ich eine Dokumentation über die Google Analytics Management API für Google Apps Script finde? Es sollte die gleiche wie die API sein, aber es ist nicht ganz dasselbe. Den Utilities-Methoden fehlt auch eine gute Dokumentation. – user3347814