คำถามที่พบบ่อย

API การรายงานมีความปลอดภัยหรือไม่

ข้อมูลทั้งหมดที่จัดเก็บไว้ใน BigQuery จะได้รับการเข้ารหัสทั้งขณะพักและระหว่างส่ง ซึ่งหมายความว่าเมื่อข้อมูลถูกเก็บไว้บนเซิร์ฟเวอร์ของ Google และเมื่อส่งระหว่างเซิร์ฟเวอร์เหล่านั้นและไคลเอนต์ ข้อมูลจะได้รับการคุ้มครองด้วยการเข้ารหัสที่แข็งแกร่ง

นอกจากนี้ BigQuery ยังมีการควบคุมการเข้าถึงในตัวที่ช่วยให้คุณจำกัดการเข้าถึงข้อมูลของคุณตามบทบาทและสิทธิ์ของผู้ใช้ ซึ่งหมายความว่าเราจะระบุอย่างชัดเจนว่าใครบ้างที่สามารถเข้าถึงข้อมูลของคุณ และสิ่งที่พวกเขาได้รับอนุญาตให้ดำเนินการกับข้อมูลนั้น

BigQuery ยังรองรับการตรวจสอบสิทธิ์และการให้สิทธิ์ผ่านกลไกมาตรฐาน เช่น OAuth 2.0 และคีย์ API

โครงสร้างพื้นฐานของ Google ได้รับการออกแบบมาเพื่อป้องกันภัยคุกคามทั่วไป เช่น การโจมตีปฏิเสธบริการ การละเมิดข้อมูล และการเข้าถึงโดยไม่ได้รับอนุญาต สิ่งนี้ทําได้โดยใช้มาตรการรักษาความปลอดภัยต่างๆ เช่น ไฟร์วอลล์ ระบบตรวจจับการบุกรุก และการตรวจสอบความปลอดภัยเป็นประจํา และ BigQuery API ได้รับการออกแบบโดยคํานึงถึงความปลอดภัยและใช้มาตรการต่าง ๆ เพื่อให้แน่ใจว่าข้อมูลของคุณได้รับการปกป้องตลอดเวลา

ข้อมูลได้รับการอัปเดตบ่อยแค่ไหน

ทุกวัน การรีเฟรชเริ่มต้นเวลาเที่ยงคืน UTC+0 โดยใช้เวลาอัปเดตสูงสุด 12 ชั่วโมง การอัปเดตครอบคลุมข้อมูลทั้งหมดที่ได้รับจนถึงเที่ยงคืน (UTC+0) ของวันก่อนหน้า

ข้อมูลย้อนกลับไปไกลแค่ไหน

ข้อมูลประวัติทั้งหมดที่ได้รับการอนุมัติสำหรับองค์กรที่กำหนดจะพร้อมใช้งาน

หากฉันเป็นผู้ใช้การเข้าถึงโดยตรง ฉันจะเชื่อมต่อได้อย่างไร

หากอยู่ใน GCP อยู่แล้ว การเข้าถึงจะราบรื่น เพียงเข้าสู่ระบบและพยายามค้นหาตารางที่เกี่ยวข้องผ่าน UI หรือ API

Insights IAM UI

หากฉันเป็นผู้ใช้ API ที่ไม่ได้อยู่ใน GCP ฉันจะเชื่อมต่ออย่างไร

CitrusAd จะให้ข้อมูลประจำตัวที่เกี่ยวข้องแก่คุณใน JSON ที่คุณสามารถรวมเข้ากับกลไกการตรวจสอบสิทธิ์ของคุณได้

ฉันสามารถแก้ไขคำค้นหาโดยใช้ Reporting API เท่านั้น (ไม่ใช่ BigQuery UI) ได้ไหม

ใช่ BigQuery API จะส่งคืนโค้ดที่ระบุว่ามีปัญหาหรือไม่ และจะมีข้อความแสดงข้อผิดพลาดแสดงด้วย

เนื่องจากมีโควต้าสำหรับผู้ใช้ API ที่ไม่ได้อยู่ใน GCP ฉันจะประมาณราคาการค้นหาได้หรือไม่
ใช่ API มีกลไกในการรับค่าประมาณไบต์ของสิ่งที่แบบสอบถามจะสแกนหากดำเนินการ คุณสามารถใช้ค่าประมาณนั้นคูณด้วยความถี่ที่คุณเรียกใช้แบบสอบถามเพื่อทำความเข้าใจว่าคุณจะเข้าใกล้โควต้าเพียงใด

ดูข้อมูลเพิ่มเติมได้ในเอกสาร GCP

แบบสอบถามการทดลองเรียกใช้ | BigQuery | Google Cloud

จะเกิดอะไรขึ้นถ้าฉันเกินขีดจำกัดโควต้า

โปรดดูข้อตกลงของคุณกับ CitrusAd เพื่อทำความเข้าใจว่าโควต้าของคุณคืออะไร หากไม่ได้กำหนดไว้โดยเฉพาะ ระบบจะใช้การสแกนข้อมูลคำค้นหาตามค่าเริ่มต้นที่ 10TB ต่อเดือน

ข้อตกลงของคุณอาจเกี่ยวข้องกับจำนวนการโทร API สูงสุดต่อวัน หากไม่ได้กำหนดไว้โดยเฉพาะ ค่าเริ่มต้นจะเป็น 100 การโทร API ต่อวัน

ในกรณีที่คุณทำเกินโควต้าของคุณ (ทั้งการสแกนข้อมูลหรือจำนวนการโทร) เราจะติดต่อกลับเพื่อทำความเข้าใจกรณีการใช้งานของคุณ อาจมีค่าใช้จ่ายส่วนเกินขึ้นอยู่กับข้อตกลงของคุณ

ในกรณีที่มีการใช้งานในทางที่ผิดที่สำคัญนอกเงื่อนไขของข้อตกลงของคุณ (หรือขีดจำกัดเริ่มต้น) เราขอสงวนสิทธิ์ในการระงับการเข้าถึง

ตัวอย่างการใช้ Reporting API คืออะไร

ด้านล่างนี้เป็นตัวอย่างบางส่วนที่ใช้วิธีการทั่วไป

Google SDK สําหรับ Python

ตัวอย่างนี้จะ:

  1. เชื่อมต่อกับ BigQuery
  2. เรียกใช้การสืบค้น
  3. สปูลผลลัพธ์เป็น csv
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")

มีวิธีการอื่น ๆ สำหรับการประมาณจำนวนไบต์ที่สแกน ฯลฯ ก่อนที่จะเรียกใช้แบบสอบถาม

โปรดดูเอกสารประกอบของ BigQuery

BigQuery API | Google Cloud

หากไม่ได้อยู่ใน GCP คุณจะอ้างอิงไฟล์ข้อมูลรับรอง JSON ผ่านตัวแปรสภาพแวดล้อมได้

API ทั่วไปสําหรับ 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()

จะเกิดอะไรขึ้น หากฉันอยู่ใน AWS ฯลฯ และไม่ใช่ Google Cloud ฉันยังสามารถตรวจสอบสิทธิ์และใช้ API ได้หรือไม่

ใช่ จะได้ผล เราจะให้ข้อมูลประจำตัวบัญชีบริการและคุณสามารถอ้างอิงได้ในใบสมัครของคุณ นี่คือตัวอย่าง

# 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}
# ...

ฉันจะกำหนดตำแหน่งของชุดข้อมูลแต่ละชุดที่แชร์กับฉันได้อย่างไร

การโทร API นี้จะบอกคุณว่าแต่ละชุดข้อมูลอยู่ในตำแหน่งใด

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

{
  "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"
    }
  ]
}

มีเคล็ดลับแนวทางปฏิบัติที่ดีที่สุดบ้างไหม?

โดยทั่วไป หากคุณตั้งใจที่จะเป็นผู้ใช้ข้อมูลจำนวนมาก โดยเฉพาะอย่างยิ่งหากคุณเข้าถึงข้อมูลที่ไม่รวบรวม (คำขอ/โฆษณาที่รับรู้/คำสั่งซื้อ/แอตทริบิวต์ที่เพิ่มขึ้น ฯลฯ) ทางที่ดีควรคัดลอก (จัด) ตารางลงในคลังข้อมูลของคุณเอง จากนั้นใช้แบบสอบถามสำหรับตรรกะทางธุรกิจที่คุณต้องการในสำเนาเหล่านั้น

ผู้ใช้ที่ใช้ข้อมูลน้อยกว่าอาจเลือกที่จะสืบค้นตารางโดยตรงเพื่อให้ได้ผลลัพธ์ที่ต้องการ

สิ่งสำคัญคือต้องรักษาให้ต่ำกว่าโควต้าที่อนุญาตเพื่อให้แน่ใจว่าการทำงานจะราบรื่น

โปรดทราบว่าแต่ละแบบสอบถามสามารถดาวน์โหลดได้สูงสุด 1 GB ไม่เช่นนั้นจะได้รับข้อความแสดงข้อผิดพลาด ในกรณีที่จำเป็นต้องดาวน์โหลดจำนวนมาก ให้เรียกใช้แบบสอบถามเล็กๆ น้อยๆ แทน (เช่น ชุดย่อยของข้อมูลต่อวันหรือซัพพลายเออร์ ฯลฯ)

จะทำอย่างไรถ้าฉันต้องการความช่วยเหลือในการสร้างคำสั่ง SQL ที่เหมาะสม

สร้างตั๋วโดยระบุการสืบค้นที่คุณพยายามแล้วและเราสามารถช่วยตรวจสอบได้ - เราจะติดต่อกลับพร้อมความคิดเห็นใด ๆ ที่เราอาจมี

มีคำแนะนำในการใช้แพ็คเกจ Pandas บ้างไหม

Pandas เป็นหนึ่งในเครื่องมือวิเคราะห์ที่ได้รับความนิยมมากที่สุด เพื่อให้ใช้งานได้ จำเป็นต้องติดตั้งการพึ่งพา pandas-gbq และ pydata-google-auth

