Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getAPIKey() {
- return 'YOUT API KEY'
- }
- function fetchConversionsWithPage(payload, page, pageSize) {
- var options = {
- method: 'post',
- headers: {
- 'X-Eflow-API-Key': getAPIKey(),
- },
- contentType: 'application/json',
- payload: JSON.stringify(payload),
- };
- var response = UrlFetchApp.fetch('https://api.eflow.team/v1/networks/reporting/conversions?page=' + page + '?page_size=' + pageSize, options);
- return JSON.parse(response.getContentText());
- }
- function onImportConversionFormSubmit(form) {
- if(!getAPIKey()) {
- alert('Missing API key');
- return;
- }
- var payload = {
- from: form.from,
- to: form.to,
- timezone_id: parseInt(form.timezone, 10),
- format: 'json',
- currency_id: 'USD',
- show_conversions: true,
- };
- var page = 1;
- var pageSize = 500;
- var total_count = -1;
- var conversions = [];
- do{
- var response = fetchConversionsWithPage(payload, page, pageSize);
- total_count = response.paging.total_count;
- conversions.push.apply(conversions, response.conversions);
- } while((page++ * pageSize) < total_count)
- var sheet = SpreadsheetApp.getActive()
- .insertSheet('EverflowConversions_'+form.from+'_'+form.to+'_'+Math.floor((Math.random() * 1000000) + 10000))
- .activate();
- var header = [
- 'conversion_id',
- 'transaction_id',
- 'conversion_unix_timestamp',
- 'click_unix_timestamp',
- 'relationship.affiliate.network_affiliate_id',
- 'relationship.affiliate.name',
- 'relationship.offer.network_offer_id',
- 'relationship.offer.name',
- {label: 'affiliate_manager_id', path:'relationship.affiliate_manager.network_employee_id'},
- 'relationship.affiliate_manager.full_name',
- 'relationship.advertiser.network_advertiser_id',
- 'relationship.advertiser.name',
- {label: 'account_manager_id', path:'relationship.account_manager.network_employee_id'},
- 'relationship.account_manager.full_name',
- 'source_id',
- 'sub1',
- 'sub2',
- 'sub3',
- 'sub4',
- 'sub5',
- 'adv1',
- 'adv2',
- 'adv3',
- 'adv4',
- 'adv5',
- 'session_user_ip',
- 'conversion_user_ip',
- 'http_user_agent',
- 'project_id',
- 'payout_type',
- 'revenue_type',
- 'country',
- 'region',
- 'city',
- 'dma',
- 'carrier',
- 'platform',
- 'os_version',
- 'device_type',
- 'brand',
- 'browser',
- 'language',
- 'payout',
- 'revenue',
- 'notes',
- 'is_scrub',
- 'is_view_through',
- 'coupon_code',
- 'order_id',
- 'error_code',
- 'sale_amount',
- 'isp',
- 'referer',
- 'app_id',
- 'idfa',
- 'idfa_md5',
- 'idfa_sha1',
- 'google_ad_id',
- 'google_ad_id_md5',
- 'google_ad_id_sha1',
- 'android_id',
- 'android_id_md5',
- 'android_id_sha1',
- 'currency_id',
- 'email',
- ];
- var pHeader = [];
- for(var i = 0; i < header.length; i++) {
- if(typeof header[i] === 'object') {
- pHeader[i] = header[i].label;
- } else {
- var split = header[i].split('.');
- pHeader[i] = split.length > 1 && split[split.length -1].indexOf('name') > -1 ? split[split.length -2] + '_' + split[split.length -1] : split[split.length -1];
- }
- }
- sheet.appendRow(pHeader);
- for(var i = 0; i < conversions.length; i++) {
- var row = [];
- for(var hi = 0; hi < header.length; hi++) {
- if(typeof header[hi] === 'object') {
- row[hi] = deepValue(conversions[i], header[hi].path);
- } else {
- row[hi] = deepValue(conversions[i], header[hi]);
- }
- }
- sheet.appendRow(row);
- }
- }
- /**
- Meta
- */
- function getTimezones() {
- var response = UrlFetchApp.fetch('https://static.everflowclient.io/timezone_en-US.json')
- var timezones = JSON.parse(response.getContentText());
- return timezones;
- }
- /**
- Utils
- */
- function include(filename) {
- return HtmlService.createHtmlOutputFromFile(filename)
- .getContent();
- }
- function deepValue(obj, path){
- try {
- for (var i=0, path=path.split('.'), len=path.length; i<len; i++){
- obj = obj[path[i]];
- };
- return obj;
- } catch(ex) {
- console.log(ex, obj, path);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement