مهام الزيارات الشائعة

توضّح هذه الصفحة كيفية تنفيذ بعض مهام عرض الإعلانات الأكثر شيوعًا باستخدام واجهة برمجة التطبيقات DCM/DFA Reporting and Trafficking API.

نصائح عامة حول الترميز

  • السمات والمَعلمات المطلوبة والاختيارية: يمكنك الاطّلاع على المستندات المرجعية لمعرفة ما إذا كانت السمة أو المَعلمة مطلوبة لإجراء طلب من خلال واجهة برمجة التطبيقات.
  • عمليات البحث عن الأسماء باستخدام أحرف البدل: يمكنك استخدام حرف البدل النجمة (*) عند البحث عن أسماء الكائنات. تتطابق علامة النجمة مع صفر أو أكثر من أي حرف. تتيح واجهة برمجة التطبيقات أيضًا البحث عن سلسلة فرعية ضمنية، لذا سيؤدي البحث عن "abc" إلى البحث ضمنيًا عن "*abc*".
  • التعديل مقابل التصحيح: لتعديل عنصر حالي، لديك خياران:
    1. التعديل: عند تعديل عنصر، سيتم استبدال جميع الحقول عند الإدراج. من المهم تحميل العنصر الذي تريد تعديله وإجراء أي تغييرات على هذا العنصر. بخلاف ذلك، سيتم إلغاء ضبط أي حقول غير متوفّرة في طلب التعديل.
    2. التعديل: عند التعديل، سيتم استبدال الحقول المحدّدة فقط عند الإدراج. في هذه الحالة، يمكنك إنشاء عنصر جديد وتعيين رقم التعريف نفسه للعنصر الذي تريد تعديله، ثم ضبط الحقول التي تريد تعديلها، وتنفيذ طلب التصحيح.
  • الأحجام: يتم تمثيل الأبعاد المادية باستخدام العنصر Size الذي تحدّده خدمة الأحجام. يوفّر الحساب مجموعة من الأحجام العادية، ويمكنك إضافة أحجامك المخصّصة إلى هذه القائمة.
  • التواريخ والأوقات: يمكنك حفظ التواريخ والأوقات بتنسيق RFC 3339 باستخدام المناطق الزمنية المحلية، وتكون جميع القيم التي تعرضها واجهة برمجة التطبيقات بالتوقيت العالمي المنسّق. يختلف ذلك عن الموقع الإلكتروني الذي يتم فيه عرض التواريخ والأوقات في المنطقة الزمنية التي تم ضبطها (توقيت أمريكا/نيويورك تلقائيًا).

إنشاء مُعلِن

#C

  1. أنشئ عنصر Advertiser واضبط خصائص name وstatus المطلوبة.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.Name = advertiserName;
    advertiser.Status = "APPROVED";
  2. استخدِم الأمر Call advertisers.insert() لحفظ المُعلِن.
    // Create the advertiser.
    Advertiser result = service.Advertisers.Insert(advertiser, profileId).Execute();

جافا

  1. أنشئ عنصر Advertiser واضبط سمات name وstatus المطلوبة.
    // Create the advertiser structure.
    Advertiser advertiser = new Advertiser();
    advertiser.setName(advertiserName);
    advertiser.setStatus("APPROVED");
  2. استخدِم الأمر Call advertisers.insert() لحفظ المُعلِن.
    // Create the advertiser.
    Advertiser result = reporting.advertisers().insert(profileId, advertiser).execute();

PHP

  1. أنشئ عنصر Advertiser واضبط سمات name وstatus المطلوبة.
    $advertiser = new Google_Service_Dfareporting_Advertiser();
    $advertiser->setName($values['advertiser_name']);
    $advertiser->setStatus('APPROVED');
  2. استخدِم الأمر Call advertisers.insert() لحفظ المُعلِن.
    $result = $this->service->advertisers->insert(
        $values['user_profile_id'],
        $advertiser
    );

Python

  1. أنشئ عنصر Advertiser واضبط سمات name وstatus المطلوبة.
    # Construct and save advertiser.
    advertiser = {
        'name': 'Test Advertiser',
        'status': 'APPROVED'
    }
  2. استخدِم الأمر Call advertisers.insert() لحفظ المُعلِن.
    request = service.advertisers().insert(
        profileId=profile_id, body=advertiser)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. أنشئ عنصر Advertiser واضبط سمات name وstatus المطلوبة.
    # Create a new advertiser resource to insert.
    advertiser = DfareportingUtils::API_NAMESPACE::Advertiser.new(
      name: format('Example Advertiser #%s', SecureRandom.hex(3)),
      status: 'APPROVED'
    )
  2. استخدِم الأمر Call advertisers.insert() لحفظ المُعلِن.
    # Insert the advertiser.
    result = service.insert_advertiser(profile_id, advertiser)

إنشاء حملة

#C

  1. أنشئ عنصر Campaign واضبط خصائصه المطلوبة:

    • advertiserId: المعلِن الذي سيتم ربط هذه الحملة به.
    • name: يجب أن يكون هذا المعرّف فريدًا في جميع حملات هذا المعلِن.
    • defaultLandingPageId: صفحة مقصودة سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، في حال لم يتم تعيين صفحة مقصودة لهذا الإعلان. يمكنك البحث عن صفحات مقصودة حالية من خلال استدعاء advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال استدعاء advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين إلى حدّ اليوم. لمزيد من التفاصيل، يمكنك الاطّلاع على النقطة المتعلقة بالتواريخ والأوقات في معلومات عامة حول الترميز. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة تنفيذ عقد لعدد محدّد من الإجراءات، إذا لم يتم تنفيذه بحلول تاريخ انتهاء الحملة المحدّد.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.Name = campaignName;
    campaign.AdvertiserId = advertiserId;
    campaign.Archived = false;
    campaign.DefaultLandingPageId = defaultLandingPage.Id;
    
    // Set the campaign start date. This example uses today's date.
    campaign.StartDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now);
    
    // Set the campaign end date. This example uses one month from today's date.
    campaign.EndDate =
        DfaReportingDateConverterUtil.convertToDateString(DateTime.Now.AddMonths(1));
  2. اتّصِل على campaigns.insert() لحفظ الحملة.

    // Insert the campaign.
    Campaign result = service.Campaigns.Insert(campaign, profileId).Execute();

جافا

  1. أنشئ عنصر Campaign واضبط خصائصه المطلوبة:

    • advertiserId: المعلِن الذي سيتم ربط هذه الحملة به.
    • name: يجب أن يكون هذا المعرّف فريدًا في جميع حملات هذا المعلِن.
    • defaultLandingPageId: صفحة مقصودة سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، في حال لم يتم تعيين صفحة مقصودة لهذا الإعلان. يمكنك البحث عن صفحات مقصودة حالية من خلال استدعاء advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال استدعاء advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين إلى حدّ اليوم. لمزيد من التفاصيل، يمكنك الاطّلاع على النقطة المتعلقة بالتواريخ والأوقات في معلومات عامة حول الترميز. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة تنفيذ عقد لعدد محدّد من الإجراءات، إذا لم يتم تنفيذه بحلول تاريخ انتهاء الحملة المحدّد.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the campaign structure.
    Campaign campaign = new Campaign();
    campaign.setName(campaignName);
    campaign.setAdvertiserId(advertiserId);
    campaign.setArchived(false);
    campaign.setDefaultLandingPageId(defaultLandingPage.getId());
    
    // Set the campaign start date. This example uses today's date.
    Calendar today = Calendar.getInstance();
    DateTime startDate = new DateTime(true, today.getTimeInMillis(), null);
    campaign.setStartDate(startDate);
    
    // Set the campaign end date. This example uses one month from today's date.
    Calendar nextMonth = Calendar.getInstance();
    nextMonth.add(Calendar.MONTH, 1);
    DateTime endDate = new DateTime(true, nextMonth.getTimeInMillis(), null);
    campaign.setEndDate(endDate);
  2. اتّصِل على campaigns.insert() لحفظ الحملة.

    // Insert the campaign.
    Campaign result = reporting.campaigns().insert(profileId, campaign).execute();

PHP

  1. أنشئ عنصر Campaign واضبط خصائصه المطلوبة:

    • advertiserId: المعلِن الذي سيتم ربط هذه الحملة به.
    • name: يجب أن يكون هذا المعرّف فريدًا في جميع حملات هذا المعلِن.
    • defaultLandingPageId: صفحة مقصودة سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، في حال لم يتم تعيين صفحة مقصودة لهذا الإعلان. يمكنك البحث عن صفحات مقصودة حالية من خلال استدعاء advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال استدعاء advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين إلى حدّ اليوم. لمزيد من التفاصيل، يمكنك الاطّلاع على النقطة المتعلقة بالتواريخ والأوقات في معلومات عامة حول الترميز. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة تنفيذ عقد لعدد محدّد من الإجراءات، إذا لم يتم تنفيذه بحلول تاريخ انتهاء الحملة المحدّد.
    $startDate = new DateTime('today');
    $endDate = new DateTime('+1 month');
    
    $campaign = new Google_Service_Dfareporting_Campaign();
    $campaign->setAdvertiserId($values['advertiser_id']);
    $campaign->setDefaultLandingPageId($values['default_landing_page_id']);
    $campaign->setName($values['campaign_name']);
    $campaign->setStartDate($startDate->format('Y-m-d'));
    $campaign->setEndDate($endDate->format('Y-m-d'));
  2. اتّصِل على campaigns.insert() لحفظ الحملة.

    $result = $this->service->campaigns->insert(
        $values['user_profile_id'],
        $campaign
    );

Python

  1. أنشئ عنصر Campaign واضبط خصائصه المطلوبة:

    • advertiserId: المعلِن الذي سيتم ربط هذه الحملة به.
    • name: يجب أن يكون هذا المعرّف فريدًا في جميع حملات هذا المعلِن.
    • defaultLandingPageId: صفحة مقصودة سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، في حال لم يتم تعيين صفحة مقصودة لهذا الإعلان. يمكنك البحث عن صفحات مقصودة حالية من خلال استدعاء advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال استدعاء advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين إلى حدّ اليوم. لمزيد من التفاصيل، يمكنك الاطّلاع على النقطة المتعلقة بالتواريخ والأوقات في معلومات عامة حول الترميز. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة تنفيذ عقد لعدد محدّد من الإجراءات، إذا لم يتم تنفيذه بحلول تاريخ انتهاء الحملة المحدّد.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Construct and save campaign.
    campaign = {
        'name': 'Test Campaign #%s' % uuid.uuid4(),
        'advertiserId': advertiser_id,
        'archived': 'false',
        'defaultLandingPageId': default_landing_page['id'],
        'startDate': '2015-01-01',
        'endDate': '2020-01-01'
    }
  2. اتّصِل على campaigns.insert() لحفظ الحملة.

    request = service.campaigns().insert(profileId=profile_id, body=campaign)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. أنشئ عنصر Campaign واضبط خصائصه المطلوبة:

    • advertiserId: المعلِن الذي سيتم ربط هذه الحملة به.
    • name: يجب أن يكون هذا المعرّف فريدًا في جميع حملات هذا المعلِن.
    • defaultLandingPageId: صفحة مقصودة سيتم توجيه المستخدمين إليها عند النقر على إعلان في هذه الحملة، في حال لم يتم تعيين صفحة مقصودة لهذا الإعلان. يمكنك البحث عن صفحات مقصودة حالية من خلال استدعاء advertiserLandingPages.list أو إنشاء صفحة جديدة من خلال استدعاء advertiserLandingPages.insert.
    • تاريخا البدء والانتهاء: يجب أن يكونا في المستقبل، ويمكن أن يكونا دقيقَين إلى حدّ اليوم. لمزيد من التفاصيل، يمكنك الاطّلاع على النقطة المتعلقة بالتواريخ والأوقات في معلومات عامة حول الترميز. يمكن أن تتجاوز تواريخ الإعلانات الفردية تاريخ الانتهاء، وذلك لتمكين الناشر من محاولة تنفيذ عقد لعدد محدّد من الإجراءات، إذا لم يتم تنفيذه بحلول تاريخ انتهاء الحملة المحدّد.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Create a new campaign resource to insert.
    campaign = DfareportingUtils::API_NAMESPACE::Campaign.new(
      advertiser_id: advertiser_id,
      archived: false,
      default_landing_page_id: default_landing_page.id,
      name: format('Example Campaign #%s', SecureRandom.hex(3)),
      start_date: '2014-01-01',
      end_date: '2020-01-01'
    )
  2. اتّصِل على campaigns.insert() لحفظ الحملة.

    # Insert the campaign.
    result = service.insert_campaign(profile_id, campaign)

إنشاء موضع إعلان

#C

  1. أنشئ عنصر Placement واضبط خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع موضع الإعلان وحجمه بدقة لموضع الإعلان الذي تفاوضت عليه مع موقعك الإلكتروني.
    // Create the placement.
    Placement placement = new Placement();
    placement.Name = placementName;
    placement.CampaignId = campaignId;
    placement.Compatibility = "DISPLAY";
    placement.PaymentSource = "PLACEMENT_AGENCY_PAID";
    placement.SiteId = dfaSiteId;
    placement.TagFormats = new List<string>() { "PLACEMENT_TAG_STANDARD" };
    
    // Set the size of the placement.
    Size size = new Size();
    size.Id = sizeId;
    placement.Size = size;
  2. أنشِئ عنصر PricingSchedule جديدًا لتحديده لموضع الإعلان.
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.EndDate = campaign.EndDate;
    pricingSchedule.PricingType = "PRICING_TYPE_CPM";
    pricingSchedule.StartDate = campaign.StartDate;
    placement.PricingSchedule = pricingSchedule;
  3. احفظ عنصر Placement من خلال استدعاء placements.insert(). احرص على تخزين المعرّف الذي تم إرجاعه إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    // Insert the placement.
    Placement result = service.Placements.Insert(placement, profileId).Execute();

جافا

  1. أنشئ عنصر Placement واضبط خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع موضع الإعلان وحجمه بدقة لموضع الإعلان الذي تفاوضت عليه مع موقعك الإلكتروني.
    // Create the placement.
    Placement placement = new Placement();
    placement.setName(placementName);
    placement.setCampaignId(campaignId);
    placement.setCompatibility("DISPLAY");
    placement.setPaymentSource("PLACEMENT_AGENCY_PAID");
    placement.setSiteId(dfaSiteId);
    placement.setTagFormats(ImmutableList.of("PLACEMENT_TAG_STANDARD"));
    
    // Set the size of the placement.
    Size size = new Size();
    size.setId(sizeId);
    placement.setSize(size);
  2. أنشِئ عنصر PricingSchedule جديدًا لتحديده لموضع الإعلان.
    // Set the pricing schedule for the placement.
    PricingSchedule pricingSchedule = new PricingSchedule();
    pricingSchedule.setEndDate(campaign.getEndDate());
    pricingSchedule.setPricingType("PRICING_TYPE_CPM");
    pricingSchedule.setStartDate(campaign.getStartDate());
    placement.setPricingSchedule(pricingSchedule);
  3. احفظ عنصر Placement من خلال استدعاء placements.insert(). احرص على تخزين المعرّف الذي تم إرجاعه إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    // Insert the placement.
    Placement result = reporting.placements().insert(profileId, placement).execute();

PHP

  1. أنشئ عنصر Placement واضبط خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع موضع الإعلان وحجمه بدقة لموضع الإعلان الذي تفاوضت عليه مع موقعك الإلكتروني.
    $placement = new Google_Service_Dfareporting_Placement();
    $placement->setCampaignId($values['campaign_id']);
    $placement->setCompatibility('DISPLAY');
    $placement->setName($values['placement_name']);
    $placement->setPaymentSource('PLACEMENT_AGENCY_PAID');
    $placement->setSiteId($values['site_id']);
    $placement->setTagFormats(['PLACEMENT_TAG_STANDARD']);
    
    // Set the size of the placement.
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $placement->setSize($size);
  2. أنشِئ عنصر PricingSchedule جديدًا لتحديده لموضع الإعلان.
    // Set the pricing schedule for the placement.
    $pricingSchedule = new Google_Service_Dfareporting_PricingSchedule();
    $pricingSchedule->setEndDate($campaign->getEndDate());
    $pricingSchedule->setPricingType('PRICING_TYPE_CPM');
    $pricingSchedule->setStartDate($campaign->getStartDate());
    $placement->setPricingSchedule($pricingSchedule);
  3. احفظ العنصر Placement من خلال استدعاء placements.insert(). احرص على تخزين المعرّف الذي تم إرجاعه إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    // Insert the placement.
    $result = $this->service->placements->insert(
        $values['user_profile_id'],
        $placement
    );

Python

  1. أنشئ عنصر Placement واضبط خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع موضع الإعلان وحجمه بدقة لموضع الإعلان الذي تفاوضت عليه مع موقعك الإلكتروني.
    # Construct and save placement.
    placement = {
        'name': 'Test Placement',
        'campaignId': campaign_id,
        'compatibility': 'DISPLAY',
        'siteId': site_id,
        'size': {
            'height': '1',
            'width': '1'
        },
        'paymentSource': 'PLACEMENT_AGENCY_PAID',
        'tagFormats': ['PLACEMENT_TAG_STANDARD']
    }
  2. أنشِئ عنصر PricingSchedule جديدًا لتحديده لموضع الإعلان.
    # Set the pricing schedule for the placement.
    placement['pricingSchedule'] = {
        'startDate': campaign['startDate'],
        'endDate': campaign['endDate'],
        'pricingType': 'PRICING_TYPE_CPM'
    }
  3. احفظ العنصر Placement من خلال استدعاء placements.insert(). احرص على تخزين المعرّف الذي تم إرجاعه إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    request = service.placements().insert(profileId=profile_id, body=placement)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. أنشئ عنصر Placement واضبط خصائص موضع الإعلان المطلوبة (بما في ذلك campaignId وsiteId). احرص أيضًا على ضبط نوع موضع الإعلان وحجمه بدقة لموضع الإعلان الذي تفاوضت عليه مع موقعك الإلكتروني.
    # Create a new placement resource to insert.
    placement = DfareportingUtils::API_NAMESPACE::Placement.new(
      campaign_id: campaign_id,
      compatibility: 'DISPLAY',
      name: 'Example Placement',
      payment_source: 'PLACEMENT_AGENCY_PAID',
      site_id: site_id,
      size: DfareportingUtils::API_NAMESPACE::Size.new(
        height: 1,
        width: 1
      ),
      tag_formats: ['PLACEMENT_TAG_STANDARD']
    )
  2. أنشِئ عنصر PricingSchedule جديدًا لتحديده لموضع الإعلان.
    # Set the pricing schedule for the placement.
    placement.pricing_schedule =
      DfareportingUtils::API_NAMESPACE::PricingSchedule.new(
        end_date: campaign.end_date,
        pricing_type: 'PRICING_TYPE_CPM',
        start_date: campaign.start_date
      )
  3. احفظ عنصر Placement من خلال استدعاء placements.insert(). احرص على تخزين المعرّف الذي تم إرجاعه إذا كنت تريد استخدامه لتعيين إعلان أو تصميم إعلان.
    # Insert the placement strategy.
    result = service.insert_placement(profile_id, placement)

تحميل مواد العرض

يمكنك تحميل العديد من أنواع مواد العرض من خلال عملية تُعرف باسم تحميل الوسائط. على الرغم من أنّ هذه العملية متشابهة بالنسبة إلى جميع أنواع تصميمات الإعلانات، قد تتطلّب بعض الأنواع تمرير سمات معيّنة كبيانات وصفية لكي يتم استخدامها بشكلٍ صحيح.

#C

  1. أنشئ assetIdentifierعنصرًا واضبط السمات المطلوبة. يجب تحديد assetIdentifier لجميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. يجب توفير الخصائص التالية:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل ‎ .png أو ‎ .gif، وسيتم عرضه للمتصفّح كاسم الأصل، ولكن ليس من الضروري أن يكون الاسم هو نفسه اسم الملف الأصلي. يُرجى العِلم أنّه قد يتم تغيير هذا الاسم من خلال "مدير الحملة 360" ليكون فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييره.
    • السمة type التي تحدّد نوع مادة العرض سيحدّد هذا الموقع أنواع تصاميم الإعلانات التي يمكن ربط مادة العرض بها.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.Name = Path.GetFileName(assetFile);
    assetId.Type = assetType;
  2. حمِّل الملف من خلال استدعاء creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير كل من assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال نجاح العملية، سيتم عرض مورد CreativeAsset، مع assetIdentifier ستستخدمه لربط هذا الأصل بمادة إبداعية.

    // Prepare an input stream.
    FileStream assetContent = new FileStream(assetFile, FileMode.Open, FileAccess.Read);
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.AssetIdentifier = assetId;
    
    // Insert the creative.
    String mimeType = determineMimeType(assetFile, assetType);
    CreativeAssetsResource.InsertMediaUpload request =
        Service.CreativeAssets.Insert(metaData, ProfileId, AdvertiserId, assetContent, mimeType);
    
    IUploadProgress progress = request.Upload();
    if (UploadStatus.Failed.Equals(progress.Status)) {
        throw progress.Exception;
    }

جافا

  1. أنشئ assetIdentifierعنصرًا واضبط السمات المطلوبة. يجب تحديد assetIdentifier لجميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. يجب توفير الخصائص التالية:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل ‎ .png أو ‎ .gif، وسيتم عرضه للمتصفّح كاسم الأصل، ولكن ليس من الضروري أن يكون الاسم هو نفسه اسم الملف الأصلي. يُرجى العِلم أنّه قد يتم تغيير هذا الاسم من خلال "مدير الحملة 360" ليكون فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييره.
    • السمة type التي تحدّد نوع مادة العرض سيحدّد هذا الموقع أنواع تصاميم الإعلانات التي يمكن ربط مادة العرض بها.
    // Create the creative asset ID and Metadata.
    CreativeAssetId assetId = new CreativeAssetId();
    assetId.setName(assetName);
    assetId.setType(assetType);
  2. حمِّل الملف من خلال استدعاء creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير كل من assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال نجاح العملية، سيتم عرض مورد CreativeAsset، مع assetIdentifier ستستخدمه لربط هذا الأصل بمادة إبداعية.

    // Open the asset file.
    File file = new File(assetFile);
    
    // Prepare an input stream.
    String contentType = getMimeType(assetFile);
    InputStreamContent assetContent =
        new InputStreamContent(contentType, new BufferedInputStream(new FileInputStream(file)));
    assetContent.setLength(file.length());
    
    
    CreativeAssetMetadata metaData = new CreativeAssetMetadata();
    metaData.setAssetIdentifier(assetId);
    
    // Insert the creative.
    CreativeAssetMetadata result = reporting.creativeAssets()
        .insert(profileId, advertiserId, metaData, assetContent).execute();

PHP

  1. أنشئ assetIdentifierعنصرًا واضبط السمات المطلوبة. يجب تحديد assetIdentifier لجميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. يجب توفير الخصائص التالية:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل ‎ .png أو ‎ .gif، وسيتم عرضه للمتصفّح كاسم الأصل، ولكن ليس من الضروري أن يكون الاسم هو نفسه اسم الملف الأصلي. يُرجى العِلم أنّه قد يتم تغيير هذا الاسم من خلال "مدير الحملة 360" ليكون فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييره.
    • السمة type التي تحدّد نوع مادة العرض سيحدّد هذا الموقع أنواع تصاميم الإعلانات التي يمكن ربط مادة العرض بها.
    $assetId = new Google_Service_Dfareporting_CreativeAssetId();
    $assetId->setName($asset['name']);
    $assetId->setType($type);
  2. حمِّل الملف من خلال استدعاء creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير كل من assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال نجاح العملية، سيتم عرض مورد CreativeAsset، مع assetIdentifier ستستخدمه لربط هذا الأصل بمادة إبداعية.

    $metadata = new Google_Service_Dfareporting_CreativeAssetMetadata();
    $metadata->setAssetIdentifier($assetId);
    
    $result = $service->creativeAssets->insert(
        $userProfileId,
        $advertiserId,
        $metadata,
        ['data' => file_get_contents($asset['tmp_name']),
         'mimeType' => $asset['type'],
         'uploadType' => 'multipart']
    );

Python

  1. أنشئ assetIdentifierعنصرًا واضبط السمات المطلوبة. يجب تحديد assetIdentifier لجميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. يجب توفير الخصائص التالية:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل ‎ .png أو ‎ .gif، وسيتم عرضه للمتصفّح كاسم الأصل، ولكن ليس من الضروري أن يكون الاسم هو نفسه اسم الملف الأصلي. يُرجى العِلم أنّه قد يتم تغيير هذا الاسم من خلال "مدير الحملة 360" ليكون فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييره.
    • السمة type التي تحدّد نوع مادة العرض سيحدّد هذا الموقع أنواع تصاميم الإعلانات التي يمكن ربط مادة العرض بها.
    # Construct the creative asset metadata
    creative_asset = {'assetIdentifier': {'name': asset_name, 'type': asset_type}}
  2. حمِّل الملف من خلال استدعاء creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير كل من assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال نجاح العملية، سيتم عرض مورد CreativeAsset، مع assetIdentifier ستستخدمه لربط هذا الأصل بمادة إبداعية.

    media = MediaFileUpload(path_to_asset_file)
    if not media.mimetype():
      media = MediaFileUpload(path_to_asset_file, 'application/octet-stream')
    
    response = service.creativeAssets().insert(
        advertiserId=advertiser_id,
        profileId=profile_id,
        media_body=media,
        body=creative_asset).execute()

Ruby

  1. أنشئ assetIdentifierعنصرًا واضبط السمات المطلوبة. يجب تحديد assetIdentifier لجميع مواد العرض، بغض النظر عن نوعها أو طريقة استخدامها. عند تعيين مادة العرض لتصميم إعلان، سيتم استخدام هذا العنصر للإشارة إلى مادة العرض. يجب توفير الخصائص التالية:

    • السمة name، التي ستكون اسم مادة العرض على الخادم يجب أن يتضمّن الاسم امتدادًا يشير إلى نوع الملف، مثل ‎ .png أو ‎ .gif، وسيتم عرضه للمتصفّح كاسم الأصل، ولكن ليس من الضروري أن يكون الاسم هو نفسه اسم الملف الأصلي. يُرجى العِلم أنّه قد يتم تغيير هذا الاسم من خلال "مدير الحملة 360" ليكون فريدًا على الخادم. تحقَّق من القيمة المعروضة لمعرفة ما إذا تم تغييره.
    • السمة type التي تحدّد نوع مادة العرض سيحدّد هذا الموقع أنواع تصاميم الإعلانات التي يمكن ربط مادة العرض بها.
    # Construct the creative asset metadata
    creative_asset = DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
      asset_identifier: DfareportingUtils::API_NAMESPACE::CreativeAssetId.new(
        name: asset_name,
        type: asset_type
      )
    )
  2. حمِّل الملف من خلال استدعاء creativeAssets.insert(). نفِّذ عملية تحميل متعددة الأجزاء، مع تمرير كل من assetIdentifier ومحتوى الملف كجزء من الطلب نفسه. في حال نجاح العملية، سيتم عرض مورد CreativeAsset، مع assetIdentifier ستستخدمه لربط هذا الأصل بمادة إبداعية.

    # Upload the asset.
    mime_type = determine_mime_type(path_to_asset_file, asset_type)
    
    result = @service.insert_creative_asset(
      @profile_id,
      advertiser_id,
      creative_asset,
      content_type: mime_type,
      upload_source: path_to_asset_file
    )