ข้อมูลโค้ดด้านล่างเป็นตัวอย่างการทำงานของวิธีอ่านข้อมูลจากตาราง BigQuery

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
)

สามารถพบข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน Pandas ได้ที่นี่

มีคำแนะนำในการใช้แพ็คเกจ PySpark หรือไม่

สมมติว่าคุณมีสภาพแวดล้อม PySpark ที่ใช้งานได้ คุณต้องจัดเตรียมไฟล์ jar ที่ถูกต้องสำหรับตัวเชื่อมต่อ BigQuery ที่เหมาะสมกับเวอร์ชัน PySpark ของคุณ ตัวอย่างเช่น PySpark 3.2.* ต้องใช้ spark-3.2-bigquery-0.30.0.jar รายชื่อไฟล์ jar รวมถึงตัวอย่างโค้ดและพารามิเตอร์ที่ใช้งานได้จริงมีอยู่ที่นี่

ข้อมูลโค้ดด้านล่างนี้เป็นตัวอย่างวิธีเรียกใช้การสืบค้น

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()

สิ่งสำคัญ: พารามิเตอร์ viewEnabled จะต้องเป็นจริง

ข้อมูลในมุมมองจะปรากฏในตารางชั่วคราวก่อนที่ PySpark จะอ่าน ซึ่งจำเป็นต้องได้รับอนุญาตจาก bigquery.tables.create ดังนั้นคุณจึงต้องจัดเตรียม materializationProject และ MaterializionDataset โดยที่ผู้ใช้มีสิทธิ์ในการเขียน

ฉันได้รับข้อผิดพลาดในการเรียกใช้ตัวกรองในการสืบค้นอยู่หรือไม่

สำหรับตารางที่แบ่งพาร์ติชัน จำเป็นต้องมีตัวกรอง หากไม่มี ข้อความแสดงข้อผิดพลาดด้านล่างจะปรากฏ:

ไม่สามารถสืบค้นเหนือตาราง ‘dataset_id.table_id' ไม่มีตัวกรองเหนือคอลัมน์ 'partitioned_column' ที่สามารถใช้สำหรับการกำจัดพาร์ติชัน

หากต้องการแก้ไขข้อผิดพลาด เพียงเพิ่มตัวกรองที่เหมาะสม ซึ่งครอบคลุมช่วงเป้าหมาย เช่น

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

หากต้องการทราบว่าตารางถูกแบ่งพาร์ติชันกับคอลัมน์ใด (เช่น ingressed_at ในตัวอย่างด้านบน) ให้อ้างอิงคำอธิบายของตารางที่กำหนด

ฉันจะขอสิทธิ์เข้าถึงได้อย่างไร

กระบวนการ

จะต้องสร้างตั๋วและเกณฑ์คุณสมบัติที่ตกลงกันเป็นลายลักษณ์อักษร

เราจะทำงานร่วมกับผู้ที่อาจเป็นผู้สมัคร เพื่อระบุระดับการเข้าถึงและการตั้งค่าความปลอดภัยที่ต้องการ และกำหนดว่าโควต้าและค่าใช้จ่ายใดอาจมีผล

เกณฑ์คุณสมบัติ

ผู้สมัครจะต้องปฏิบัติตามเกณฑ์ต่อไปนี้จึงจะถือว่ามีสิทธิ์เข้าถึง Reporting API: -

