← Назад#!/bin/bash
cd /home/app/arbitrage
# Check BeMob conversions via report API
CONVERSIONS=$(node -e "
import 'dotenv/config';
import { get } from './bemob.js';
const now = new Date();
const from = new Date(now - 3600000).toISOString();
const to = now.toISOString();
try {
const data = await get('/v1/report?groupBy[]=campaigns&from=' + encodeURIComponent(from) + '&to=' + encodeURIComponent(to) + '&columns[]=reports-visits&columns[]=reports-conversions&columns[]=reports-revenue');
const total = Array.isArray(data) ? data.reduce((sum, r) => sum + (r.conversions || 0), 0) : 0;
console.log(total);
} catch(e) {
console.log('error');
}
" 2>&1)
# Get PopAds stats
POPADS=$(node popads.js report today campaign 2>&1)
IMPRESSIONS=$(echo "$POPADS" | grep -o '"impressions": [0-9]*' | head -1 | grep -o '[0-9]*')
COST=$(echo "$POPADS" | grep -o '"cost": [0-9.]*' | head -1 | grep -o '[0-9.]*')
if [ "$CONVERSIONS" = "0" ] || [ "$CONVERSIONS" = "error" ]; then
# Pause campaign
node popads.js pause 9402269 > /dev/null 2>&1
echo "$(TZ='America/Vancouver' date) | PAUSED | clicks: ${IMPRESSIONS:-?} | cost: \$${COST:-?} | conversions: 0" >> /home/app/arbitrage/stats.log
echo "PAUSED - no conversions"
else
echo "$(TZ='America/Vancouver' date) | RUNNING | clicks: ${IMPRESSIONS:-?} | cost: \$${COST:-?} | conversions: $CONVERSIONS" >> /home/app/arbitrage/stats.log
echo "OK - $CONVERSIONS conversions"
fi