إنشاء تصميم إعلان

يحتوي العنصر Creative على مادة عرض حالية. استنادًا إلى كيفية استخدام تصاميم الإعلانات على الصفحة المضيفة، يمكنك إنشاء عناصر Creative من أنواع مختلفة من تصاميم الإعلانات. راجِع المستندات المرجعية لتحديد النوع المناسب لك.

يوضّح المثال التالي كيفية إنشاء تصميم إعلان جديد على الشبكة الإعلانية بتنسيق HTML5.

#C

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجِع مقالة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستتلقّى assetIdenfitier في الردّ. ستستخدم اسم الملف ونوعه المخزّنَين للإشارة إلى مواد العرض هذه في تصميم إعلانك بدلاً من استخدام معرّف تقليدي.
  2. أنشئ سمة إبداعية وحدِّد لها قيمًا مناسبة. أنشئ مثيلاً من Creative واضبط type المناسب، ولا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض حسب AssetIdentifier وrole.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(service, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.AdvertiserId = advertiserId;
    creative.Name = "Test HTML5 display creative";
    creative.Size = new Size() { Id = sizeId };
    creative.Type = "DISPLAY";
    
    // Upload the HTML5 asset.
    CreativeAssetUtils assetUtils = new CreativeAssetUtils(service, profileId, advertiserId);
    CreativeAssetId html5AssetId =
        assetUtils.uploadAsset(pathToHtml5AssetFile, "HTML").AssetIdentifier;
    
    CreativeAsset html5Asset = new CreativeAsset();
    html5Asset.AssetIdentifier = html5AssetId;
    html5Asset.Role = "PRIMARY";
    
    // Upload the backup image asset.
    CreativeAssetId imageAssetId =
        assetUtils.uploadAsset(pathToImageAssetFile, "HTML_IMAGE").AssetIdentifier;
    
    CreativeAsset imageAsset = new CreativeAsset();
    imageAsset.AssetIdentifier = imageAssetId;
    imageAsset.Role = "BACKUP_IMAGE";
    
    // Add the creative assets.
    creative.CreativeAssets = new List<CreativeAsset>() { html5Asset, imageAsset };
    
    // Configure the bacup image.
    creative.BackupImageClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.BackupImageReportingLabel = "backup";
    creative.BackupImageTargetWindow = new TargetWindow() { TargetWindowOption = "NEW_WINDOW" };
    
    // Add a click tag.
    ClickTag clickTag = new ClickTag();
    clickTag.Name = "clickTag";
    clickTag.EventName = "exit";
    clickTag.ClickThroughUrl = new CreativeClickThroughUrl() {
      LandingPageId = defaultLandingPage.Id
    };
    creative.ClickTags = new List<ClickTag>() { clickTag };
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال استدعاء creatives.insert(). يجب تحديد معرّف معلِن لربط تصميم الإعلان هذا به.
    Creative result = service.Creatives.Insert(creative, profileId).Execute();
  4. (اختياري) اربط تصميم الإعلان بحملة. ويمكن إجراء ذلك من خلال الاتصال بالرقم campaignCreativeAssociations.insert()، مع إدخال معرّفَي الحملة وتصميم الإعلان.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();

جافا

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجِع مقالة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستتلقّى assetIdenfitier في الردّ. ستستخدم اسم الملف ونوعه المخزّنَين للإشارة إلى مواد العرض هذه في تصميم إعلانك بدلاً من استخدام معرّف تقليدي.
  2. أنشئ سمة إبداعية وحدِّد لها قيمًا مناسبة. أنشئ مثيلاً من Creative واضبط type المناسب، ولا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض حسب AssetIdentifier وrole.
    // Locate an advertiser landing page to use as a default.
    LandingPage defaultLandingPage = getAdvertiserLandingPage(reporting, profileId, advertiserId);
    
    // Create the creative structure.
    Creative creative = new Creative();
    creative.setAdvertiserId(advertiserId);
    creative.setName("Test HTML5 display creative");
    creative.setSize(new Size().setId(sizeId));
    creative.setType("DISPLAY");
    
    // Upload the HTML5 asset.
    CreativeAssetId html5AssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, HTML5_ASSET_NAME, PATH_TO_HTML5_ASSET_FILE, "HTML").getAssetIdentifier();
    
    CreativeAsset html5Asset =
        new CreativeAsset().setAssetIdentifier(html5AssetId).setRole("PRIMARY");
    
    // Upload the backup image asset (note: asset type must be set to HTML_IMAGE).
    CreativeAssetId imageAssetId = CreativeAssetUtils.uploadAsset(reporting, profileId,
        advertiserId, IMAGE_ASSET_NAME, PATH_TO_IMAGE_ASSET_FILE, "HTML_IMAGE")
        .getAssetIdentifier();
    
    CreativeAsset backupImageAsset =
        new CreativeAsset().setAssetIdentifier(imageAssetId).setRole("BACKUP_IMAGE");
    
    // Add the creative assets.
    creative.setCreativeAssets(ImmutableList.of(html5Asset, backupImageAsset));
    
    // Configure the backup image.
    creative.setBackupImageClickThroughUrl(
        new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setBackupImageReportingLabel("backup");
    creative.setBackupImageTargetWindow(new TargetWindow().setTargetWindowOption("NEW_WINDOW"));
    
    // Add a click tag.
    ClickTag clickTag =
        new ClickTag().setName("clickTag").setEventName("exit").setClickThroughUrl(
            new CreativeClickThroughUrl().setLandingPageId(defaultLandingPage.getId()));
    creative.setClickTags(ImmutableList.of(clickTag));
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال استدعاء creatives.insert(). يجب تحديد معرّف معلِن لربط تصميم الإعلان هذا به.
    Creative result = reporting.creatives().insert(profileId, creative).execute();
  4. (اختياري) اربط تصميم الإعلان بحملة. ويمكن إجراء ذلك من خلال الاتصال بالرقم campaignCreativeAssociations.insert()، مع إدخال معرّفَي الحملة وتصميم الإعلان.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();

PHP

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجِع مقالة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستتلقّى assetIdenfitier في الردّ. ستستخدم اسم الملف ونوعه المخزّنَين للإشارة إلى مواد العرض هذه في تصميم إعلانك بدلاً من استخدام معرّف تقليدي.
  2. أنشئ سمة إبداعية وحدِّد لها قيمًا مناسبة. أنشئ مثيلاً من Creative واضبط type المناسب، ولا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض حسب AssetIdentifier وrole.
    $creative = new Google_Service_Dfareporting_Creative();
    $creative->setAdvertiserId($values['advertiser_id']);
    $creative->setAutoAdvanceImages(true);
    $creative->setName('Test HTML5 display creative');
    $creative->setType('DISPLAY');
    
    $size = new Google_Service_Dfareporting_Size();
    $size->setId($values['size_id']);
    $creative->setSize($size);
    
    // Upload the HTML5 asset.
    $html = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['html_asset_file'],
        'HTML'
    );
    
    $htmlAsset = new Google_Service_Dfareporting_CreativeAsset();
    $htmlAsset->setAssetIdentifier($html->getAssetIdentifier());
    $htmlAsset->setRole('PRIMARY');
    
    // Upload the backup image asset.
    $image = uploadAsset(
        $this->service,
        $values['user_profile_id'],
        $values['advertiser_id'],
        $values['image_asset_file'],
        'HTML_IMAGE'
    );
    
    $imageAsset = new Google_Service_Dfareporting_CreativeAsset();
    $imageAsset->setAssetIdentifier($image->getAssetIdentifier());
    $imageAsset->setRole('BACKUP_IMAGE');
    
    // Add the creative assets.
    $creative->setCreativeAssets([$htmlAsset, $imageAsset]);
    
    // Configure the default click-through URL.
    $clickThroughUrl =
        new Google_Service_Dfareporting_CreativeClickThroughUrl();
    $clickThroughUrl->setLandingPageId($values['landing_page_id']);
    
    // Configure the backup image.
    $creative->setBackupImageClickThroughUrl($clickThroughUrl);
    $creative->setBackupImageReportingLabel('backup');
    
    $targetWindow = new Google_Service_Dfareporting_TargetWindow();
    $targetWindow->setTargetWindowOption('NEW_WINDOW');
    $creative->setBackupImageTargetWindow($targetWindow);
    
    // Add a click tag.
    $clickTag = new Google_Service_Dfareporting_ClickTag();
    $clickTag->setName('clickTag');
    $clickTag->setEventName('exit');
    $clickTag->setClickThroughUrl($clickThroughUrl);
    $creative->setClickTags([$clickTag]);
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال استدعاء creatives.insert(). يجب تحديد معرّف معلِن لربط تصميم الإعلان هذا به.
    $result = $this->service->creatives->insert(
        $values['user_profile_id'],
        $creative
    );
  4. (اختياري) اربط تصميم الإعلان بحملة. ويمكن إجراء ذلك من خلال الاتصال بالرقم campaignCreativeAssociations.insert()، مع إدخال معرّفَي الحملة وتصميم الإعلان.
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );

Python

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجِع مقالة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستتلقّى assetIdenfitier في الردّ. ستستخدم اسم الملف ونوعه المخزّنَين للإشارة إلى مواد العرض هذه في تصميم إعلانك بدلاً من استخدام معرّف تقليدي.
  2. أنشئ سمة إبداعية وحدِّد لها قيمًا مناسبة. أنشئ مثيلاً من Creative واضبط type المناسب، ولا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض حسب AssetIdentifier وrole.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
                                                       advertiser_id)
    
    # Upload the HTML5 asset
    html5_asset_id = upload_creative_asset(service, profile_id, advertiser_id,
                                           html5_asset_name,
                                           path_to_html5_asset_file, 'HTML')
    
    # Upload the backup image asset
    backup_image_asset_id = upload_creative_asset(
        service, profile_id, advertiser_id, backup_image_name,
        path_to_backup_image_file, 'HTML_IMAGE')
    
    # Construct the creative structure.
    creative = {
        'advertiserId': advertiser_id,
        'backupImageClickThroughUrl': {
            'landingPageId': default_landing_page['id']
        },
        'backupImageReportingLabel': 'backup_image_exit',
        'backupImageTargetWindow': {'targetWindowOption': 'NEW_WINDOW'},
        'clickTags': [{
            'eventName': 'exit',
            'name': 'click_tag',
            'clickThroughUrl': {'landingPageId': default_landing_page['id']}
        }],
        'creativeAssets': [
            {'assetIdentifier': html5_asset_id, 'role': 'PRIMARY'},
            {'assetIdentifier': backup_image_asset_id, 'role': 'BACKUP_IMAGE'}
        ],
        'name': 'Test HTML5 display creative',
        'size': {'id': size_id},
        'type': 'DISPLAY'
    }
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال استدعاء creatives.insert(). يجب تحديد معرّف معلِن لربط تصميم الإعلان هذا به.
    request = service.creatives().insert(profileId=profile_id, body=creative)
    
    # Execute request and print response.
    response = request.execute()
  4. (اختياري) اربط تصميم الإعلان بحملة. ويمكن إجراء ذلك من خلال الاتصال بالرقم campaignCreativeAssociations.insert()، مع إدخال معرّفَي الحملة وتصميم الإعلان.
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. حمِّل مواد العرض. تتطلّب تصاميم الإعلانات المختلفة أنواعًا وكميات مختلفة من مواد العرض. راجِع مقالة تحميل مواد العرض للحصول على التفاصيل. في كل مرة تحمّل فيها مادة عرض بنجاح، ستتلقّى assetIdenfitier في الردّ. ستستخدم اسم الملف ونوعه المخزّنَين للإشارة إلى مواد العرض هذه في تصميم إعلانك بدلاً من استخدام معرّف تقليدي.
  2. أنشئ سمة إبداعية وحدِّد لها قيمًا مناسبة. أنشئ مثيلاً من Creative واضبط type المناسب، ولا يمكنك تغيير نوع عنصر Creative بعد حفظه. حدِّد مواد العرض حسب AssetIdentifier وrole.
    # Locate an advertiser landing page to use as a default.
    default_landing_page = get_advertiser_landing_page(service, profile_id,
      advertiser_id)
    
    # Upload the HTML5 asset.
    html5_asset_id = util.upload_asset(advertiser_id, path_to_html5_asset_file,
      'HTML').asset_identifier
    
    # Upload the backup image asset.
    backup_image_asset_id = util.upload_asset(advertiser_id,
      path_to_backup_image_file, 'HTML_IMAGE').asset_identifier
    
    # Construct the creative structure.
    creative = DfareportingUtils::API_NAMESPACE::Creative.new(
      advertiser_id: advertiser_id,
      backup_image_click_through_url:
        DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
          landing_page_id: default_landing_page.id
        ),
      backup_image_reporting_label: 'backup',
      backup_image_target_window:
        DfareportingUtils::API_NAMESPACE::TargetWindow.new(
          target_window_option: 'NEW_WINDOW'
        ),
      click_tags: [
        DfareportingUtils::API_NAMESPACE::ClickTag.new(
          event_name: 'exit',
          name: 'click_tag',
          click_through_url:
            DfareportingUtils::API_NAMESPACE::CreativeClickThroughUrl.new(
              landing_page_id: default_landing_page.id
            )
        )
      ],
      creative_assets: [
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: html5_asset_id,
          role: 'PRIMARY'
        ),
        DfareportingUtils::API_NAMESPACE::CreativeAsset.new(
          asset_identifier: backup_image_asset_id,
          role: 'BACKUP_IMAGE'
        )
      ],
      name: 'Example HTML5 display creative',
      size: DfareportingUtils::API_NAMESPACE::Size.new(id: size_id),
      type: 'DISPLAY'
    )
  3. احفظ تصميم الإعلان. يمكنك إجراء ذلك من خلال استدعاء creatives.insert(). يجب تحديد معرّف معلِن لربط تصميم الإعلان هذا به.
    # Insert the creative.
    result = service.insert_creative(profile_id, creative)
  4. (اختياري) اربط تصميم الإعلان بحملة. ويمكن إجراء ذلك من خلال الاتصال بالرقم campaignCreativeAssociations.insert()، مع إدخال معرّفَي الحملة وتصميم الإعلان.
    # Create a new creative-campaign association to insert
    association =
      DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new(
        creative_id: creative_id
      )
    
    # Insert the advertiser group.
    result = service.insert_campaign_creative_association(profile_id, campaign_id,
      association)

إنشاء إعلان

Ad هو الرابط بين Creative وPlacement. يمكن ربط Ad بموضع إعلان واحد أو أكثر، كما يمكن أن يحتوي على تصميم إعلان واحد أو أكثر.

يمكنك إنشاء Ad بشكل صريح أو ضِمني.

بشكل صريح

#C

  1. أنشئ عنصر CreativeAssignment لكل مادة إبداعية يجب ربط هذا الإعلان بها. احرص على ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.DefaultLandingPage = true;
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.Active = true;
    creativeAssignment.CreativeId = creativeId;
    creativeAssignment.ClickThroughUrl = clickThroughUrl;
  2. أنشئ عنصر CreativeRotation لتخزين CreativeAssignment. في حال إنشاء مجموعة تدوير، احرص على ضبط حقول تدوير تصميمات الإعلانات المطلوبة الأخرى.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.CreativeAssignments = new List<CreativeAssignment>() {
        creativeAssignment
    };
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب ربط هذا الإعلان به. احرص على ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.Active = true;
    placementAssignment.PlacementId = placementId;
  4. أنشئ عنصر Ad. اضبط creativeRotation في حقل creativeRotation الخاص بالكائن Ad، واضبط placementAssignments في مصفوفة placementAssignments الخاصة بالكائن Ad.
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.ImpressionRatio = 1;
    deliverySchedule.Priority = "AD_PRIORITY_01";
    
    DateTime startDate = DateTime.Now;
    DateTime endDate = Convert.ToDateTime(campaign.EndDate);
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.Active = true;
    rotationGroup.CampaignId = campaignId;
    rotationGroup.CreativeRotation = creativeRotation;
    rotationGroup.DeliverySchedule = deliverySchedule;
    rotationGroup.StartTime = startDate;
    rotationGroup.EndTime = endDate;
    rotationGroup.Name = adName;
    rotationGroup.PlacementAssignments = new List<PlacementAssignment>() {
        placementAssignment
    };
    rotationGroup.Type = "AD_SERVING_STANDARD_AD";
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    // Insert the rotation group.
    Ad result = service.Ads.Insert(rotationGroup, profileId).Execute();