ทั่วไป

  1. ผู้สมัครสามารถร้องขอการเข้าถึงข้อมูลสำหรับเนมสเปซ CitrusAd และทีมที่พวกเขาเป็นสมาชิกอยู่แล้วหรือมีสิทธิ์เข้าถึงโดยทั่วไปเท่านั้น ผู้สมัครจะต้องระบุว่าสถานการณ์ใดต่อไปนี้ที่พวกเขาสมัคร (และแสดงหลักฐานการเข้าถึงที่มีอยู่):
    1. ระดับสภาพแวดล้อม (การใช้งานแพลตฟอร์ม CitrusAd ทั้งหมดมีไว้สำหรับผู้สมัครโดยเฉพาะ)
    2. ระดับเนมสเปซ (ผู้สมัครมีสิทธิ์ดูทีมทั้งหมด ทั้งผู้ค้าปลีกและซัพพลายเออร์ ภายในเนมสเปซแต่ละรายการหรือรายการเนมสเปซ)
    3. รหัสทีมผู้ค้าปลีกเฉพาะหรือระดับกลุ่ม
    4. รหัสทีมซัพพลายเออร์เฉพาะหรือระดับกลุ่ม
      1. นอกจากนี้ ผู้รวมระบบสามารถเข้าถึง ID ของทีมซัพพลายเออร์ที่เฉพาะเจาะจงหรือแค็ตตาล็อกผลิตภัณฑ์ผู้ค้าปลีกแบบเต็มระดับกลุ่ม PLUS ตามที่ผู้ค้าปลีกตกลงตามแต่ละกรณี
  2. สามารถมอบข้อมูลข้อเท็จจริงด้านธุรกรรมให้กับผู้สมัครที่มีสิทธิ์ตามเกณฑ์ทั่วไป 1a หรือ 1b เท่านั้น
  3. ผู้สมัครที่ไม่มีคุณสมบัติเหมาะสมสำหรับข้อมูลข้อเท็จจริงทางธุรกรรมจะได้รับสิทธิ์ในการเข้าถึงข้อมูลข้อเท็จจริงที่รวบรวมไว้ล่วงหน้าเท่านั้น ข้อมูลจะถูกรวมเข้าเป็นสรุปรายวัน (โดย UTC+0 เป็นเขตเวลาของการรวมกลุ่ม)
  4. ผู้สมัครที่มีสิทธิ์ตามเกณฑ์ทั่วไป 1d เท่านั้น ไม่สามารถรับข้อมูลคำขอโฆษณาได้ (ซึ่งตรงข้ามกับข้อมูลโฆษณาที่รับรู้ซึ่งจะจัดให้) ข้อมูลผลิตภัณฑ์จะถูกจัดเตรียมไว้สำหรับผลิตภัณฑ์เฉพาะที่ได้รับการโฆษณาในโฆษณาที่รับรู้โดยซัพพลายเออร์ ยกเว้นผู้รวมระบบที่อาจได้รับแค็ตตาล็อกผลิตภัณฑ์สำหรับร้านค้าปลีก หากผู้ค้าปลีกตกลงให้เป็นรายกรณี
  5. ข้อมูลเชิงมิติรับประกันว่าจะรวมเวอร์ชันปัจจุบันของบันทึกที่กล่าวถึง คาดว่าการติดตามการเปลี่ยนแปลงในอดีตจะดำเนินการโดยผู้สมัครตามที่ต้องการ
  6. ข้อมูลได้รับการอัปเดตทุกวันและจะได้รับการอัปเดตไม่เกิน 12:00 UTC+0 สำหรับข้อมูลที่มีอายุไม่เกิน UTC+0 ของวันที่เสร็จสิ้นก่อนหน้านี้
  7. เป็นที่เข้าใจว่าการเข้าถึงเป็นแบบอ่านอย่างเดียวเท่านั้น ห้ามใช้ API เพื่อสร้างออบเจ็กต์ในคลังข้อมูลของเราเพื่อวัตถุประสงค์ใดก็ตาม
  8. การผสมผสานกับแหล่งข้อมูลอื่น ๆ จะต้องทำในสภาพแวดล้อมของผู้สมัครเอง
  9. ผู้สมัครต้องมี SDK (หรือเทียบเท่า) เพื่อเข้าถึง Google BigQuery API
  10. ผู้สมัครมีความรู้เกี่ยวกับ SQL เป็นอย่างดี
  11. ผู้สมัครจะคุ้นเคยกับแนวคิด CitrusAD และหากไม่เป็นเช่นนั้น จะจัดเตรียมการฝึกอบรมผลิตภัณฑ์มาตรฐานที่จัดให้ผ่านผู้จัดการฝ่ายสนับสนุนลูกค้าหรือผู้จัดการบัญชีทางเทคนิค
  12. จากเอกสารที่ให้มา ผู้สมัครจะต้องพัฒนาโซลูชันของตนเอง หากพบปัญหาที่ SQL ไม่ทำงานตามที่คาดไว้ตามเอกสาร จะต้องสร้างตั๋วผ่านช่องทางการสนับสนุนปกติ ต้องระบุข้อมูลต่อไปนี้
    1. บัญชีที่มีการทำการเชื่อมต่อ
    2. SQL ที่แน่นอนที่ถูกเรียก
    3. คำอธิบายโดยละเอียดเกี่ยวกับข้อความแสดงข้อผิดพลาดที่เกิดขึ้น
  13. หากผู้สมัครเป็นผู้ค้าปลีก จำเป็นต้องแสดงผล/การคลิก/คำสั่งซื้อให้กับแพลตฟอร์ม CitrusAd เพื่อให้สามารถสร้างภาพรวมของวงจรชีวิตโฆษณาได้อย่างสมบูรณ์
  14. CitrusAd ขอสงวนสิทธิ์ในการเปลี่ยนแปลงสคีมาเป็นครั้งคราว โดยทั่วไปการเปลี่ยนแปลงเหล่านี้เกี่ยวข้องกับการเพิ่มคอลัมน์ใหม่ลงในตารางและมุมมองที่มีอยู่ และจะเข้ากันได้แบบย้อนหลัง ผู้สมัครต้องจัดโครงสร้าง SQL เพื่อตั้งชื่อคอลัมน์แทนที่จะใช้ไวด์การ์ด ฯลฯ ในกรณีที่การเปลี่ยนแปลงเกี่ยวข้องกับการเลิกใช้คอลัมน์หรือตาราง CitrusAd จะแจ้งให้ทราบล่วงหน้าอย่างน้อย 12 สัปดาห์เกี่ยวกับการเปลี่ยนแปลงก่อนที่จะดําเนินการ การแจ้งเตือนจะเกิดขึ้นผ่านการสื่อสารเผยแพร่มาตรฐานไปยังผู้ใช้แพลตฟอร์ม

