2

Я знаю, что можно загрузить стоимость данных в Google Analytics через web interface. Я, однако, хочу сделать этот процесс более автоматическим, поэтому я подумал об использовании электронной таблицы google и скрипта приложения Google для сокращения этих процессов.Как загрузить стоимость в Google Analytics с помощью Google SpreadSheet

Моей идеей является получение данных, которые я хочу загрузить в Google Analytics на экране spreadSheet, а затем использовать расширенные службы сценариев Google Apps для загрузки данных в свое свойство Google Analytics. К сожалению, документация по расширенным службам приложений Google App очень ограничена. Поэтому я прыгал, и кто-то мог мне помочь. Здесь сделано Что у до сих пор:

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); 



} 

Я нашел код, который преобразует range to a CSV as a string. Но я не знаю, как взять эту строку и преобразовать ее в blob, поэтому я могу использовать ее как параметр mediaData в методе Analytics.Management.Uploads.uploadData(accountId, webPropertyId, customDataSourceId, mediaData);.

Я считаю, что вызов этого метода мог бы сделать трюк, однако я не уверен, как передать данные в параметре mediaData, и, как я уже сказал, я не смог найти документацию, объясняющую, как работает этот метод. Я знаю, что mediaData должен быть типа Blob, но я не мог найти примеров, объясняющих, как создать Blob, являющийся файлом CSV.

ответ

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

Это отлично работает. Спасибо. Вы знаете, где я могу найти документацию по API управления Google Analytics для Google Apps Script. Он должен быть таким же, как API, но это не совсем то же самое. Методы Утилиты также не имеют хорошей документации. – user3347814

Смежные вопросы