> For the complete documentation index, see [llms.txt](https://help.citrusad.com/retail-media-interface/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.citrusad.com/retail-media-interface/integration/sk/reporting/reporting-faq.md).

# Často kladené otázky

### Je Reporting API bezpečné?

Všetky dáta uložené v službe BigQuery sú šifrované pri odpočinku aj pri prenose. To znamená, že keď sú dáta uložené na serveroch Google a keď sa prenášajú medzi týmito servermi a klientom, sú chránené silným šifrovaním.

BigQuery má okrem toho zabudované riadenie prístupu, ktoré vám umožňuje obmedziť prístup k vašim dátam na základe používateľských rolí a oprávnení. To znamená, že presne určujeme, kto má prístup k vašim dátam a aké akcie na nich môže vykonávať.

BigQuery podporuje aj autentifikáciu a autorizáciu prostredníctvom štandardných mechanizmov, ako sú OAuth 2.0 a API kľúče.

Infraštruktúra spoločnosti Google je navrhnutá tak, aby chránila pred bežnými hrozbami, ako sú útoky typu denial of service, úniky dát a neoprávnený prístup. Robí sa to pomocou rôznych bezpečnostných opatrení, ako sú firewally, systémy na detekciu neoprávneného vstupu a pravidelné bezpečnostné audity, pričom rozhranie BigQuery API je navrhnuté s ohľadom na bezpečnosť a využíva celý rad opatrení na zaistenie neustálej ochrany vašich dát.

### Ako často sa dáta aktualizujú?

Denne. Obnova sa začína o polnoci UTC+0 s maximálnym časom aktualizácie 12 hodín. Aktualizácia pokrýva všetky dáta prijaté do polnoci (UTC+0) predchádzajúceho dňa.

### Ako ďaleko do minulosti dáta siahajú?

Všetky historické dáta schválené pre danú organizáciu budú k dispozícii.

### Ak som používateľom Direct Access, ako sa pripojím?

Keďže ste už v GCP, bude to bezproblémové. Stačí sa prihlásiť a pokúsiť sa o dotazovanie príslušných tabuliek cez UI alebo API.

<figure><img src="https://storage.googleapis.com/insight-platform-docs-public/insights-iam-ui.png" alt="Insights IAM UI" width="100%"><figcaption></figcaption></figure>

#### Dostávam chybu „User does not have bigquery.jobs.create permission in project“ – čo robím zle?

Pre účty, ktoré ste nám poskytli, Epsilon Retail Media udelil privilégiá prehliadača BigQuery pre príslušné dátové sady. To vám umožní čítať tabuľky v nich. Vo vašom projekte sa musí stať niekoľko vecí, aby ste mohli spravovať dotazy na tieto vzdialené tabuľky.

Predpokladajme nasledujúce:

* Váš projekt = "client-project-123456"
* Váš používateľ = <client-user@client-project-123456.iam.gserviceaccount.com>
* Epsilon Retail Media dátová sada: "insight-platform-external-iam.client\_insight\_reporting"

Musíte:

1. Udeľte používateľovi <client-user@client-project.iam-123456.gserviceaccount.com> oprávnenie bigquery.jobs.create v rámci projektu client-project-123456 (nie Epsilon Retail Media projektu). Môžete to urobiť priradením role BigQuery Job User.
2. Pri vykonávaní dotazu musíte dotaz spustiť v rámci svojho projektu (keďže máte iba oprávnenia na čítanie dátovej sady v rámci Epsilon Retail Media projektu, nie na spúšťanie dotazov v ňom). Tu je príklad, ako by sa to mohlo stať pomocou jednoduchého príkazu cloud shell (vykonávané ako <client-user@client-project-123456.iam.gserviceaccount.com>):

```bash
bq query --use_legacy_sql=false --project_id client-project-123456 'SELECT * FROM insight-platform-external-iam.client_insight_reporting.campaign limit 10;'
```

Všimnite si, že klientsky projekt je nastavený na váš projekt, nie na insight-platform-external-iam.

Podobný prístup sa musí zvoliť aj pri akýchkoľvek iných použitých nástrojoch. Ďalšie informácie nájdete v dokumentácii k daným nástrojom, ako aj v online dokumentácii GCP, kde nájdete tipy!

#### Dáta Epsilon Retail Media nie sú v mojej lokalite, ako môžem získať dáta do svojej lokality?

Existuje množstvo možností, ale je jednoduché vytvoriť dátové sady na rovnakej lokalite ako sú naše, potom vykonať transformácie, dotazy atď. do tabuliek v týchto dátových sadách a potom to skopírovať na vami preferovanú lokalitu.

<figure><img src="https://storage.googleapis.com/insight-platform-docs-public/location-guide.png" alt="Location Guide" width="100%"><figcaption></figcaption></figure>

Existuje mnoho spôsobov kopírovania medzi lokalitami pomocou UI, nástroja príkazového riadku BQ a samotného API. Ďalšie informácie nájdete na týchto stránkach dokumentácie Google Cloud:

* [Manage datasets | BigQuery](https://cloud.google.com/bigquery/docs/managing-datasets)
* [odkaz na nástroj príkazového riadku bq](https://cloud.google.com/bigquery/docs/bq-command-line-tool)
* [Kopírovanie tabuľky z jedného zdroja](https://cloud.google.com/bigquery/docs/copying-datasets)

### Ak som používateľom API mimo GCP, ako sa pripojím?

Epsilon Retail Media vám poskytne príslušné poverenia v súbore JSON, ktoré môžete začleniť do svojho autentifikačného mechanizmu.

### Môžem ladit dotazy pomocou iba Reporting API (nie BigQuery UI)?

Áno, BigQuery API vráti kód indikujúci, či sa vyskytol problém, a k dispozícii budú aj chybové správy.

### Môžem odhadnúť, aký drahý bude dotaz?

Áno, API má mechanizmus na získanie odhadu bajtov, ktoré dotaz naskenuje, ak sa vykoná. Tento odhad vynásobený tým, ako často dotaz voláte, môžete použiť na to, aby ste pochopili, ako blízko sa dostanete k kvóte.

Viac informácií nájdete v dokumentácii GCP.

[Dry run query | BigQuery | Google Cloud](https://cloud.google.com/bigquery/docs/samples/bigquery-query-dry-run)

### Čo ak prekročím limit kvóty?

Pozrite si svoju zmluvu s Epsilon Retail Media aby ste pochopili, aká je vaša kvóta. Ak nie je špecificky definovaná, bude predvolene nastavená na 10 TB skenovania dát dotazov mesačne.

Vaša zmluva môže zahŕňať aj maximálny počet volaní API za deň. Ak to nie je špecificky definované, bude predvolene nastavených 100 volaní API za deň.

V prípade, že prekročíte svoju kvótu (či už skenovanie dát alebo počet volaní), budeme vás kontaktovať, aby sme pochopili vaše prípady použitia. V závislosti od vašej zmluvy sa môžu uplatniť poplatky za prekročenie.

V prípade závažného zneužitia mimo podmienok vašej zmluvy (alebo predvolených limitov) si vyhradzujeme právo pozastaviť prístup.

### Aký je príklad použitia Reporting API?

Nižšie sú uvedené niektoré príklady pomocou bežných metód.

#### Google SDK pre Python

Tento príklad bude:

1. Pripojiť sa k BigQuery
2. Spustiť dotaz
3. Uložiť výsledok do csv

```python
import google.cloud.bigquery as bq
import pandas as pd
bq_client = bq.Client.from_service_account_json("<REPLACE>.json")
job_config = bq.QueryJobConfig(allow_large_results=True)
query_job = bq_client.query(
    'SELECT count(1) FROM insight-platform-external-iam.<REPLACE>_insight_reporting.campaign
    LIMIT 1000', job_config=job_config)
df = query_job.to_dataframe(create_bqstorage_client=False)
df.to_csv(r"C:\Users\<REPLACE>\<REPLACE>.csv", index=False)
print("Run Complete")
```

Pre odhad naskenovaných bajtov atď. pred spustením dotazu sú k dispozícii ďalšie metódy.

Pozrite si dokumentáciu k BigQuery

[BigQuery API | Google Cloud](https://cloud.google.com/bigquery/docs/reference/rest)

Ak nie ste v GCP, môžete sa odkazovať na súbor poverení JSON prostredníctvom premennej prostredia.

#### Generické API pre Python

```python
import csv
import requests
from google.oauth2 import service_account

PROJECT_ID = "insight-platform-external-iam"
DATASET = "<YOUR DATASET HERE>"
END_POINT = f"https://bigquery.googleapis.com/bigquery/v2/projects/{PROJECT_ID}/queries"
QUERY = f"""
SELECT supplier_id, campaign_id, sum(ad_spend) as ad_spend, sum(clicks) as clicks
FROM `{PROJECT_ID}.{DATASET}.realised_ad_agg`
WHERE ingressed_at BETWEEN '2022-09-01' and '2022-12-31'
group by 1,2
"""

def get_token():
    # With service account
    credentials = service_account.Credentials.from_service_account_file('./secrets/service-account.json')
    scoped_credentials = credentials.with_scopes(['https://www.googleapis.com/auth/cloud-platform'])

    # Do token request
    def req( method, url, headers, body, **kwargs):
        resp = requests.post(url, headers=headers, data=body)
        return type('obj', (object,), {'data' : resp.text, 'status': 200})

    scoped_credentials.refresh(req)
    return scoped_credentials.token

def run_job(token):
    resp = requests.post(
            END_POINT,
            json={
                "query": QUERY,
                "useLegacySql": False
            },
            headers={
                "Content-Type": "application/json",
                "Authorization": f"Bearer {token}"
            }
    )
    return resp.json()['jobReference']['jobId']

def get_query_results(job_id, token):
    status_endpoint = f'{END_POINT}/{job_id}?location=australia-southeast1'
    completed = False
    while not completed:
        response = requests.get(status_endpoint, headers={
                "Content-Type": "application/json",
                "Authorization": f"Bearer {token}"
            })
        completed = response.json()['jobComplete']

    data = response.json()
    rows = data['rows']
    columns = [c['name'] for c in data['schema']['fields']]

    return rows, columns

def extract():
    token = get_token()
    job_id = run_job(token)
    rows, columns = get_query_results(job_id, token)

    with open('results.csv', 'w', newline='') as f:
        writer = csv.writer(f)
        writer.writerow(columns)

        for row in rows:
            writer.writerow([i['v'] for i in row['f']])

extract()
```

### Čo ak som v AWS atď. a nie v Google Cloud, môžem sa stále autentifikovať a používať API?

Áno, bude to fungovať. Poskytneme poverenia servisného účtu a môžete sa na ne odkazovať vo svojej aplikácii. Tu je príklad.

```python
# TODO(developer): Set key_path to the path to the service account key
#                  file.
# key_path = "path/to/service_account.json"

credentials = service_account.Credentials.from_service_account_file(
    key_path, scopes=["https://www.googleapis.com/auth/cloud-platform"],
)

token = credentials.token

# use the token to do the API calls
# ...
# headers: Bearer ${token}
# ...
```

### Ako môžem zistiť, aká je lokalita každej dátovej sady, ktorá je so mnou zdieľaná?

Toto volanie API vám povie, v akej lokalite sa nachádza každá dátová sada.

`GET https://bigquery.googleapis.com/bigquery/v2/projects/insight-platform-external-iam/datasets`

```json
{
  "kind": "bigquery#datasetList",
  "etag": "RLU1Ww9C5FdhlcIuRHjW0A==",
  "datasets": [
    {
      "kind": "bigquery#dataset",
      "id": "insight-platform-external-iam:acme_insight_reporting",
      "datasetReference": {
        "datasetId": "acme_insight_reporting",
        "projectId": "insight-platform-external-iam"
      },
      "location": "australia-southeast1"
    },
    {
      "kind": "bigquery#dataset",
      "id": "insight-platform-external-iam:acme_acme_analytics",
      "datasetReference": {
        "datasetId": "acme_acme_analytics",
        "projectId": "insight-platform-external-iam"
      },
      "location": "us-central1"
    }
  ]
}
```

### Máte nejaké tipy na osvedčené postupy?

Všeobecne povedané, ak máte v úmysle intenzívne používať dáta, najmä ak máte prístup k neagregovaným dátam (requests/realised ads/orders/enhanced attribution atď.), je najlepšie skopírovať (stage-ovať) tabuľky do vlastného dátového skladu a AŽ POTOM nad týmito kópiami vykonávať dopyty pre požadovanú biznis logiku.

Menej nároční používatelia sa môžu rozhodnúť dopytovať tabuľky priamo pre konkrétne výsledky.

Je dôležité zostávať pod povolenou kvótou, aby sa zabezpečilo plynulé fungovanie.

Upozorňujeme tiež, že každý dopyt môže stiahnuť maximálne 1 GB, inak sa zobrazí chybové hlásenie. V prípade, že je potrebné veľmi veľké stiahnutie, spustite namiesto toho niekoľko menších dopytov (napr. podmnožinu dát za deň alebo dodávateľa atď.).

### Čo ak potrebujem pomoc s vytvorením vhodných SQL príkazov?

Vytvorte ticket so špecifikáciou vášho pokusu o dopyt a my vám ho pomôžeme skontrolovať – vrátime sa k vám s prípadnými pripomienkami.

### Nematé tipy na používanie balíka Pandas?

Pandas je jedným z najpopulárnejších analytických nástrojov. Aby fungoval, je potrebné nainštalovať závislosti pandas-gbq a pydata-google-auth.

Níže uvedený fragment kódu je funkčným príkladom toho, ako čítať dáta z tabuľky BigQuery.

```python
import pandas as pd
from google.oauth2 import service_account

credentials = service_account.Credentials.from_service_account_file('path/to/the/credential/file')

query = 'select * from project.dataset.table'

dat = pd.read_gbq(
    query,
    project_id='project_id',
    credentials=credentials
)
```

Viac informácií o funkcii Pandas nájdete [tu](https://pandas.pydata.org/docs/reference/api/pandas.read_gbq.html).

### Máte nejaké tipy na používanie balíka PySpark?

Za predpokladu, že máte funkčné prostredie PySpark, musíte poskytnúť správny súbor jar pre konektor BigQuery zodpovedajúci vašej verzii PySpark. Napríklad PySpark 3.2.\* vyžaduje spark-3.2-bigquery-0.30.0.jar. Zoznam súborov jar, ako aj praktické ukážky kódu a parametre nájdete [tu](https://github.com/GoogleCloudDataproc/spark-bigquery-connector).

Níže uvedený kód poskytuje príklad, ako spustiť dopyt.

```python
from pyspark.sql import SparkSession

spark = SparkSession.builder.appName('BigNumeric').config('spark.jars', 'spark-3.2-bigquery-0.30.0.jar').getOrCreate()

spark.conf.set('credentialsFile', 'path/to/the/credential/file')

spark.conf.set('viewsEnabled', 'true')
spark.conf.set('materializationProject', 'yourMaterializationProject')
spark.conf.set('materializationDataset', 'yourMaterializationDataset')

query = 'select * from project.dataset.table'

df = spark.read.format('bigquery').option('query', query).load()

df.show()
```

DÔLEŽITÉ: Parameter viewsEnabled musí mať hodnotu true.

Dáta vo views sa pred čítaním cez PySpark materializujú do dočasných tabuliek, kde je potrebné oprávnenie bigquery.tables.create. Preto musíte zadať materializationProject a materializionDataset, kde má používateľ prístup na zápis.

### Zobrazuje sa mi chyba vyžadujúca filter v dopyte?

Pre partitiovanú tabuľku je filter povinný, bez ktorého sa zobrazí chybové hlásenie ako to nižšie:

> Cannot query over table ‘dataset\_id.table\_id' without a filter over column(s) ‘partitioned\_column' that can be used for partition elimination

Na vyriešenie chyby jednoducho pridajte rozumný filter pokrývajúci cieľový rozsah, napr.

```sql
-- this query returns all records available since yesterday
select
  *
from
  dataset_id.table_id
where
  ingressed_at >= date_sub(current_date, interval 1 day)
```

Ak chcete zistiť, podľa ktorého stĺpca je tabuľka partitiovaná (ako ingressed\_at v príklade vyššie), pozrite si popis danej tabuľky.

### Ako môžem požiadať o prístup?

#### Proces

Musí sa vytvoriť ticket a kritériá oprávnenosti sa musia písomne odsúhlasiť.

Budeme spolupracovať s potenciálnym Kandidátom na identifikácii požadovanej úrovne prístupu a bezpečnostných nastavení a určíme, aké kvóty a náklady sa môžu uplatniť.

#### Kritériá oprávnenosti

Kandidát musí spĺňať nasledujúce kritériá, aby bol považovaný za oprávneného na prístup k Reporting API: -

**Všeobecné**

1. Kandidát môže požiadať o prístup len k dátam pre Epsilon Retail Media namespaces a tímy, ktorých je už inak členom, alebo k nim má všeobecný prístup. Kandidát musí špecifikovať, o ktorý z nasledujúcich scenárov žiada (a poskytnúť dôkaz o existujúcom prístupe):
   1. Úroveň prostredia (celá implementácia Epsilon Retail Media platformy je vyhradená pre Kandidáta).
   2. Úroveň Namespace (Kandidát má oprávnenie vidieť všetky tímy, maloobchodníkov aj dodávateľov, v rámci jednotlivého Namespace alebo zoznamu Namespaces).
   3. Úroveň špecifického Retailer Team id alebo skupiny.
   4. Úroveň špecifického Supplier Team id alebo skupiny.
      1. okrem toho môže Integrátor pristupovať k špecifickému Supplier Team id alebo úrovni skupiny PLUS k úplným produktovým katalógom maloobchodníka (Retailer Product Catalogs), ak s tým maloobchodník súhlasí od prípadu k prípadu.
2. Transakčné dáta Fact môžu byť poskytnuté len Kandidátom, ktorí spĺňajú podmienky pre Všeobecné kritériá 1a alebo 1b.
3. Kandidátom, ktorí nekvalifikujú na transakčné dáta Fact, bude poskytnutý prístup len k predagregovaným dátam Fact. Dáta budú agregované do denných súhrnov (s časovým pásmom agregácie UTC+0).
4. Kandidáti oprávnení len pre Všeobecné kritériá 1d nemôžu dostávať dáta Ad Request (na rozdiel od dát Realised Ad, ktoré budú poskytnuté). Dáta o produktoch budú poskytnuté pre konkrétne Produkty inzerované v Realised Ads dodávateľom OKREM Integrátorov, ktorí môžu dostávať Retailer Product Catalogs, ak s tým maloobchodník súhlasí od prípadu k prípadu.
5. Dimenzionálne dáta sú garantované len v aktuálnych verziách príslušných záznamov. Očakáva sa, že sledovanie historických zmien si Kandidát implementuje podľa svojich potrieb.
6. Dáta sa aktualizujú denne a budú aktualizované najneskôr do 12:00 UTC+0 pre dáta do a vrátane predchádzajúceho ukončeného dňa UTC+0.
7. Rozumie sa, že prístup má charakter len na čítanie. API sa nemá používať na vytváranie objektov v našom dátovom sklade na žiadny účel.
8. Akékoľvek spájanie s inými dátovými zdrojmi sa musí vykonávať do vlastného prostredia Kandidáta.
9. Kandidát musí mať k dispozícii SDK (alebo ekvivalent) na prístup k Google BigQuery API.
10. Kandidát má dobré znalosti SQL.
11. Kandidát bude oboznámený s Epsilon Retail Media konceptmi, a ak nie, zabezpečí poskytnutie štandardného produktového školenia prostrednictvom svojho Customer Support Managera alebo Technical Account Managera.
12. Na základe poskytnutých dokumentov sa od Kandidáta očakáva, že vyvinie vlastné riešenia. Ak sa zistí problém s SQL, ktorý sa nespráva podľa očakávania na základe dokumentácie, musí sa vytvoriť ticket prostredníctvom bežných kanálov podpory. Musia byť poskytnuté nasledujúce informácie.
    1. Účet, cez ktorý sa pripojenie nadväzuje.
    2. Presný SQL, ktorý sa volá.
    3. Podrobný popis toho, aké chybové hlásenia sa vyskytujú.
13. Ak je Kandidátom maloobchodník, vyžaduje sa, aby boli do Epsilon Retail Media platformy poskytované Zobrazenia/Kliknutia/Objednávky (Impressions/Clicks/Orders), aby bolo možné vytvoriť úplný obraz o životnom cykle reklamy.
14. Čas od času, Epsilon Retail Media vyhradzujú si právo na zmenu schémy. Tieto zmeny zvyčajne zahŕňajú pridanie nových stĺpcov do existujúcich tabuliek a pohľadov a budú spätne kompatibilné. Uchádzači musia svoju SQL štruktúrovať tak, aby pomenovávali stĺpce, a nepoužívali žolíkové znaky atď. V prípade, že zmena zahŕňa zrušenie platnosti stĺpca alebo tabuľky, Epsilon Retail Media oznámia zmenu najmenej 12 týždňov pred jej implementáciou. Oznámenia prebehnú prostredníctvom štandardnej komunikačnej správy o vydaní pre používateľov platformy.

Nie je povinné, aby bol uchádzač existujúcim používateľom Google Cloud Platform (GCP); existujú však ďalšie kritériá v závislosti od toho, či uchádzač je alebo nie je používateľom GCP.

**Uchádzač bez GCP**

Ak nie je dohodnuté inak, Epsilon Retail Media poskytnú uchádzačovi prihlasovacie údaje pre jediný servisný účet v našom prostredí.

Ak nie je dohodnuté inak, platia nasledujúce predvolené podmienky:

1. Maximálne 100 volaní API za deň.
2. Maximálne 10 TB skenovania dát za mesiac (poznámka: API umožňuje odhadnúť veľkosť skenovania dopytu pred jeho spustením, pozrite si dokumentáciu Google [Dry run query | BigQuery | Google Cloud](https://cloud.google.com/bigquery/docs/samples/bigquery-query-dry-run)).
3. Ak sú kritériá 1 a/alebo 2 pre uchádzača bez GCP prekročené, Epsilon Retail Media vyhradzujú si právo pozastaviť prístup podľa vlastného uváženia.
4. Žiadne jednotlivé volanie API nemôže naraz stiahnuť viac ako 1 GB dát.

#### Ako dekódujem súbor servisného účtu?

Prihlasovacie údaje servisného účtu vám budú poskytnuté vo formáte kódovanom v base64 pre bezpečný prenos. Pred použitím ich musíte dekódovať. Tu sú príklady, ako súbor dekódovať:

Použitie cez bash:

```bash
# Replace encoded-credentials.txt with the file containing your base64 encoded credentials
base64 -d encoded-credentials.txt > service-account.json
```

Použitie cez Python:

```python
import base64

# Replace encoded_credentials with your base64 encoded string
with open('encoded-credentials.txt', 'r') as f:
    encoded_credentials = f.read()

decoded_credentials = base64.b64decode(encoded_credentials)

with open('service-account.json', 'wb') as f:
    f.write(decoded_credentials)
```

Po dekódovaní získate súbor `service-account.json` , ktorý môžete použiť s klientskymi knižnicami BigQuery, ako je znázornené v predchádzajúcich príkladoch.

**Uchádzač s GCP**

Ak nie je dohodnuté inak, uchádzač poskytne Epsilon Retail Media údaje o maximálne 5 účtoch GCP, aby sme mohli prideliť požadovaný prístup.

Upozorňujeme, že účet musí mať pridelenú rolu Používateľ úloh BigQuery (roles/bigquery.jobUser).

Platia nasledujúce obmedzenia:

1. Maximálne 100 volaní API za deň.
2. Ak je kritérium 1 pre uchádzača s GCP prekročené, Epsilon Retail Media vyhradzujú si právo pozastaviť prístup podľa vlastného uváženia.
3. Žiadne jednotlivé volanie API nemôže stiahnuť viac ako 1 GB dát.

### Slovník pojmov

#### Prostredie

Názov fyzického prostredia, v ktorom je Epsilon Retail Media platforma nasadená. Každé hostuje jeden alebo viac menných priestorov (namespaces).

#### Menný priestor (Namespace)

Logické zoskupenie všetkých entít, ktoré sú súčasťou implementácie Epsilon Retail Media riešenia. Zahŕňa tímy a všetky objekty vlastnené tímami. Typicky môže menný priestor pozostávať z predajcu (tím) a viacerých dodávateľov (tímy) spolu s používateľmi pre každý tím a ďalšou súvisiacou konfiguráciou (predajcovia vlastnia katalógy, dodávatelia konfigurujú kampane atď.). Tímy (a to, čo vlastnia) patria výhradne do jediného menného priestoru (žiadne tímy nemôžu existovať naprieč viacerými mennými priestormi).

#### Používateľ

Unikátny identifikátor používateľa v Epsilon Retail Media systéme. Jediný e-mail môže mať viacero userId. Každé userId je unikátne v rámci menného priestoru. Každý používateľ bude mať krstné meno, priezvisko, e-mail a id. Používateľ môže byť členom a pristupovať k viacerým tímom v Epsilon Retail Media platforme.

#### Tím

Tím v rámci Epsilon Retail Media systému. Môže to byť dodávateľ (inzerent) alebo predajca. Dodávateľské tímy zvyčajne vytvárajú kampane, predajcovia kontrolujú kampane a vykonávajú administratívne funkcie. Používateľ v Epsilon Retail Media systéme môže byť členom mnohých tímov alebo iba jedného. Tím bude mať zvyčajne priradených používateľov, kampane a peňaženky.

#### Dodávateľ

Dodávateľský tím v rámci Epsilon Retail Media systému. Dodávateľom môže byť zvyčajne materská spoločnosť značky alebo séria tímov pre jednotlivé značky. Dodávatelia zvyčajne spravujú kampane, spravujú zostatky v peňaženke atď.

#### Predajca

Tím predajcu v rámci Epsilon Retail Media systému. Väčšina menných priestorov bude mať iba jeden tím predajcu. Predajcovia zvyčajne spravujú produktové katalógy, kontrolujú kampane atď.

#### Kampaň

Jediná unikátna kampaň nakonfigurovaná so stratégiou umiestnenia a cieľového zamerania pre špecifický výber produktov. Napríklad kampaň v Epsilon Retail Media systéme by mohla propagovať produkt A a B so zameraním na vyhľadávacie výrazy 'čokoláda' a 'čokolády' s maximálnou ponukou $0,60. Jediný tím má zvyčajne mnoho kampaní.

#### Katalóg

Unikátny produktový katalóg predajcu v Epsilon Retail Media systéme. Pre predajcu je typické, že synchronizuje iba jeden produktový katalóg s Epsilon Retail Media v jedinom mennom priestore. Katalóg bude obsahovať zoznam všetkých produktov v katalógu predajcu, ich názov, značku, kategórie a ďalšie relevantné atribúty, ktoré sa importujú do Epsilon Retail Media systému.

#### Produkt

Jediný unikátny produkt v Epsilon Retail Media systéme. Produkt bude mať unikátny kód produktu synchronizovaný v produktovom katalógu. Produkt môže mať atribúty, ako je kategória, taxonómia, značka atď.

#### Peňaženka

Peňaženka v Epsilon Retail Media systéme uchováva finančné prostriedky inzerenta na účely vykonávania platieb (napr. platba za realizované reklamy). Každá peňaženka má jediný kód meny a môže míňať iba oproti katalógom s rovnakým kódom meny. Peňaženku vlastní tím. Tím môže mať ľubovoľný počet peňaženiek. Peňaženku je možné archivovať. Archivácia peňaženky ju iba zobrazí/skryje v platforme, archivovaná peňaženka môže stále míňať kredity.

#### Kniha transakcií (Ledger)

Kniha udalostí, ktoré viedli k transakcii v Epsilon Retail Media systéme. Najčastejšie ide o reklamné udalosti, ako sú zobrazenia (impressions) alebo kliknutia na sponzorované produkty alebo bannerové reklamy (výsledkom je debet). Môžu to byť aj doplnenia a úpravy zostatkov zo strany dodávateľa (kredity). Každá udalosť bude mať 'dôvod', ako napríklad Sponzorované produkty, Bannerové reklamy, Doplnenie zostatku.

#### Požiadavka (Request)

Požiadavka odoslaná do Epsilon Retail Media systému na reklamy. V požiadavke predajca špecifikuje umiestnenie, ako aj kontext, ako je zákaznícke sessionId alebo filtre relevantné pre požiadavku. V závislosti od požiadavky Epsilon Retail Media pošle predajcovi späť reklamy relevantného AdType (napr. Kategória alebo Vyhľadávací výraz), ktoré sa majú zobraziť zákazníkovi.

#### (Realizovaná) Reklama

Reklama je jediná reklamná udalosť poslaná späť predajcovi na zobrazenie jeho zákazníkovi. Realizovanou reklamou sa stáva vtedy, keď predajca vráti potvrdenie, že reklama mala minimálne zobrazenie (výslovné potvrdenie, že reklama bola skutočne použitá, t. j. realizovaná). V Epsilon Retail Media systéme bude mať každá reklama unikátne realisedad id, ktoré je odkazom na túto jedinú unikátnu udalosť.

#### Kategória

Kategória je stránka na webe predajcu ako súčasť taxonómie jeho webovej lokality, napríklad „Pekáreň“ alebo „Mliečne výrobky“. Predajca zvyčajne požaduje reklamy na stránke kategórie a špecifikuje tento relevantný atribút vo svojej požiadavke pre Epsilon Retail Media. If Epsilon Retail Media má aktívne a platné kampane pre kategóriu, reklamy sa vrátia.

#### SearchTerm

Vyhľadávací výraz zadaný zákazníkom na webovej lokalite predajcu. Tento vyhľadávací výraz sa potom odosiela do Epsilon Retail Media na vyžiadanie relevantných reklám. Ak Epsilon Retail Media má aktívne a platné kampane pre vyhľadávací výraz, reklamy sa vrátia.

#### Objednávka

Unikátna objednávka v systéme predajcu synchronizovaná s Epsilon Retail Media. Jedna objednávka môže obsahovať viacero položiek objednávky (podobne ako nákupný košík zákazníka môže obsahovať viacero položiek). Po dokončení objednávky zákazníka sa tieto položky odosielajú do Epsilon Retail Media na zabezpečenie atribúcie v Epsilon Retail Media. Návratnosť výdavkov na reklamu (ROAS) a ďalšie dôležité KPI potom možno poskytnúť predajcom a inzerentom.

#### Atribúcia

Atribúcia je proces prevádzkovaný v systéme Epsilon Retail Media , ktorý priraďuje reklamy zobrazené zákazníkovi k odoslanej objednávke. Typická cesta zákazníka vyzerá tak, že uvidí reklamu (zobrazenie), klikne na ňu (kliknutie), pridá si ju do košíka a zakúpi danú položku (konverzia). Objednávka je „atribuovaná“ unikátnej reklame, na ktorú zákazník klikol. Aby bola objednávka atribuovaná v systéme Epsilon Retail Media , musí dôjsť k interakcii s reklamou (buď k zobrazeniu, alebo kliknutiu v závislosti od integrácie) a zákazník si následne zakúpil položku relevantnú pre túto reklamu. Epsilon Retail Media zvyčajne používajú „sessionId“ na atribuovanie objednávok k reklamám, kde predajca špecifikuje „sessionId“ vo všetkých relevantných kontaktných bodoch cesty reklamy. Takto dokáže Epsilon Retail Media identifikovať, že jedna reklama zobrazená jednému zákazníkovi viedla k konkrétnej objednávke.

#### Dátumy

Všetky údaje sú v prípade agregácie prepočítané do časového pásma UTC+0.

#### Lmit

Implementácie platformy Epsilon Retail Media často zahŕňajú situáciu, keď predajca požaduje viac reklám, než by reálne kedy zaznamenalo zobrazenie (bolo realizovaných). Z pohľadu analytiky to môže vyvolávať nepresný dojem o tom, ako určité metriky v skutočnosti fungujú. Ak bola napríklad odoslaná požiadavka na 20 reklám (AdType=Product) a platforma v odpovedi vrátila 2 reklamy, predstavuje to „mieru naplnenia“ požiadavky na úrovni 10 % (2 z 20). Ak sa však rozumie, že v praxi sa pravdepodobne použijú (realizujú) iba 4 reklamy, bolo by výhodnejšie interpretovať to ako 50 % naplnenie (2 zo 4). Preto existuje koncept limitovania (capping) v rámci reportovania. Limitovanie sa nastavuje pre každého predajcu samostatne, pričom jeden limit je k dispozícii pre produktové reklamy a druhý pre bannerové reklamy (keďže požiadavky na produktové reklamy zvyčajne požadujú a využívajú oveľa viac reklám ako bannery). Ak sa vrátime k príkladu, ak je limit produktov = 4 pre predajcu, metriky požiadavky sa vykážu nasledovne:- NumAdRequests = 1 NumAdsRequested = 20 CappedNumAdsRequested = 4 NumAdsServed = 2 CappedNumAdsServed = 2 Poznámka: v prípade, že bolo doručených 5 reklám (t. j. doručené reklamy prekročili samotný limit), posledné 2 metriky by sa vykázali ako:- NumAdsServed = 5 CappedNumAdsServed = 4 (skrátené na hodnotu limitu) Limity nie sú povinné. V prípade, že nie sú špecifikované, výsledky s limitom a bez limitu budú rovnaké.

#### Rozšírená atribúcia

Platforma Epsilon Retail Media vykonáva atribúcie tak, ako je opísané v časti Atribúcia (pozri vyššie). Reportovací podsystém dokáže tiež detegovať a označiť iné scenáre atribúcie v závislosti od predajcu (rozšírená atribúcia).

Tieto scenáre sú:

* Atribúcia zobrazenia (Impression View Thru Attribution)
  * Objednávka bola atribuovaná reklame, ktorá bola zobrazená pre rovnaký produkt v rovnakom ID relácie (t. j. išlo o zobrazenie, nie o kliknutie).
* Atribúcia kliknutia Halo (Halo Click Attribution)
  * Objednávka bola atribuovaná reklame, na ktorú bolo kliknuté pre produkt patriaci do rovnakej úrovne Halo v rovnakom ID relácie. Najbežnejšia úroveň halo je Značka (t. j. produkt v reklame a produkt v objednávke sú odlišné, ale patria pod rovnakú Značku). V závislosti od implementácie sú možné aj iné typy halo. Halo môže byť napríklad špecifickejšie a vyžadovať, aby reklama a objednávka boli pre produkty, ktoré majú okrem spoločnej Značky aj spoločnú Kategóriu. Na definovanie tejto dodatočnej úrovne detailov v Halo sa používa taxonómia predajcu nastavená pre každý produkt v Katalógu.

Verzia: 1ace13f


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.citrusad.com/retail-media-interface/integration/sk/reporting/reporting-faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