ผู้สมัครไม่จำเป็นต้องเป็นผู้ใช้ Google Cloud Platform (GCP) ที่มีอยู่ อย่างไรก็ตาม มีเกณฑ์เพิ่มเติมขึ้นอยู่กับว่าผู้สมัครเป็นผู้ใช้ GCP หรือผู้ใช้ที่ไม่ได้อยู่ใน GCP

ผู้สมัครที่ไม่ได้อยู่ใน GCP

เว้นแต่จะตกลงเป็นอย่างอื่น CitrusAd จะมอบข้อมูลประจำตัวสำหรับบัญชีบริการเดียวภายในสภาพแวดล้อมของเราแก่ผู้สมัคร

เว้นแต่จะตกลงเป็นอย่างอื่น จะใช้เงื่อนไขตามค่าเริ่มต้นต่อไปนี้:

  1. การเรียก API สูงสุด 100 ครั้งต่อวัน
  2. การสแกนข้อมูลไม่เกิน 10TB ต่อเดือน (หมายเหตุ API มีวิธีประมาณขนาดการสแกนการสืบค้น ก่อนดําเนินการ โปรดดูเอกสารของ Google การสืบค้น Dry Run | BigQuery | Google Cloud)
  3. หากเกินเกณฑ์ผู้สมัครที่ไม่ใช่ GCP 1 และ/หรือ 2 CitrusAd ขอสงวนสิทธิ์ในการระงับการเข้าถึงตามดุลยพินิจของเราแต่เพียงผู้เดียว
  4. ไม่มีการเรียก API ใดที่สามารถดาวน์โหลดข้อมูลได้มากกว่า 1GB ในแต่ละครั้ง

ผู้สมัคร GCP

เว้นแต่จะตกลงกันเป็นอย่างอื่น ผู้สมัครจะให้รายละเอียด CitrusAD ของบัญชี GCP ไม่เกิน 5 บัญชี เพื่อให้เราสามารถกำหนดสิทธิ์การเข้าถึงที่จำเป็น

โปรดทราบว่าบัญชีจะต้องมีบทบาทผู้ใช้งาน BigQuery (บทบาท/bigquery.jobUser) ที่ได้รับมอบหมาย

มีข้อจำกัดดังต่อไปนี้:

  1. การเรียก API สูงสุด 100 ครั้งต่อวัน
  2. หากเกินเกณฑ์ 1 ของผู้สมัครของ GCP CitrusAd ขอสงวนสิทธิ์ในการระงับการเข้าถึงตามดุลยพินิจของเราเพียงอย่างเดียว
  3. ไม่มีการเรียก API ใดที่สามารถดาวน์โหลดข้อมูลได้มากกว่า 1GB

คําศัพท์

สภาพแวดล้อม

ชื่อสภาพแวดล้อมทางกายภาพที่ปรับใช้แพลตฟอร์ม CitrusAd แต่ละโฮสต์ หนึ่งเนมสเปซหรือมากกว่านั้น

เนมสเปซ

การจัดกลุ่มเอนทิตีเชิงตรรกะทั้งหมดที่เป็นส่วนหนึ่งของการนำโซลูชัน CitrusAd ไปใช้ ซึ่งรวมถึงทีมและวัตถุทั้งหมดที่ทีมเป็นเจ้าของ โดยทั่วไป เนมสเปซอาจประกอบด้วยผู้ค้าปลีก (ทีม) และซัพพลายเออร์หลายราย (ทีม) ร่วมกับผู้ใช้สําหรับแต่ละทีม และการกําหนดค่าอื่นๆ ที่เกี่ยวข้อง (ผู้ค้าปลีกเป็นเจ้าของแคตตาล็อก ซัพพลายเออร์กําหนดค่าแคมเปญ ฯลฯ) ทีม (และสิ่งที่พวกเขาเป็นเจ้าของ) เป็นของเนมสเปซเดียวโดยเฉพาะ (ไม่มีทีมใดสามารถอยู่ในหลายเนมสเปซ)

ผู้ใช้

ตัวระบุผู้ใช้ที่ไม่ซ้ำกันในระบบ CitrusAd อีเมลเดียวอาจมีรหัสผู้ใช้ได้หลายรหัส รหัสผู้ใช้แต่ละรายการไม่ซ้ำกันสำหรับแต่ละเนมสเปซ ผู้ใช้แต่ละคนจะมีชื่อ นามสกุล อีเมล และรหัสประจำตัว ผู้ใช้สามารถเป็นสมาชิกและเข้าถึงหลายทีมในแพลตฟอร์ม CitrusAd

ทีม

