Skip to content

Latest commit

 

History

History
123 lines (108 loc) · 3.43 KB

File metadata and controls

123 lines (108 loc) · 3.43 KB
# Synchronous Example — pre-resolved identifier, no UID2 config needed
from ttd_data import DataClient
from ttd_data.models import AdvertiserData, AdvertiserDataItem

client = DataClient(
    ttd_auth="<TTD_AUTH_TOKEN>",
    server_url="<TTD_DATA_SERVER_URL>",
)
response = client.advertiser.ingest_advertiser_data(
    advertiser_id="<ADVERTISER_ID>",
    items=[
        AdvertiserDataItem(
            data=[AdvertiserData(name="loyalty_members")],
            tdid="<TDID>",
        )
    ],
)
print(response.advertiser_data_server_response)

# Synchronous Example — with UID2 identity mapping (raw email resolved before ingest)
from ttd_data import DataClient, IdentityScope, UID2Config, UID2ServiceError
from ttd_data.models import AdvertiserData, AdvertiserDataItem

uid2_config = UID2Config(
    base_url="<UID2_BASE_URL>",
    api_key="<UID2_API_KEY>",
    client_secret="<UID2_CLIENT_SECRET>",
    identity_scope=IdentityScope.UID2,
)

try:
    client = DataClient(
        ttd_auth="<TTD_AUTH_TOKEN>",
        uid2_config=uid2_config,
        server_url="<TTD_DATA_SERVER_URL>",
    )
    response = client.advertiser.ingest_advertiser_data(
        advertiser_id="<ADVERTISER_ID>",
        items=[
            AdvertiserDataItem(
                data=[AdvertiserData(name="loyalty_members")],
                email="user@example.com",
            )
        ],
    )
    print(response.advertiser_data_server_response)
except UID2ServiceError as e:
    print(f"UID2 service error: {e}")

The same SDK client can also be used to make asynchronous requests by importing asyncio.

# Asynchronous Example — pre-resolved identifier, no UID2 config needed
import asyncio
from ttd_data import DataClient
from ttd_data.models import AdvertiserData, AdvertiserDataItem

async def main():
    client = DataClient(
        ttd_auth="<TTD_AUTH_TOKEN>",
        server_url="<TTD_DATA_SERVER_URL>",
    )
    response = await client.advertiser.ingest_advertiser_data_async(
        advertiser_id="<ADVERTISER_ID>",
        items=[
            AdvertiserDataItem(
                data=[AdvertiserData(name="loyalty_members")],
                tdid="<TDID>",
            )
        ],
    )
    print(response.advertiser_data_server_response)

asyncio.run(main())

# Asynchronous Example — with UID2 identity mapping (raw email resolved before ingest)
import asyncio
from ttd_data import DataClient, IdentityScope, UID2Config, UID2ServiceError
from ttd_data.models import AdvertiserData, AdvertiserDataItem

uid2_config = UID2Config(
    base_url="<UID2_BASE_URL>",
    api_key="<UID2_API_KEY>",
    client_secret="<UID2_CLIENT_SECRET>",
    identity_scope=IdentityScope.UID2,
)

async def main():
    try:
        client = DataClient(
            ttd_auth="<TTD_AUTH_TOKEN>",
            uid2_config=uid2_config,
            server_url="<TTD_DATA_SERVER_URL>",
        )
        response = await client.advertiser.ingest_advertiser_data_async(
            advertiser_id="<ADVERTISER_ID>",
            items=[
                AdvertiserDataItem(
                    data=[AdvertiserData(name="loyalty_members")],
                    email="user@example.com",
                )
            ],
        )
        print(response.advertiser_data_server_response)
    except UID2ServiceError as e:
        print(f"UID2 service error: {e}")

asyncio.run(main())