جافا

  1. أنشئ عنصر CreativeAssignment لكل مادة إبداعية يجب ربط هذا الإعلان بها. احرص على ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    ClickThroughUrl clickThroughUrl = new ClickThroughUrl();
    clickThroughUrl.setDefaultLandingPage(true);
    
    // Create a creative assignment.
    CreativeAssignment creativeAssignment = new CreativeAssignment();
    creativeAssignment.setActive(true);
    creativeAssignment.setCreativeId(creativeId);
    creativeAssignment.setClickThroughUrl(clickThroughUrl);
  2. أنشئ عنصر CreativeRotation لتخزين CreativeAssignment. في حال إنشاء مجموعة تدوير، احرص على ضبط حقول تدوير تصميمات الإعلانات المطلوبة الأخرى.
    // Create a creative rotation.
    CreativeRotation creativeRotation = new CreativeRotation();
    creativeRotation.setCreativeAssignments(ImmutableList.of(creativeAssignment));
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب ربط هذا الإعلان به. احرص على ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    PlacementAssignment placementAssignment = new PlacementAssignment();
    placementAssignment.setActive(true);
    placementAssignment.setPlacementId(placementId);
  4. أنشئ عنصر Ad. اضبط creativeRotation في حقل creativeRotation الخاص بالكائن Ad، واضبط placementAssignments في مصفوفة placementAssignments الخاصة بالكائن Ad.
    // Create a delivery schedule.
    DeliverySchedule deliverySchedule = new DeliverySchedule();
    deliverySchedule.setImpressionRatio(1L);
    deliverySchedule.setPriority("AD_PRIORITY_01");
    
    DateTime startDate = new DateTime(new Date());
    DateTime endDate = new DateTime(campaign.getEndDate().getValue());
    
    // Create a rotation group.
    Ad rotationGroup = new Ad();
    rotationGroup.setActive(true);
    rotationGroup.setCampaignId(campaignId);
    rotationGroup.setCreativeRotation(creativeRotation);
    rotationGroup.setDeliverySchedule(deliverySchedule);
    rotationGroup.setStartTime(startDate);
    rotationGroup.setEndTime(endDate);
    rotationGroup.setName(adName);
    rotationGroup.setPlacementAssignments(ImmutableList.of(placementAssignment));
    rotationGroup.setType("AD_SERVING_STANDARD_AD");
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    // Insert the rotation group.
    Ad result = reporting.ads().insert(profileId, rotationGroup).execute();

PHP

  1. أنشئ عنصر CreativeAssignment لكل مادة إبداعية يجب ربط هذا الإعلان بها. احرص على ضبط الحقل CreativeAssignment.active على "صحيح".
    // Create a click-through URL.
    $url = new Google_Service_Dfareporting_ClickThroughUrl();
    $url->setDefaultLandingPage(true);
    
    // Create a creative assignment.
    $creativeAssignment =
        new Google_Service_Dfareporting_CreativeAssignment();
    $creativeAssignment->setActive(true);
    $creativeAssignment->setCreativeId($values['creative_id']);
    $creativeAssignment->setClickThroughUrl($url);
  2. أنشئ عنصر CreativeRotation لتخزين CreativeAssignment. في حال إنشاء مجموعة تدوير، احرص على ضبط حقول تدوير تصميمات الإعلانات المطلوبة الأخرى.
    // Create a creative rotation.
    $creativeRotation = new Google_Service_Dfareporting_CreativeRotation();
    $creativeRotation->setCreativeAssignments([$creativeAssignment]);
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب ربط هذا الإعلان به. احرص على ضبط الحقل PlacementAssignment.active على "صحيح".
    // Create a placement assignment.
    $placementAssignment =
        new Google_Service_Dfareporting_PlacementAssignment();
    $placementAssignment->setActive(true);
    $placementAssignment->setPlacementId($values['placement_id']);
  4. أنشئ عنصر Ad. اضبط creativeRotation في حقل creativeRotation الخاص بالكائن Ad، واضبط placementAssignments في مصفوفة placementAssignments الخاصة بالكائن Ad.
    // Create a delivery schedule.
    $deliverySchedule = new Google_Service_Dfareporting_DeliverySchedule();
    $deliverySchedule->setImpressionRatio(1);
    $deliverySchedule->SetPriority('AD_PRIORITY_01');
    
    $startDate = new DateTime('today');
    $endDate = new DateTime($campaign->getEndDate());
    
    // Create a rotation group.
    $ad = new Google_Service_Dfareporting_Ad();
    $ad->setActive(true);
    $ad->setCampaignId($values['campaign_id']);
    $ad->setCreativeRotation($creativeRotation);
    $ad->setDeliverySchedule($deliverySchedule);
    $ad->setStartTime($startDate->format('Y-m-d') . 'T23:59:59Z');
    $ad->setEndTime($endDate->format('Y-m-d') . 'T00:00:00Z');
    $ad->setName($values['ad_name']);
    $ad->setPlacementAssignments([$placementAssignment]);
    $ad->setType('AD_SERVING_STANDARD_AD');
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    $result = $this->service->ads->insert($values['user_profile_id'], $ad);

Python

  1. أنشئ عنصر CreativeAssignment لكل مادة إبداعية يجب ربط هذا الإعلان بها. احرص على ضبط الحقل CreativeAssignment.active على "صحيح".
    # Construct creative assignment.
    creative_assignment = {
        'active': 'true',
        'creativeId': creative_id,
        'clickThroughUrl': {
            'defaultLandingPage': 'true'
        }
    }
  2. أنشئ عنصر CreativeRotation لتخزين CreativeAssignment. في حال إنشاء مجموعة تدوير، احرص على ضبط حقول تدوير تصميمات الإعلانات المطلوبة الأخرى.
    # Construct creative rotation.
    creative_rotation = {
        'creativeAssignments': [creative_assignment],
        'type': 'CREATIVE_ROTATION_TYPE_RANDOM',
        'weightCalculationStrategy': 'WEIGHT_STRATEGY_OPTIMIZED'
    }
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب ربط هذا الإعلان به. احرص على ضبط الحقل PlacementAssignment.active على "صحيح".
    # Construct placement assignment.
    placement_assignment = {
        'active': 'true',
        'placementId': placement_id,
    }
  4. أنشئ عنصر Ad. اضبط creativeRotation في حقل creativeRotation الخاص بالكائن Ad، واضبط placementAssignments في مصفوفة placementAssignments الخاصة بالكائن Ad.
    # Construct delivery schedule.
    delivery_schedule = {
        'impressionRatio': '1',
        'priority': 'AD_PRIORITY_01'
    }
    
    # Construct and save ad.
    ad = {
        'active': 'true',
        'campaignId': campaign_id,
        'creativeRotation': creative_rotation,
        'deliverySchedule': delivery_schedule,
        'endTime': '%sT00:00:00Z' % campaign['endDate'],
        'name': 'Test Rotation Group',
        'placementAssignments': [placement_assignment],
        'startTime': '%sT23:59:59Z' % time.strftime('%Y-%m-%d'),
        'type': 'AD_SERVING_STANDARD_AD'
    }
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    request = service.ads().insert(profileId=profile_id, body=ad)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. أنشئ عنصر CreativeAssignment لكل مادة إبداعية يجب ربط هذا الإعلان بها. احرص على ضبط الحقل CreativeAssignment.active على "صحيح".
    # Construct creative assignment.
    creative_assignment =
      DfareportingUtils::API_NAMESPACE::CreativeAssignment.new(
        active: true,
        creative_id: creative_id,
        click_through_url: DfareportingUtils::API_NAMESPACE::ClickThroughUrl.new(
          default_landing_page: true
        )
      )
  2. أنشئ عنصر CreativeRotation لتخزين CreativeAssignment. في حال إنشاء مجموعة تدوير، احرص على ضبط حقول تدوير تصميمات الإعلانات المطلوبة الأخرى.
    # Construct creative rotation.
    creative_rotation = DfareportingUtils::API_NAMESPACE::CreativeRotation.new(
      creative_assignments: [creative_assignment],
      type: 'CREATIVE_ROTATION_TYPE_RANDOM',
      weight_calculation_strategy: 'WEIGHT_STRATEGY_OPTIMIZED'
    )
  3. أنشئ عنصر PlacementAssignment لكل موضع إعلان يجب ربط هذا الإعلان به. احرص على ضبط الحقل PlacementAssignment.active على "صحيح".
    # Construct placement assignment.
    placement_assignment =
      DfareportingUtils::API_NAMESPACE::PlacementAssignment.new(
        active: true,
        placement_id: placement_id
      )
  4. أنشئ عنصر Ad. اضبط creativeRotation في حقل creativeRotation الخاص بالكائن Ad، واضبط placementAssignments في مصفوفة placementAssignments الخاصة بالكائن Ad.
    # Construct delivery schedule.
    delivery_schedule = DfareportingUtils::API_NAMESPACE::DeliverySchedule.new(
      impression_ratio: 1,
      priority: 'AD_PRIORITY_01'
    )
    
    # Construct and save ad.
    ad = DfareportingUtils::API_NAMESPACE::Ad.new(
      active: true,
      campaign_id: campaign_id,
      creative_rotation: creative_rotation,
      delivery_schedule: delivery_schedule,
      end_time: format('%sT00:00:00Z', campaign.end_date),
      name: 'Example Rotation Group',
      placement_assignments: [placement_assignment],
      start_time: format('%sT23:59:59Z', Time.now.strftime('%Y-%m-%d')),
      type: 'AD_SERVING_STANDARD_AD'
    )
  5. احفظ الإعلان من خلال الاتصال بالرقم ads.insert().
    result = service.insert_ad(profile_id, ad)

ضمنيًا

#C

  1. إنشاء Placement وحفظه
  2. إنشاء Creative وحفظه
  3. اربط Creative برقم تعريف Campaign نفسه المستخدَم في Placement من خلال استدعاء campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكلّ من المادة الإبداعية وموضع الإعلان.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.CreativeId = creativeId;
    
    // Insert the association.
    CampaignCreativeAssociation result =
        service.CampaignCreativeAssociations.Insert(association, profileId, campaignId).Execute();

