Skip to content
jzemlo edited this page Nov 13, 2017 · 40 revisions

ADPAY

  1. Kampania powinna zawierac informację jakie sa maksymalne kwoty za

    • campaign_id - id kampani
    • time_start - czas rozpoczecia kampani
    • time_end - czas zakoncznie kampani
    • filters - campaign filters
    • max_cpc - klikniecie (cpc - cost per click) danego baneru
    • max_cpm - wyswietlenie (cpm - cost per 1000 views) danego baneru
    • budget - godzinny budzet danej kampani
  2. Kazdy event, ktory przychodzi zawiera informacje

    • event_id - id eventu
    • event_type - typ eventu (klikniecie - 1, wyswietlenie - 2 lub konwersja - 3)
    • user_id - id uzytkownika
    • event_value (max platnosc za konwersje, nie jest brana pod uwage kwota za click oraz wyswietlenie)
    • our_keywords - keywordy dostarczane przez adserver
    • their_keywords - keywordy dostarczane przez zewnętrzne serwery
    • banner_id - id banneru
    • advertiser_id - id reklamodawcy, do którego należy banner
    • timestamp - timestamp zdarzenia
    • human_score - definiuje czy user jest botem (wartos=0) lub czlowiekiem (wartosc = 1)
  3. Filtrowanie eventow:

    • tylko eventy z niepustym user_id sa brane pod uwage podczas kalkulacji
    • tylko eventy, ktore przechodza przez filtry kampani na our_keywords
  4. Określenie jakości użytkownika (per kampania)

  • Tworzymy table user_value z polami (user_id, max_score, max_user_human_score) user_id - id użytkownika, który klinął

    max_user_human_score - maksymalny human_score dla danego uzytkownika w okreslonym czasie kampani

    max_score - max([max_per_click, max_per_view, max_per_conversion]) ustawione dla kampani określa jaką maksymalną płatność w kampanii użytkownik może otrzymać w związku z eventami, które wykonał

  • Tabela jest zapełniana po wykoaniu płatności

  1. Liczenie płatności za event
    • Okreśelenie wagi płątności dla użytkownika - Waga płatności to średnia arytmetyczna z iloczynu max_score*max_user_human_score z pięciu najbardzie podobnych użytkowników [liczenie podobienstwa uzytkownikow opisane jest w punkcie 6]
    • Określenie budżetu dla użytkownika - Do każdego z 50% użytkowników z najlepszymi wagami do płatności przypisujemy część budżetu kampani, który jest wprostproporcjonalny do wagi płatności danego użytkownika
    • Określenie płatności za event - Każdy event użytkownika jest opłacony będzie wyłącnzie z budżetu użytkownika. Płatność za event będzie wprostproporcjonalna do ilości danego eventu oraz max kwoty płatności za dany event.
  1. Podobienstwa uzytkownikow

    Tabele per uzytkownik

    • Dla kazdego uzytkownika trzymana jest infromacja keywordow z czestotliwoscia wystapien
    • Co wyswietlenie uzytkownika przeliczana jest jego baza czestotliwosci keywordow w nastepujacy sposob
      • updatowana jest wartosc czestotliosc z deckayem 1%
      • jesli wartosc czestotliwosci jest mniejsza niz 0.1%, dany keyword jest usuwany z bazy keywordow z czestotliwosciami

    Tabele globalne

    • Dla kazdego keywordu trzymana jest infrmacj o globalnej ilosci wyswietlen w danym okresie czasu i częstotliwości dla danego keywordu
    • Co 1000 wyswietlen przeliczana jest baza globalnych czestotliwosci w nastepujacy sposob
      • updetowana jest wartosc czestotliwosci z deckeyem 1%
      • zerowana jest informacja o wyswietleniach
      • jesli wartosc jest mniejsza niz 0.001% - dany keyword jest usuwany z bazy globalnych keywordow

    Wyliczanie profilu keywordow dla uzytkownika

    • Profile sa liczone periodycznie przed policzniem platnosci
    • Do profilu uzytkownika brane sa tylko te keywordy, ktore maja globalna czestotliwosc < 10%
    • Dla kazdego wyfilltrowanego keywordu liczony jest score keywordu wedlug wzoru score = [czestotliwosc keywordu uzytkownika]/(0.01 + czestotliwosc globalna keywordu)
    • Do profilu uzytkownika brane jest 50 keywordow posiadajacych najwyzszy wyliczony score

    Porownywanie uzytkownikow

    • Wartosc podobiensta to ilość wystepujacych tych samych keywordow w profilach uzytkownikow podzielona przez 50
  2. get_payemnts - get events payments from specific hour

Request

{ 'timestamp':timestamp }

Response

{
    'payments':[
        {'event_id':event_id1, 'amount':pay_amount1},
        {'event_id':event_id2, 'amount':pay_amount2},
     ]
}
  1. add_events - notify about event

Request

    [
    {
        "event_id": 1029,
        "banner_id": "24309404525f4125a16d255c49681129",
        "keywords": {
            "tid": "ca2581794c8b30890d18a33b89984959",
            "screen_width": 1920,
            "screen_height": 1080,
            "inframe": "no",
            "host": "website.priv",
            "path": "website.priv\/",
            "context_lorem ipsum": 1,
            "context_lipsum": 1,
            "context_lorem": 1,
            "context_ipsum": 1,
            "context_text": 1,
            "context_generate": 1,
            "context_generator": 1,
            "context_facts": 1,
            "context_information": 1,
            "context_what": 1,
            "locale": "pl",
            "browser_name": "chrome",
            "browser_version": "60.0",
            "platform_name": "win",
            "platform_version": "10",
            "device_type": "desktop",
            "geo_continent_code": "EU",
            "geo_country_code": "DE",
            "geo_country_code3": "DEU",
            "geo_country_name": "Germany",
            "geo_region": "05",
            "geo_city": "Frankfurt Am Main",
            "geo_postal_code": "60314",
            "geo_latitude": 50.11370086669922,
            "geo_longitude": 8.711899757385254
        },
        "paid_amount": 0,
        "user_id": "ca2581794c8b30890d18a33b89984959",
        "publisher_id": "asdasd"
    }
]

Response

{'result':True}
  1. campaign_delete - delete campaigns

Request

[
    camapaign_id1, 
    camapaign_id2
]

Response

{'result':True}
  1. campaign_update - create or update campaign

Request

[
    {
        "campaign_id": "adshares2.priv\/662223a0ca9a45e69d2012a874bfd260",
        "advertiser_id": "adshares2.priv\/1",
        "time_start": 1506337992,
        "time_end": 1508929992,
        "filters": {
            "require": [
                {
                    "keyword": "platform_name",
                    "filter": {
                        "type": "=",
                        "args": "linux"
                    }
                }
            ],
            "exclude": []
        },
        "banners": [
            {
                "banner_id": "d9cb085e668b48eebf3a5a0e90a3af65",
                "keywords": {
                    "banner_size": "250x250",
                    "type": "image"
                }
            },
            {
                "banner_id": "fc19fe00bf8e47a1a6e36e08a59aacfe",
                "keywords": {
                    "banner_size": "468x60",
                    "type": "image"
                }
            }
        ]
    },
]

Response

{'result':True}
Clone this wiki locally
You can’t perform that action at this time.