Pull to refresh

Как рекламная сеть Vungle пытается усложнить жизнь своим клиентам

Reading time2 min
Views8.5K
Начиная с января 2014 года, в своих приложениях я использовал Vungle. На тот момент это была одна из самых прибыльных рекламных сетей для мобильных приложений и одна из немногих, поддерживающих рекламные видеоролики.

image
Интерфейс Vungle в 2014 году

Общий доход, суммарный и по месяцам, можно было посмотреть на странице аккаунта. Ключевое слово — «было».

image

Через 2 года ситуация изменилась — Unity представила свою рекламную сеть, куда ушло множество разработчиков и рекламодателей, а Vungle решил сделать редизайн.

image

Изначально показалось, что все нормально, но ровно до того момента, как я решил посмотреть баланс на аккаунте. Облазив все страницы, найти его так не получилось, кроме вкладки с отчетами о доходах, которые загружаются в виде .csv файла. Выглядят они примерно так:

image

Благодаря формулам в Excel кое-как удалось вычленить данные о доходах и сложить, но это, мягко говоря, было не очень удобно. Тогда же было принято решение в новых приложениях использовать Unity Ads. Спустя время решил зайти и посмотреть доход у старых приложений за прошедший год, но тут ждал сюрприз.

image

Сначала очень удивился, подумал, что баг, но потом заметил плашку сверху.

image

Перейдя по ссылке, нахожу единственный способ посмотреть доход. Вот он. К сожалению, только для конкретного приложения, а не для всего аккаунта.

image

Ладно. Подумал, что API вернет мне немного текста, где я увижу общий доход. Получил ключ аккаунта, составил ссылку и перешел. API вернуло мне ЭТО. Как и раньше, доход высвечивался только для одного дня, без каких-либо итогов, но теперь еще и с разбивкой по странам. Большое спасибо.

image

Разозлившись, решил дойти до конца. Написал приложение на Unity, которое загружает по ссылкам json, обрабатывает и складывает общий доход.

Очень плохой код на UnityScript
#pragma strict
import System;
class MainMainVungle{
	var mvungle: MainVungle;
}
class MainVungle {
	var vungle: Vungle[];
}
class Vungle {
	var date: String;
	var impressions: int;
	var views: int;
	var completes: int;
	var clicks: int;
	var revenue: float;
	var eCPM: float;
	var geo_eCPMs: VunlgeCounty[];
}
class VunlgeCounty {
	var country: String;
	var views: int;
	var clicks: int;
	var revenue: float;
	var eCPM: float;
}
var apps: String[];
private var url: String = "https://ssl.vungle.com/api/applications/{0}?key=[ВАШ КЛЮЧ API]&start={1}&end={2}&geo=all";
private var templateJson: String = '{"vungle":';
var startDate = "2016-09-27";
var mmvungle: MainMainVungle[];
var revenue: float;
function Start () {
var cTime: Date = System.DateTime.Now;
var i: int;
for (i = 0; i< apps.Length; i++){
	var cUrl = String.Format(url, apps[i], startDate, cTime.Year+"-"+StringTime(cTime.Month)+"-"+StringTime(cTime.Day));
	var www : WWW = new WWW(cUrl);
	yield www;
	var json: String = templateJson+ www.text+"}";
	mmvungle[i].mvungle = JsonUtility.FromJson(json, MainVungle);
	Debug.Log("Loading "+apps[i]);
}
for (i = 0; i< mmvungle.Length; i++){
	for (var v: int = 0; v< mmvungle[i].mvungle.vungle.Length; v++){
		revenue+=mmvungle[i].mvungle.vungle[v].revenue;
	}
}
Debug.Log("Revenue: "+revenue);
}

function StringTime(v: int){
	if (v < 10){return "0"+v;}
	else {return ""+v;}
}

В итоге, все же удалось получить данные о доходе.

image

Интересно, зачем Vungle так старательно пытается усложнить жизнь своим пользователям?
Tags:
Hubs:
Total votes 8: ↑8 and ↓0+8
Comments7

Articles