جافا

  1. إنشاء Placement وحفظه
  2. إنشاء Creative وحفظه
  3. اربط Creative برقم تعريف Campaign نفسه المستخدَم في Placement من خلال استدعاء campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكلّ من تصميم الإعلان وموضع الإعلان.
    // Create the campaign creative association structure.
    CampaignCreativeAssociation association = new CampaignCreativeAssociation();
    association.setCreativeId(creativeId);
    
    // Insert the association.
    CampaignCreativeAssociation result = reporting
        .campaignCreativeAssociations().insert(profileId, campaignId, association)
        .execute();

PHP

  1. إنشاء Placement وحفظه
  2. إنشاء Creative وحفظه
  3. اربط Creative برقم تعريف Campaign نفسه المستخدَم في Placement من خلال استدعاء campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكلّ من تصميم الإعلان وموضع الإعلان.
    $association =
        new Google_Service_Dfareporting_CampaignCreativeAssociation();
    $association->setCreativeId($values['creative_id']);
    
    $result = $this->service->campaignCreativeAssociations->insert(
        $values['user_profile_id'],
        $values['campaign_id'],
        $association
    );

Python

  1. إنشاء Placement وحفظه
  2. إنشاء Creative وحفظه
  3. اربط Creative برقم تعريف Campaign نفسه المستخدَم في Placement من خلال استدعاء campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكلّ من تصميم الإعلان وموضع الإعلان.
    # Construct the request.
    association = {
        'creativeId': creative_id
    }
    
    request = service.campaignCreativeAssociations().insert(
        profileId=profile_id, campaignId=campaign_id, body=association)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. إنشاء Placement وحفظه
  2. إنشاء Creative وحفظه
  3. اربط Creative برقم تعريف Campaign نفسه المستخدَم في Placement من خلال استدعاء campaignCreativeAssociations.insert() (راجِع الخطوة 4 في قسم إنشاء تصميم إعلان). سيؤدي ذلك إلى إنشاء إعلان تلقائي مرتبط بكلّ من تصميم الإعلان وموضع الإعلان.
    # Create a new creative-campaign association to insert
    association =
      DfareportingUtils::API_NAMESPACE::CampaignCreativeAssociation.new(
        creative_id: creative_id
      )
    
    # Insert the advertiser group.
    result = service.insert_campaign_creative_association(profile_id, campaign_id,
      association)

يؤدي إنشاء إعلان إلى حفظ الخطوة الإضافية المتمثّلة في إنشاء Ad. يُرجى العِلم أنّه لا يمكن إجراء ذلك إلا إذا لم يكن هناك إعلان تلقائي بالحجم المحدّد ضمن حملتك.

البحث عن عناصر

يمكنك البحث عن عناصر من خلال استدعاء عملية list() التي تعرضها الخدمة التي تحدد العنصر المطلوب العثور عليه، مع تحديد معايير اختيارية مناسبة لنوع هذا العنصر. لذلك، على سبيل المثال، للبحث عن عناصر الإعلانات، عليك طلب ads.list(). تعرض المعايير الاختيارية مجموعة من السمات المناسبة لهذا العنصر، لذا املأ أكبر عدد ممكن من السمات التي تريد البحث عنها. لن تعرض عملية البحث سوى العناصر التي تستوفي جميع المعايير، ولا يمكنك إجراء بحث يطابق أي معيار. تتيح السلاسل استخدام حرف البدل *، وهي غير حساسة لحالة الأحرف، وتتطابق مع السلاسل الأكبر.

لتحسين الأداء، يمكن طلب استجابات جزئية باستخدام المَعلمة fields. يوجّه هذا الخادم إلى عرض الحقول التي تحدّدها فقط، بدلاً من التمثيل الكامل للمورد. يمكنك الاطّلاع على مزيد من المعلومات حول هذا الموضوع في دليل نصائح الأداء.

ترقيم الصفحات

في بعض الأحيان، لا يكون من المستحسن استرداد جميع نتائج طلب list(). على سبيل المثال، قد تكون مهتمًا فقط بأحدث 10 إعلانات من مجموعة تضمّ الآلاف. للمساعدة في ذلك، تتيح لك العديد من list() الطرق طلب عدد أقل من النتائج من خلال عملية تُعرف باسم التقسيم إلى صفحات.

تعرض الطرق التي تتيح تقسيم النتائج إلى صفحات مجموعات فرعية من النتائج في مجموعات تُعرف باسم الصفحات. الحد الأقصى لعدد النتائج في كل صفحة هو 1,000 (القيمة التلقائية). يمكنك تغيير عدد النتائج في كل صفحة من خلال ضبط maxResults، ويمكنك التنقّل بين الصفحات باستخدام nextPageToken الذي يتم عرضه في الردّ:

#C

// Limit the fields returned.
String fields = "nextPageToken,ads(advertiserId,id,name)";

AdsListResponse result;
String nextPageToken = null;

do {
  // Create and execute the ad list request.
  AdsResource.ListRequest request = service.Ads.List(profileId);
  request.Active = true;
  request.Fields = fields;
  request.PageToken = nextPageToken;
  result = request.Execute();

  foreach (Ad ad in result.Ads) {
    Console.WriteLine(
        "Ad with ID {0} and name \"{1}\" is associated with advertiser" +
        " ID {2}.", ad.Id, ad.Name, ad.AdvertiserId);
  }

  // Update the next page token.
  nextPageToken = result.NextPageToken;
} while (result.Ads.Any() && !String.IsNullOrEmpty(nextPageToken));

جافا

// Limit the fields returned.
String fields = "nextPageToken,ads(advertiserId,id,name)";

AdsListResponse result;
String nextPageToken = null;

do {
  // Create and execute the ad list request.
  result = reporting.ads().list(profileId).setActive(true).setFields(fields)
      .setPageToken(nextPageToken).execute();

  for (Ad ad : result.getAds()) {
    System.out.printf(
        "Ad with ID %d and name \"%s\" is associated with advertiser ID %d.%n", ad.getId(),
        ad.getName(), ad.getAdvertiserId());
  }

  // Update the next page token.
  nextPageToken = result.getNextPageToken();
} while (!result.getAds().isEmpty() && !Strings.isNullOrEmpty(nextPageToken));

PHP

$response = null;
$pageToken = null;

do {
    // Create and execute the ads list request.
    $response = $this->service->ads->listAds(
        $values['user_profile_id'],
        ['active' => true, 'pageToken' => $pageToken]
    );

    foreach ($response->getAds() as $ads) {
        $this->printResultsTableRow($ads);
    }

    // Update the next page token.
    $pageToken = $response->getNextPageToken();
} while (!empty($response->getAds()) && !empty($pageToken));

Python

# Construct the request.
request = service.ads().list(profileId=profile_id, active=True)

while True:
  # Execute request and print response.
  response = request.execute()

  for ad in response['ads']:
    print 'Found ad with ID %s and name "%s".' % (ad['id'], ad['name'])

  if response['ads'] and response['nextPageToken']:
    request = service.ads().list_next(request, response)
  else:
    break

Ruby

token = nil
loop do
  result = service.list_ads(profile_id,
    page_token: token,
    fields: 'nextPageToken,ads(id,name)')

  # Display results.
  if result.ads.any?
    result.ads.each do |ad|
      puts format('Found ad with ID %d and name "%s".', ad.id, ad.name)
    end

    token = result.next_page_token
  else
    # Stop paging if there are no more results.
    token = nil
  end

  break if token.to_s.empty?
end

إنشاء علامات Floodlight

علامات Floodlight هي علامات HTML مضمّنة في صفحة، وتُستخدَم لتتبُّع إجراءات المستخدِمين (مثل عمليات الشراء) داخل موقع إلكتروني. لإنشاء علامات Floodlight، تحتاج إلى FloodlightActivity يخصّ FloodlightActivityGroup:

#C

  1. أنشئ مجموعة أنشطة Floodlight جديدة، مع إدخال قيم name وtype وfloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.Name = groupName;
    floodlightActivityGroup.FloodlightConfigurationId = floodlightConfigurationId;
    floodlightActivityGroup.Type = "COUNTER";
  2. احفظ مجموعة أنشطة Floodlight من خلال استدعاء floodlightActivityGroups.insert()، ما سيؤدي إلى عرض رقم تعريف المجموعة الجديدة.
    // Insert the activity group.
    FloodlightActivityGroup result =
        service.FloodlightActivityGroups.Insert(floodlightActivityGroup, profileId).Execute();
  3. أنشئ نشاط Floodlight جديدًا، وامنحه رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.CountingMethod = "STANDARD_COUNTING";
    activity.Name = activityName;
    activity.FloodlightActivityGroupId = activityGroupId;
    activity.FloodlightTagType = "GLOBAL_SITE_TAG";
    activity.ExpectedUrl = url;
  4. احفظ النشاط الجديد من خلال استدعاء floodlightActivities.insert()، ما سيؤدي إلى عرض معرّف النشاط الجديد.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        service.FloodlightActivities.Insert(activity, profileId).Execute();
  5. أنشئ العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع الإلكتروني للمعلِن.
    // Generate the floodlight activity tag.
    FloodlightActivitiesResource.GeneratetagRequest request =
        service.FloodlightActivities.Generatetag(profileId);
    request.FloodlightActivityId = activityId;
    
    FloodlightActivitiesGenerateTagResponse response = request.Execute();