ทีมงานภายในระบบ CitrusAd สามารถเป็นซัพพลายเออร์ (ผู้โฆษณา) หรือผู้ค้าปลีก โดยทั่วไปแล้วทีมซัพพลายเออร์จะสร้างแคมเปญ ผู้ค้าปลีกตรวจสอบแคมเปญและทำหน้าที่ดูแลระบบ ผู้ใช้ในระบบ CitrusAd สามารถเป็นสมาชิกของหลายทีมหรือทีมเดียวเท่านั้น โดยทั่วไปแล้ว ทีมจะมีผู้ใช้ แคมเปญ และกระเป๋าเงินที่เกี่ยวข้อง

ซัพพลายเออร์

ทีมซัพพลายเออร์ภายในระบบ CitrusAd โดยทั่วไปแล้ว ซัพพลายเออร์อาจเป็นบริษัทแม่ของแบรนด์หรือชุดทีมต่อแบรนด์แต่ละแบรนด์ ซัพพลายเออร์มักจะดูแลแคมเปญ จัดการยอดคงเหลือในกระเป๋าเงิน เป็นต้น

ผู้ค้าปลีก

ทีมผู้ค้าปลีกภายในระบบ CitrusAd เนมสเปซส่วนใหญ่จะมีทีมผู้ค้าปลีกเพียงทีมเดียว ผู้ค้าปลีกมักจะดูแลแคตตาล็อกผลิตภัณฑ์ ตรวจสอบแคมเปญ ฯลฯ

แคมเปญ

แคมเปญเดียวที่ไม่ซ้ำกันซึ่งกำหนดค่าด้วยตำแหน่งและกลยุทธ์การกำหนดเป้าหมายสำหรับการเลือกผลิตภัณฑ์เฉพาะ ตัวอย่างเช่น แคมเปญในระบบ CitrusAd อาจจะส่งเสริมผลิตภัณฑ์ A และ B ที่กำหนดเป้าหมายคำค้นหา 'ช็อคโกแลต' และ 'ช็อคโกแลต' ที่มีการเสนอราคาสูงสุดที่ $0.60 โดยทั่วไปแล้วทีมเดียวจะมีหลายแคมเปญ

แคตตาล็อก

แคตตาล็อกผลิตภัณฑ์ของผู้ค้าปลีกที่ไม่ซ้ำกันในระบบ CitrusAd เป็นเรื่องปกติที่ผู้ค้าปลีกจะซิงค์แค็ตตาล็อกผลิตภัณฑ์หนึ่งรายการกับ CitrusAd ในเนมสเปซเดียว แคตตาล็อกจะมีรายชื่อผลิตภัณฑ์ทั้งหมดในแคตตาล็อกของผู้ค้าปลีก ชื่อ แบรนด์ ประเภทและคุณลักษณะอื่นๆ ที่เกี่ยวข้องอื่นที่จะเข้าไปในระบบ CitrusAd

ผลิตภัณฑ์

ผลิตภัณฑ์ที่ไม่ซ้ำกันเดียวในระบบ CitrusAd ผลิตภัณฑ์จะมีรหัสผลิตภัณฑ์เฉพาะที่ซิงค์ในแค็ตตาล็อกผลิตภัณฑ์ ผลิตภัณฑ์อาจมีคุณสมบัติ เช่น หมวดหมู่ อนุกรมวิธาน แบรนด์ เป็นต้น

กระเป๋าเงิน

กระเป๋าเงินในระบบ CitrusAd เก็บเงินทุนของผู้โฆษณาเพื่อวัตถุประสงค์ในการชำระเงิน (เช่น การชำระเงินสำหรับโฆษณาที่รับรู้) กระเป๋าเงินแต่ละใบมีรหัสสกุลเงินเดียวและสามารถใช้จ่ายกับแค็ตตาล็อกของรหัสสกุลเงินเดียวกันเท่านั้น กระเป๋าเงินเป็นของทีม ทีมสามารถมีกระเป๋าเงินจำนวนเท่าใดก็ได้ กระเป๋าเงินสามารถเก็บถาวรได้ การเก็บถาวรกระเป๋าเงินจะแสดง/ซ่อนไว้ในแพลตฟอร์มเท่านั้น กระเป๋าเงินที่เก็บถาวรยังสามารถใช้เครดิตได้

บัญชีแยกประเภท

บัญชีแยกประเภทของเหตุการณ์ที่ส่งผลให้เกิดธุรกรรมในระบบ CitrusAd นี่คือเหตุการณ์โฆษณาที่พบบ่อยที่สุด เช่น การแสดงผลหรือการคลิกสำหรับผลิตภัณฑ์ที่สนับสนุนหรือโฆษณาแบนเนอร์ (ที่ส่งผลให้มีการหักบัญชี) นอกจากนี้ยังสามารถเติมเงินและปรับยอดคงเหลือโดยซัพพลายเออร์ (เครดิต) แต่ละเหตุการณ์จะมี 'เหตุผล' เช่น ผลิตภัณฑ์ที่ได้รับการสนับสนุน โฆษณาแบนเนอร์ การเติมเงิน

ขอร้อง

