Skip to content

Latest commit

 

History

History
113 lines (98 loc) · 3.56 KB

File metadata and controls

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

with DataClient(server_url="<TTD_DATA_SERVER_URL>") as client:
    response = client.advertiser.ingest_advertiser_data(
        ttd_auth="<TTD_AUTH_TOKEN>",
        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:
    with DataClient(uid2_config=uid2_config, server_url="<TTD_DATA_SERVER_URL>") as client:
        response = client.advertiser.ingest_advertiser_data(
            ttd_auth="<TTD_AUTH_TOKEN>",
            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():
    async with DataClient(server_url="<TTD_DATA_SERVER_URL>") as client:
        response = await client.advertiser.ingest_advertiser_data_async(
            ttd_auth="<TTD_AUTH_TOKEN>",
            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:
        async with DataClient(uid2_config=uid2_config, server_url="<TTD_DATA_SERVER_URL>") as client:
            response = await client.advertiser.ingest_advertiser_data_async(
                ttd_auth="<TTD_AUTH_TOKEN>",
                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())