جافا

  1. أنشئ مجموعة أنشطة Floodlight جديدة، مع إدخال قيم name وtype وfloodlightConfigurationId.
    // Create the floodlight activity group.
    FloodlightActivityGroup floodlightActivityGroup = new FloodlightActivityGroup();
    floodlightActivityGroup.setName(groupName);
    floodlightActivityGroup.setFloodlightConfigurationId(floodlightConfigurationId);
    floodlightActivityGroup.setType("COUNTER");
  2. احفظ مجموعة أنشطة Floodlight من خلال استدعاء floodlightActivityGroups.insert()، ما سيؤدي إلى عرض رقم تعريف المجموعة الجديدة.
    // Insert the activity group.
    FloodlightActivityGroup result =
        reporting.floodlightActivityGroups().insert(profileId, floodlightActivityGroup).execute();
  3. أنشئ نشاط Floodlight جديدًا، وامنحه رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    // Set floodlight activity structure.
    FloodlightActivity activity = new FloodlightActivity();
    activity.setName(activityName);
    activity.setCountingMethod("STANDARD_COUNTING");
    activity.setExpectedUrl(url);
    activity.setFloodlightActivityGroupId(activityGroupId);
    activity.setFloodlightTagType("GLOBAL_SITE_TAG");
  4. احفظ النشاط الجديد من خلال استدعاء floodlightActivities.insert()، ما سيؤدي إلى عرض معرّف النشاط الجديد.
    // Create the floodlight tag activity.
    FloodlightActivity result =
        reporting.floodlightActivities().insert(profileId, activity).execute();
  5. أنشئ العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع الإلكتروني للمعلِن.
    // Generate the floodlight activity tag.
    Generatetag request = reporting.floodlightActivities().generatetag(profileId);
    request.setFloodlightActivityId(activityId);
    
    FloodlightActivitiesGenerateTagResponse response = request.execute();

PHP

  1. أنشئ مجموعة أنشطة Floodlight جديدة، مع إدخال قيم name وtype وfloodlightConfigurationId.
    $group = new Google_Service_Dfareporting_FloodlightActivityGroup();
    $group->setFloodlightConfigurationId($values['configuration_id']);
    $group->setName($values['group_name']);
    $group->setType('COUNTER');
  2. احفظ مجموعة أنشطة Floodlight من خلال استدعاء floodlightActivityGroups.insert()، ما سيؤدي إلى عرض رقم تعريف المجموعة الجديدة.
    $result = $this->service->floodlightActivityGroups->insert(
        $values['user_profile_id'],
        $group
    );
  3. أنشئ نشاط Floodlight جديدًا، وامنحه رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    $activity = new Google_Service_Dfareporting_FloodlightActivity();
    $activity->setCountingMethod('STANDARD_COUNTING');
    $activity->setExpectedUrl($values['url']);
    $activity->setFloodlightActivityGroupId($values['activity_group_id']);
    $activity->setFloodlightTagType('GLOBAL_SITE_TAG');
    $activity->setName($values['activity_name']);
  4. احفظ النشاط الجديد من خلال استدعاء floodlightActivities.insert()، ما سيؤدي إلى عرض معرّف النشاط الجديد.
    $result = $this->service->floodlightActivities->insert(
        $values['user_profile_id'],
        $activity
    );
  5. أنشئ العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع الإلكتروني للمعلِن.
    $result = $this->service->floodlightActivities->generatetag(
        $values['user_profile_id'],
        ['floodlightActivityId' => $values['activity_id']]
    );

Python

  1. أنشئ مجموعة أنشطة Floodlight جديدة، مع إدخال قيم name وtype وfloodlightConfigurationId.
    # Construct and save floodlight activity group.
    activity_group = {
        'name': 'Test Floodlight Activity Group',
        'floodlightConfigurationId': floodlight_config_id,
        'type': 'COUNTER'
    }
  2. احفظ مجموعة أنشطة Floodlight من خلال استدعاء floodlightActivityGroups.insert()، ما سيؤدي إلى عرض رقم تعريف المجموعة الجديدة.
    request = service.floodlightActivityGroups().insert(
        profileId=profile_id, body=activity_group)
  3. أنشئ نشاط Floodlight جديدًا، وامنحه رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    # Construct and save floodlight activity.
    floodlight_activity = {
        'countingMethod': 'STANDARD_COUNTING',
        'expectedUrl': 'http://www.google.com',
        'floodlightActivityGroupId': activity_group_id,
        'floodlightTagType': 'GLOBAL_SITE_TAG',
        'name': 'Test Floodlight Activity'
    }
  4. احفظ النشاط الجديد من خلال استدعاء floodlightActivities.insert()، ما سيؤدي إلى عرض معرّف النشاط الجديد.
    request = service.floodlightActivities().insert(
        profileId=profile_id, body=floodlight_activity)
  5. أنشئ العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع الإلكتروني للمعلِن.
    # Construct the request.
    request = service.floodlightActivities().generatetag(
        profileId=profile_id, floodlightActivityId=activity_id)
    
    # Execute request and print response.
    response = request.execute()

Ruby

  1. أنشئ مجموعة أنشطة Floodlight جديدة، مع إدخال قيم name وtype وfloodlightConfigurationId.
    # Create a new floodlight activity group resource to insert.
    activity_group =
      DfareportingUtils::API_NAMESPACE::FloodlightActivityGroup.new(
        floodlight_configuration_id: floodlight_config_id,
        name:
          format('Example Floodlight Activity Group #%s', SecureRandom.hex(3)),
        type: 'COUNTER'
      )
  2. احفظ مجموعة أنشطة Floodlight من خلال استدعاء floodlightActivityGroups.insert()، ما سيؤدي إلى عرض رقم تعريف المجموعة الجديدة.
    # Insert the floodlight activity group.
    result = service.insert_floodlight_activity_group(profile_id, activity_group)
  3. أنشئ نشاط Floodlight جديدًا، وامنحه رقم تعريف مجموعة أنشطة Floodlight التي أنشأتها للتو، بالإضافة إلى جميع الحقول الأخرى المطلوبة.
    # Create a new floodlight activity resource to insert.
    activity = DfareportingUtils::API_NAMESPACE::FloodlightActivity.new(
      counting_method: 'STANDARD_COUNTING',
      expected_url: 'http://www.google.com',
      floodlight_activity_group_id: activity_group_id,
      floodlight_tag_type: 'GLOBAL_SITE_TAG',
      name: format('Example Floodlight Activity #%s', SecureRandom.hex(3))
    )
  4. احفظ النشاط الجديد من خلال استدعاء floodlightActivities.insert()، ما سيؤدي إلى عرض معرّف النشاط الجديد.
    # Insert the floodlight activity.
    result = service.insert_floodlight_activity(profile_id, activity)
  5. أنشئ العلامات عن طريق استدعاء floodlightActivities.generatetag() باستخدام floodlightActivityId لنشاطك الجديد. أرسِل العلامات إلى مشرف الموقع الإلكتروني للمعلِن.
    # Construct the request.
    result = service.generatetag_floodlight_activity(profile_id,
      floodlight_activity_id: activity_id)

إنشاء علامات مواضع الإعلانات

الخطوة الأخيرة هي إنشاء علامات HTML لإرسالها إلى الناشر من أجل عرض إعلاناتك. لإنشاء العلامات من خلال واجهة برمجة التطبيقات، أرسِل طلبًا إلى placements.generatetags()، مع تحديد مجموعة من placementIds وtagFormats.

#C

// Generate the placement activity tags.
PlacementsResource.GeneratetagsRequest request =
    service.Placements.Generatetags(profileId);
request.CampaignId = campaignId;
request.TagFormats =
    PlacementsResource.GeneratetagsRequest.TagFormatsEnum.PLACEMENTTAGIFRAMEJAVASCRIPT;
request.PlacementIds = placementId.ToString();

PlacementsGenerateTagsResponse response = request.Execute();

جافا

// Generate the placement activity tags.
Generatetags request = reporting.placements().generatetags(profileId);
request.setCampaignId(campaignId);
request.setTagFormats(tagFormats);
request.setPlacementIds(ImmutableList.of(placementId));

PlacementsGenerateTagsResponse response = request.execute();

PHP

$placementTags = $this->service->placements->generatetags(
    $values['user_profile_id'],
    ['campaignId' => $values['campaign_id'],
     'placementIds' => [$values['placement_id']],
     'tagFormats' => ['PLACEMENT_TAG_STANDARD',
                      'PLACEMENT_TAG_IFRAME_JAVASCRIPT',
                      'PLACEMENT_TAG_INTERNAL_REDIRECT']
    ]
);

Python

# Construct the request.
request = service.placements().generatetags(
    profileId=profile_id, campaignId=campaign_id,
    placementIds=[placement_id])

# Execute request and print response.
response = request.execute()

Ruby

# Construct the request.
result = service.generate_placement_tags(profile_id,
  campaign_id: campaign_id,
  placement_ids: [placement_id])