คำขอที่ส่งไปยังระบบ CitrusAd สำหรับโฆษณา ในคำขอ ผู้ค้าปลีกระบุตำแหน่งและบริบท เช่น sessionId ของลูกค้าหรือตัวกรองที่เกี่ยวข้องกับคำขอ ทั้งนี้ขึ้นอยู่กับคำร้อง CitrusAd จะส่งกลับโฆษณาของ AdType ที่เกี่ยวข้อง (เช่น หมวดหมู่หรือ Searchterm) ไปยังร้านค้าปลีกที่จะแสดงผลให้กับลูกค้า

โฆษณา (ที่เกิดขึ้นจริง)

โฆษณาคือเหตุการณ์โฆษณาเดียวที่ส่งกลับไปยังผู้ค้าปลีกเพื่อแสดงให้ลูกค้าเห็น โฆษณาจะกลายเป็นโฆษณาที่รับรู้ เมื่อผู้ค้าปลีกส่งกลับการยืนยันว่าโฆษณาได้ปรากฏขึ้นเป็นอย่างน้อย (การยืนยันอย่างชัดเจนว่าโฆษณาถูกใช้จริง กล่าวคือ ถูกสร้างขึ้น) ในระบบ CitrusAd ทุกโฆษณาที่แสดงผลจะมีรหัส realisedad ที่ไม่ซ้ำกัน ซึ่งเป็นข้อมูลอ้างอิงสำหรับเหตุการณ์ที่ไม่ซ้ำกันเดียว

หมวดหมู่

หมวดหมู่คือหน้าบนเว็บไซต์ของผู้ค้าปลีก ซึ่งเป็นส่วนหนึ่งของการจัดหมวดหมู่ของเว็บไซต์ เช่น 'เบเกอรี่' หรือ 'ผลิตภัณฑ์จากนม' โดยทั่วไปแล้ว ผู้ค้าปลีกจะขอโฆษณาในหน้าหมวดหมู่และระบุแอตทริบิวต์ที่เกี่ยวข้องนี้ในคำขอ CitrusAd หาก CitrusAd มีแคมเปญที่ใช้งานอยู่และถูกต้องสำหรับหมวดหมู่นี้ โฆษณาจะถูกส่งกลับ

คำค้นหา

คำค้นหาที่ลูกค้าป้อนลงในเว็บไซต์ของผู้ค้าปลีก ข้อความค้นหานี้จะถูกส่งไปยัง CitrusAd เพื่อขอโฆษณาที่เกี่ยวข้อง หาก CitrusAd มีแคมเปญที่ใช้งานอยู่และถูกต้องสำหรับข้อความค้นหา โฆษณาจะถูกส่งกลับ

ตำสั่งซื้อ

คำสั่งซื้อที่ไม่ซ้ำกันในระบบของผู้ค้าปลีกที่ซิงค์กับ CitrusAd คำสั่งซื้อเดียวสามารถมีรายการสั่งซื้อได้หลายรายการภายในนั้น (เหมือนกับรถเข็นของลูกค้าที่สามารถบรรจุสินค้าได้หลายรายการ) เมื่อคำสั่งซื้อของลูกค้าเสร็จสมบูรณ์ คำสั่งซื้อเหล่านี้จะถูกส่งไปยัง CitrusAd เพื่อขับเคลื่อนการระบุที่มาของ CitrusAd ผลตอบแทนจากค่าโฆษณา (ROAS) และ KPI ที่สำคัญอื่นๆ สามารถมอบให้กับผู้ค้าปลีกและผู้ลงโฆษณาได้

การระบุที่มา

การแสดงที่มาคือกระบวนการที่ดำเนินการในระบบ CitrusAd ที่กำหนดโฆษณาที่แสดงให้กับลูกค้าตามคำสั่งซื้อที่ส่งมา เส้นทางของลูกค้าโดยทั่วไปคือการที่พวกเขาเห็นโฆษณา (การแสดงผล) คลิกที่โฆษณา (คลิก) เพิ่มลงในรถเข็น และซื้อสินค้านั้น (การแปลง) คำสั่งซื้อนี้ 'ระบุแหล่งที่มา' ของโฆษณาเฉพาะที่ลูกค้าคลิก สำหรับคำสั่งซื้อที่มีแหล่งที่มาในระบบ CitrusAd โฆษณาจะต้องมีการโต้ตอบกับ (ทั้งเห็นหรือคลิกตามการผสานรวม) และลูกค้าซื้อรายการที่เกี่ยวข้องกับโฆษณาแล้ว โดยทั่วไปแล้ว CitrusAd จะใช้ 'sessionId' เพื่อระบุแหล่งที่มาของคําสั่งซื้อไปยังโฆษณา โดยที่ผู้ค้าปลีกระบุ 'sessionId' ในจุดสัมผัสที่เกี่ยวข้องทั้งหมดของเส้นทางโฆษณา นี่เป็นวิธีที่ CitrusAd สามารถระบุได้ว่าโฆษณาหนึ่งรายการที่แสดงต่อลูกค้าหนึ่งราย ทำให้เกิดคำสั่งซื้อหนึ่งรายการนั้นๆ

วันที่

ข้อมูลทั้งหมดจะถูกส่งไปยังเขตเวลา UTC+0 หากรวมเข้าด้วยกัน

ขีดจำกัด

การใช้งานแพลตฟอร์ม CitrusAd มักจะเกี่ยวข้องกับผู้ค้าปลีกที่ขอโฆษณามากกว่าที่จะได้รับการแสดงผลจริง (ที่รับรู้) จากมุมมองของการวิเคราะห์ การใช้ดังกล่าวอาจให้การแสดงผลที่ไม่ถูกต้องเกี่ยวกับลักษณะการทำงานของเมตริกบางอย่าง
ตัวอย่างเช่น หากมีการร้องขอโฆษณา 20 รายการ (AdType=ผลิตภัณฑ์) และแพลตฟอร์มแสดงโฆษณา 2 รายการในการตอบกลับ นั่นหมายถึง "อัตราการเติม" ที่ 10% ของคําขอ (2 จาก 20) อย่างไรก็ตาม หากเป็นที่เข้าใจกันว่าในทางปฏิบัติแล้ว โฆษณาเพียง 4 รายการเท่านั้นน่าจะถูกนำมาใช้ (รับรู้) ก็ควรตีความว่าโฆษณาถูกเติมเต็ม 50% (2 ใน 4)
ดังนั้นแนวคิดของการกำหนดขอบเขตในการรายงาน
การกำหนดขีดจำกัดสำหรับผู้ค้าปลีกแต่ละราย โดยมีขีดจำกัดหนึ่งสำหรับโฆษณาผลิตภัณฑ์และอีกอันหนึ่งสำหรับโฆษณาแบนเนอร์ (เนื่องจากคำขอโฆษณาผลิตภัณฑ์โดยทั่วไปจะขอและใช้โฆษณามากกว่าแบนเนอร์มาก)
กลับไปที่ตัวอย่าง หากขีดจำกัดผลิตภัณฑ์ = 4 สําหรับผู้ค้าปลีก เมตริกคําขอจะรายงานดังนี้:-
NumAdRequests = 1
NumAdsRequested = 20
CappedNumAdsRequested = 4
NumAdsServed = 2
CappedNumAdsServed = 2
หมายเหตุ ในกรณีที่มีการแสดงโฆษณา 5 รายการ (เช่น โฆษณาที่แสดงเกินขีดจํากัด) เมตริก 2 รายการสุดท้ายจะรายงานเป็น:-
NumAdsServed = 5
CappedNumAdsServed = 4 (ตัดแต่งกลับไปที่ขีดจำกัด)
ไม่บังคับให้มีขีดจำกัด ในกรณีที่ไม่ได้ระบุ ผลลัพธ์ที่จำกัดและไม่ได้จำกัดจะเหมือนกัน

การระบุแหล่งที่มาที่ได้รับการปรับปรุง

แพลตฟอร์ม CitrusAd ดำเนินการแสดงที่มาตามที่ระบุไว้ในส่วนการระบุที่มา (ดูด้านบน)
ระบบย่อยการรายงานยังสามารถตรวจจับและตั้งค่าสถานะสถานการณ์การระบุแหล่งที่มาอื่นๆ โดยขึ้นอยู่กับผู้ค้าปลีก (การระบุแหล่งที่มาที่ปรับปรุงแล้ว)

สถานการณ์คือ:-

  • การดูการแสดงผลผ่านการแสดงที่มา
    • คำสั่งซื้อมีที่มาจากโฆษณาที่มีการดูผลิตภัณฑ์เดียวกันในรหัสเซสชันเดียวกัน (กล่าวคือ การแสดงผล ไม่ใช่การคลิก)
  • การระบุที่มาของ Halo Click
    • คำสั่งซื้อเกิดจากโฆษณาที่ได้รับการคลิกสำหรับผลิตภัณฑ์ที่อยู่ในระดับรัศมีเดียวกันในรหัสเซสชันเดียวกัน ระดับรัศมีที่พบบ่อยที่สุดคือแบรนด์ (กล่าวคือ ผลิตภัณฑ์ของโฆษณาและผลิตภัณฑ์ของคำสั่งซื้อแตกต่างกัน แต่เป็นของแบรนด์เดียวกัน) ประเภทรัศมีอื่น ๆ เป็นไปได้ขึ้นอยู่กับการใช้งาน ตัวอย่างเช่น รัศมีอาจมีความเฉพาะเจาะจงมากขึ้นและกำหนดให้โฆษณาและคำสั่งซื้อสำหรับผลิตภัณฑ์ที่มีหมวดหมู่ร่วมกันนอกเหนือจากแบรนด์ทั่วไป การจัดอนุกรมวิธานของผู้ค้าปลีกที่กำหนดต่อผลิตภัณฑ์ในแค็ตตาล็อกใช้เพื่อกำหนดรายละเอียดเพิ่มเติมใน Halo

เวอร์ชัน: f34ea10